]> git.parisson.com Git - telemeta.git/commitdiff
Prepare Enumeration management by database
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Fri, 11 Aug 2017 09:41:43 +0000 (11:41 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Fri, 11 Aug 2017 09:41:43 +0000 (11:41 +0200)
telemeta/models/enum.py
telemeta/views/admin.py
telemeta/views/enum.py

index d98609a843007a249d02712558a3b1cc02f656eb..bfef8d67c01d58ee1859aae1c5acca0b77160e2a 100644 (file)
@@ -26,13 +26,10 @@ from django.utils.translation import ugettext_lazy as _
 class Enumeration(ModelCore):
     "Abstract enumerations base class"
 
-    hidden = False
     value = CharField(_('value'), required=True, unique=True)
     notes = TextField(_('notes'))
-    admin = False
-
-    def _set_admin(self):
-        self.admin = not self.admin
+    is_hidden = BooleanField(_('is hidden'), default=True)
+    is_admin = BooleanField(_('is admin'), default=True)
 
     def __unicode__(self):
         return self.value
@@ -172,8 +169,6 @@ class EthnicGroupAlias(ModelCore):
 class TapeWheelDiameter(Enumeration):
     "Tape wheel diameter (cm)"
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'tape_wheel_diameter'
         verbose_name = _("tape wheel diameter (cm)")
@@ -181,8 +176,6 @@ class TapeWheelDiameter(Enumeration):
 class TapeLength(Enumeration):
     "Tape length (cm)"
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'tape_length'
         verbose_name = _("tape length (cm)")
@@ -190,8 +183,6 @@ class TapeLength(Enumeration):
 class TapeWidth(Enumeration):
     "Tape width (inch)"
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'tape_width'
         verbose_name = _("tape width (inch)")
@@ -199,8 +190,6 @@ class TapeWidth(Enumeration):
 class TapeSpeed(Enumeration):
     "Tape speed (cm/s)"
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'tape_speed'
         verbose_name = _("tape speed (cm/s)")
@@ -208,8 +197,6 @@ class TapeSpeed(Enumeration):
 class TapeVendor(Enumeration):
     "Tape vendor"
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'tape_vendor'
         verbose_name = _("tape brand")
@@ -218,8 +205,6 @@ class TapeVendor(Enumeration):
 class NumberOfChannels(Enumeration):
     "Number of channels"
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'original_channel_number'
         verbose_name = _("number of channels")
@@ -228,8 +213,6 @@ class NumberOfChannels(Enumeration):
 class Organization(Enumeration):
     "Organization"
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'organization'
         verbose_name = _("organization")
@@ -238,8 +221,6 @@ class Organization(Enumeration):
 class Rights(Enumeration):
     "Archive rights"
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'rights'
         verbose_name = _("rights")
@@ -248,8 +229,6 @@ class Rights(Enumeration):
 class Topic(Enumeration):
     "Topic, subject of the study, research, etc.."
 
-    hidden = True
-
     class Meta(MetaEnumeration):
         db_table = 'topic'
         verbose_name = _("topic")
@@ -293,4 +272,3 @@ class IdentifierType(Enumeration):
     class Meta(MetaEnumeration):
         db_table = 'identifier_type'
         verbose_name = _("identifier type")
-
index a5c41711213939880c9135c1502763e06efa0474..dc2a5908cbfef11cfc0e8bd375681cca52dc76ad 100644 (file)
@@ -52,10 +52,10 @@ class AdminView(object):
         enumerations = []
         for model in models:
             if issubclass(model, Enumeration):
-                if not model.hidden :
+                if not model.is_hidden :
                     enumerations.append({"name": model._meta.verbose_name,
                                          "id": model._meta.module_name,
-                                         "admin": model.admin})
+                                         "admin": model.is_admin})
 
         cmp = lambda obj1, obj2: unaccent_icmp(obj1['name'], obj2['name'])
         enumerations.sort(cmp)
@@ -70,13 +70,10 @@ class AdminView(object):
         for model in models:
             if model._meta.module_name == id:
                 break
-
         if model._meta.module_name != id:
             return None
-
         return model
 
-
     def edit_enumeration(self, request, enumeration_id):
         atr = "";
         enumeration = self.__get_enumeration(enumeration_id)
@@ -135,7 +132,6 @@ class AdminView(object):
         c.reverse()
         return c
 
-
     @method_decorator(permission_required('telemeta.add_physicalformat'))
     def add_to_enumeration(self, request, enumeration_id):
 
@@ -163,23 +159,16 @@ class AdminView(object):
 
     @method_decorator(permission_required('telemeta.change_physicalformat'))
     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"
+                        model.is_admin = True
                     else :
-                        model.admin = "False"
-                    f.write(model._meta.module_name + "\n" + str(model.admin) + "\n")
-        f.close()
+                        model.is_admin = False
+                    model.save()
         return self.admin_enumerations(request)
 
     @method_decorator(permission_required('telemeta.change_physicalformat'))
@@ -250,4 +239,3 @@ class AdminView(object):
             from_record.delete()
 
         return self.edit_enumeration(request, enumeration_id)
-
index 499188c8ab076d8d42a0535d9e4b28d1d636841b..29f532d130e926afa0e681c5a54ba02396dc1df2 100644 (file)
@@ -43,7 +43,7 @@ class EnumView(object):
         return render(request, 'telemeta/enumeration.html', vars)
 
 
-    def set_enum_file(self,request):
+    def set_enum_file(self, request):
 
         from django.db.models import get_models
         models = get_models(telemeta.models)
@@ -69,7 +69,7 @@ class EnumView(object):
         enumerations = []
         for model in models:
             if issubclass(model, Enumeration):
-                if not model.hidden and  model.admin == "False":
+                if not model.is_hidden and  model.is_admin == False:
                     enumerations.append({"name": model._meta.verbose_name,
                                          "id": model._meta.module_name
                                          })