diff options
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 72a3432f8..ccb817adc 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -25,6 +25,7 @@ import copy import datetime from PIL import Image from importlib import import_module +import logging import os import re import shutil @@ -65,6 +66,9 @@ from ishtar_common.data_importer import Importer, ImportFormater, \ TypeFormater, YearFormater, StrToBoolean, FileFormater +logger = logging.getLogger(__name__) + + def post_save_user(sender, **kwargs): user = kwargs['instance'] try: @@ -95,6 +99,7 @@ class Imported(models.Model): class ValueGetter(object): _prefix = "" GET_VALUES_EXTRA = [] + EXTRA_FULL_FIELDS_LABELS = {} def get_values(self, prefix=''): if not prefix: @@ -249,9 +254,10 @@ class OwnPerms: query = cls.get_query_owns(user) if not query and not replace_query: return cls.objects.filter(pk__isnull=True) - q = cls.objects.filter(query) + if query: + q = cls.objects.filter(query) if replace_query: - q = cls.objects.filter(**replace_query) + q = cls.objects.filter(replace_query) if limit: items += list(q.order_by('-pk')[:limit]) else: @@ -408,10 +414,12 @@ class GeneralType(Cached, models.Model): new_vals = [] if not initial: return [] + if type(initial) not in (list, tuple): + initial = [initial] for value in initial: try: pk = int(value) - except ValueError: + except (ValueError, TypeError): continue if pk in type_pks: continue @@ -442,6 +450,7 @@ class GeneralType(Cached, models.Model): keys = ['__get_types'] keys += [u"{}".format(ex) for ex in exclude] + [ empty_first and 'empty_first' or ''] + [u"{}".format(default)] + keys += [u'{}-{}'.format(unicode(k), dct[k]) for k in dct] cache_key, value = get_cache(cls, keys) if value and not force: return value @@ -480,7 +489,10 @@ class GeneralType(Cached, models.Model): pass items = cls.objects.filter(**dct) if default and default != "None": - exclude.append(default.txt_idx) + if hasattr(default, 'txt_idx'): + exclude.append(default.txt_idx) + else: + exclude.append(default) if exclude: items = items.exclude(txt_idx__in=exclude) for item in items.order_by(*cls._meta.ordering).all(): @@ -659,7 +671,7 @@ class ImageModel(models.Model): null=True, max_length=255) IMAGE_MAX_SIZE = settings.IMAGE_MAX_SIZE THUMB_MAX_SIZE = settings.THUMB_MAX_SIZE - IMAGE_PREFIX = '/' + IMAGE_PREFIX = '' class Meta: abstract = True @@ -1487,15 +1499,15 @@ class Address(BaseHistorizedItem): if self.phone: if lbl: lbl += u"\n" - lbl += u"{}{}".format(unicode(_("Tel: ")), self.phone) + lbl += u"{} {}".format(unicode(_("Tel: ")), self.phone) if self.mobile_phone: if lbl: lbl += u"\n" - lbl += u"{}{}".format(unicode(_("Mobile: ")), self.mobile_phone) + lbl += u"{} {}".format(unicode(_("Mobile: ")), self.mobile_phone) if self.email: if lbl: lbl += u"\n" - lbl += u"{}{}".format(unicode(_("Email: ")), self.email) + lbl += u"{} {}".format(unicode(_("Email: ")), self.email) return lbl @@ -1607,7 +1619,7 @@ def get_importer_models(): ('archaeological_context_records.models.RecordRelations', _(u"Context record relations"))] + MODELS MODELS = [('archaeological_finds.models.BaseFind', - _(u"Finds")), ] + MODELS + _(u"Base finds")), ] + MODELS return MODELS @@ -1995,7 +2007,9 @@ TARGET_MODELS = [ ('archaeological_operations.models.OperationType', _(u"Operation type")), ('archaeological_operations.models.Period', _(u"Period")), ('archaeological_operations.models.ReportState', _(u"Report state")), + ('archaeological_operations.models.RemainType', _(u"Remain type")), ('archaeological_context_records.models.Unit', _(u"Unit")), + ('archaeological_context_records.models.ActivityType', _(u"Activity type")), ('archaeological_finds.models.MaterialType', _(u"Material")), ('archaeological_finds.models.ConservatoryState', _(u"Conservatory state")), @@ -2077,7 +2091,9 @@ class FormaterType(models.Model): kwargs['many_split'] = self.many_split if self.formater_type == 'TypeFormater': if self.options not in TARGET_MODELS_KEYS: - print('%s not in TARGET_MODELS_KEYS' % self.options) + logger.warning( + "**WARN FormaterType.get_formater_type**: {} " + "is not in TARGET_MODELS_KEYS".format(self.options)) return model = None if self.options in dir(): @@ -2630,7 +2646,6 @@ class IshtarUser(User): surname = user.first_name or default name = user.last_name or default email = user.email - person_type = None if user.is_superuser: ADMINISTRATOR, created = PersonType.objects.get_or_create( txt_idx='administrator') |