From bdcf6848ebb6032dc713ed67323da671db752361 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Fri, 11 Aug 2017 11:41:43 +0200 Subject: [PATCH] Prepare Enumeration management by database --- telemeta/models/enum.py | 26 ++------------------------ telemeta/views/admin.py | 22 +++++----------------- telemeta/views/enum.py | 4 ++-- 3 files changed, 9 insertions(+), 43 deletions(-) diff --git a/telemeta/models/enum.py b/telemeta/models/enum.py index d98609a8..bfef8d67 100644 --- a/telemeta/models/enum.py +++ b/telemeta/models/enum.py @@ -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") - diff --git a/telemeta/views/admin.py b/telemeta/views/admin.py index a5c41711..dc2a5908 100644 --- a/telemeta/views/admin.py +++ b/telemeta/views/admin.py @@ -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) - diff --git a/telemeta/views/enum.py b/telemeta/views/enum.py index 499188c8..29f532d1 100644 --- a/telemeta/views/enum.py +++ b/telemeta/views/enum.py @@ -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 }) -- 2.39.5