]> git.parisson.com Git - telemeta.git/commitdiff
add change enumeration permanent
authornicolas neto <nicolasxv3@gmail.com>
Wed, 12 Jul 2017 13:10:16 +0000 (15:10 +0200)
committernicolas neto <nicolasxv3@gmail.com>
Wed, 12 Jul 2017 13:10:16 +0000 (15:10 +0200)
app/enumeration/enumeration.txt [new file with mode: 0755]
app/scripts/enumeration.sh [new file with mode: 0755]
app/settings.py
docker-compose.yml
telemeta/context_processors.py
telemeta/templates/telemeta/admin_enumerations.html
telemeta/templates/telemeta/base.html
telemeta/views/admin.py
telemeta/views/enum.py

diff --git a/app/enumeration/enumeration.txt b/app/enumeration/enumeration.txt
new file mode 100755 (executable)
index 0000000..9f6daa2
--- /dev/null
@@ -0,0 +1,54 @@
+physicalformat
+True
+publishingstatus
+True
+acquisitionmode
+True
+metadataauthor
+True
+metadatawriter
+True
+legalright
+False
+recordingcontext
+False
+adconversion
+True
+vernacularstyle
+True
+genericstyle
+True
+contextkeyword
+True
+publisher
+False
+ethnicgroup
+True
+tapewheeldiameter
+False
+tapelength
+False
+tapewidth
+False
+tapespeed
+False
+tapevendor
+False
+numberofchannels
+False
+organization
+False
+rights
+False
+topic
+False
+copytype
+True
+mediatype
+True
+originalformat
+True
+status
+True
+identifiertype
+True
diff --git a/app/scripts/enumeration.sh b/app/scripts/enumeration.sh
new file mode 100755 (executable)
index 0000000..c6a42b0
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+ pwd
+
+   chmod 777 "enumeration/enumeration.txt" && echo "The file is now writable"
index 983a62bb06dbd03755c64dfefc97997d6c73df39..2acaa7a97b6d166ace10f451737e0517268fce27 100644 (file)
@@ -358,32 +358,3 @@ BOWER_INSTALLED_APPS = (
     'sass-bootstrap-glyphicons',
 
 )
-ENUMERATION_PUBLIC = [{"nom":"physicalformat","admin":"False"},
-                      {"nom":"publishingstatus","admin":"False"},
-                      {"nom":"acquisitionmode","admin":"False"},
-                      {"nom":"metadataauthor","admin":"False"},
-                      {"nom": "metadatawriter", "admin": "False"},
-                      {"nom": "legalright", "admin": "False"},
-                      {"nom": "recordingcontext", "admin": "True"},
-                      {"nom": "adconversion", "admin": "False"},
-                      {"nom": "vernacularstyle", "admin": "False"},
-                      {"nom": "genericstyle", "admin": "False"},
-                      {"nom": "contextkeyword", "admin": "False"},
-                      {"nom": "publisher", "admin": "False"},
-                      {"nom": "ethnicgroup", "admin": "False"},
-                      {"nom": "tapewheeldiameter", "admin": "False"},
-                      {"nom": "tapelength", "admin": "False"},
-                      {"nom": "tapewidth", "admin": "False"},
-                      {"nom": "tapespeed", "admin": "False"},
-                      {"nom": "tapevendor", "admin": "False"},
-                      {"nom": "numberofchannels", "admin": "False"},
-                      {"nom": "organization", "admin": "False"},
-                      {"nom": "rights", "admin": "False"},
-                      {"nom": "topic", "admin": "False"},
-                      {"nom": "copytype", "admin": "False"},
-                      {"nom": "mediatype", "admin": "False"},
-                      {"nom": "originalformat", "admin": "False"},
-                      {"nom": "status", "admin": "False"},
-                      {"nom": "identifiertype", "admin": "False"},
-                      ]
-
index b064e29694ad29aa8b6bd9a4d2408dda2025098b..6a1fbbb3eb1befc80d08c7cbf741ce20f05dbe8a 100644 (file)
@@ -72,6 +72,7 @@ worker:
   env_file:
     - env/prod.env
   command: /bin/bash scripts/worker.sh
+  command: /bin/bash scripts/enumeration.sh
   links:
     - broker
     - db
index 8d8bc4efbf85035c29c7d202d37e8340683476a5..0450cd9e50e5b0db80ad214190ac82943bc375f7 100644 (file)
@@ -1,6 +1,5 @@
-from django.conf import settings
-from telemeta.views.enum import *
 
+from telemeta.views.enum import *
 def menu(request):
-    EnumView().set_enum_file()
-    return {'menu': EnumView().enu}
\ No newline at end of file
+        EnumView().set_enum_file(request)
+        return {'menu': EnumView().enu}
index a6204b96d4074e6ce592dec2b0e285bf33d88f5c..5ecc8eb33c7a13e8cb4babf2435b720436cb6b09 100644 (file)
@@ -17,8 +17,8 @@
             </thead><tbody>
         {% for enum in enumerations %}
             <tr>
-                {% if perms.telemeta.change_keyword %}
-                    <td><input type="checkbox" name="sel" value="{{enum.id}}"{% if enum.admin %} checked {% endif %} /></td>
+                {% if perms.is_superuser %}
+                    <td><input type="checkbox" name="sel" value="{{enum.id}}"{% if enum.admin == "True" %} checked {% endif %} /></td>
                 {% else %}
                     <td></td>
                 {% endif %}
index 7712f2e39f3de6ce1d47f83f53108055fa70fd80..52ded16e9110231e9e8ccf8fda1ba0ef4d589074 100644 (file)
 
                             <li><a href="{% url "haystack_advance_search" %}"
                                    class="orange">{% trans "Advanced search" %}</a></li>
-                            <li><a href="#vocabulary#" class="darkblue">{% trans "Vocabulary" %}</a>
+                            <li><a href="#vocabulary#" class="darkblue">{% trans "Therminology" %}</a>
                                 {% if user.is_staff %}
 
                                     <ul>
index e542b993dffed95fcfbd0ac0e9cf30450653d356..39d8052e3407a00967967004474500eefe4ee14c 100644 (file)
@@ -164,21 +164,23 @@ class AdminView(object):
     @method_decorator(permission_required('telemeta.change_keyword'))
     def set_admin_enumeration(self, request):
 
+        f = open("enumeration/enumeration.txt", "w")
+        f.close
+        f = open("enumeration/enumeration.txt", "a")
+        if request.method == 'POST':
+
             from django.db.models import get_models
             models = get_models(telemeta.models)
 
             for model in models:
                 if issubclass(model, Enumeration):
                     if model._meta.module_name in request.POST.getlist('sel'):
-                        model.admin = True
-                    else:
-                        model.admin = False
-                for enu in settings.ENUMERATION_PUBLIC:
-                    if model._meta.module_name == enu["nom"]:
-                        enu["admin"] = str(model.admin)
-
-            return self.admin_enumerations(request)
-
+                        model.admin = "True"
+                    else :
+                        model.admin = "False"
+                    f.write(model._meta.module_name + "\n" + str(model.admin) + "\n")
+        f.close()
+        return self.admin_enumerations(request)
 
     @method_decorator(permission_required('telemeta.change_keyword'))
     def edit_enumeration_value(self, request, enumeration_id, value_id):
index 227729c69e5be41b224845ea1e60bbb268b1f27c..16bcc7fae1697861506bae958831aa13b843903f 100644 (file)
@@ -15,6 +15,7 @@ class EnumView(object):
 
     def enumeration (self, request, enumeration_id):
         atr = "";
+
         enumeration = self.__get_enumeration(enumeration_id)
         if enumeration == None or enumeration.admin:
             raise Http404
@@ -42,6 +43,27 @@ class EnumView(object):
         return render(request, 'telemeta/enumeration.html', vars)
 
 
+    def set_enum_file(self,request):
+
+        from django.db.models import get_models
+        models = get_models(telemeta.models)
+
+        f = open("enumeration/enumeration.txt","r")
+        s = f.read()
+        print s
+        tab = s.split('\n')
+        tab2 = []
+        for a in range(0, len(tab) - 1, 2):
+            tab2.append({"nom": tab[a], "admin": tab[a + 1]})
+        for model in models:
+            if issubclass(model, Enumeration):
+                for enu in tab2:
+                    print enu
+                    if model._meta.module_name == enu["nom"]:
+                        model.admin = enu["admin"]
+                        print model.admin
+
+
     def __get_enumerations_list(self):
         from django.db.models import get_models
         models = get_models(telemeta.models)
@@ -49,15 +71,16 @@ class EnumView(object):
         enumerations = []
         for model in models:
             if issubclass(model, Enumeration):
-
-                if not model.hidden and not model.admin:
+                print model._meta.verbose_name
+                print model.admin
+                if not model.hidden and  model.admin == "False":
                     enumerations.append({"name": model._meta.verbose_name,
                                          "id": model._meta.module_name
                                          })
 
         cmp = lambda obj1, obj2: unaccent_icmp(obj1['name'], obj2['name'])
         enumerations.sort(cmp)
-        self.enu = enumerations
+
         return enumerations
 
     def __get_enumeration(self, id):
@@ -103,20 +126,3 @@ class EnumView(object):
             c.append(MediaItemKeyword.objects.filter(**{lookup: enum.__getattribute__("id")}).count())
         c.reverse()
         return c
-
-    def set_enum_file(self):
-        from django.db.models import get_models
-        models = get_models(telemeta.models)
-
-
-        for model in models:
-            if issubclass(model, Enumeration):
-                for enu in settings.ENUMERATION_PUBLIC:
-                    if model._meta.module_name == enu["nom"]:
-                        if enu["admin"] == "True":
-                            model.admin = True
-                        else:
-                            model.admin = False
-
-
-