diff options
| -rw-r--r-- | archaeological_context_records/models.py | 7 | ||||
| -rw-r--r-- | archaeological_files/models.py | 5 | ||||
| -rw-r--r-- | archaeological_finds/models_finds.py | 22 | ||||
| -rw-r--r-- | archaeological_finds/models_treatments.py | 8 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 7 | ||||
| -rw-r--r-- | ishtar_common/models.py | 29 | ||||
| -rw-r--r-- | ishtar_common/utils_secretary.py | 4 | 
7 files changed, 49 insertions, 33 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index f728aef57..b3e4be9f0 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -520,12 +520,13 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, QRCodeItem, GeoItem,      def __unicode__(self):          return self.short_label -    def get_values(self, prefix='', no_base_finds=True): -        values = super(ContextRecord, self).get_values(prefix=prefix) +    def get_values(self, prefix='', no_values=False, no_base_finds=True): +        values = super(ContextRecord, self).get_values(prefix=prefix, +                                                       no_values=no_values)          if prefix and no_base_finds:              return values          values[prefix + 'base_finds'] = [ -            bf.get_values(prefix=prefix) +            bf.get_values(prefix=prefix, no_values=True)              for bf in self.base_finds.distinct().all()          ]          return values diff --git a/archaeological_files/models.py b/archaeological_files/models.py index a2cac6b15..7d86bcff8 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -523,8 +523,9 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,              get_short_menu_class=get_short_menu_class)          return cls._return_get_owns(owns, values, get_short_menu_class) -    def get_values(self, prefix=''): -        values = super(File, self).get_values(prefix=prefix) +    def get_values(self, prefix='', no_values=False): +        values = super(File, self).get_values(prefix=prefix, +                                              no_values=no_values)          return get_values_town_related(self, prefix, values)      def render_parcels(self): diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index d3abd2c8a..e62c41887 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -333,12 +333,13 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, GeoItem, OwnPerms,      def natural_key(self):          return (self.external_id, ) -    def get_values(self, prefix='', no_find=False): -        values = super(BaseFind, self).get_values(prefix=prefix) +    def get_values(self, prefix='', no_values=False, no_find=False): +        values = super(BaseFind, self).get_values(prefix=prefix, +                                                  no_values=no_values)          if no_find:              return values          values[prefix + "finds"] = [ -            find.get_values(prefix=prefix, no_base_finds=True) +            find.get_values(no_values=True, no_base_finds=True)              for find in self.find.order_by('pk').all()          ]          return values @@ -640,10 +641,12 @@ class FindBasket(Basket, MainItem, ValueGetter):              ("view_own_find", u"Can view own Find"),          ) -    def get_values(self, prefix=''): -        values = super(FindBasket, self).get_values(prefix=prefix) +    def get_values(self, prefix='', no_values=False): +        values = super(FindBasket, self).get_values(prefix=prefix, +                                                    no_values=no_values)          values[prefix + "items"] = [ -            item.get_values() for item in self.items.distinct().all() +            item.get_values(no_values=True) +            for item in self.items.distinct().all()          ]          return values @@ -1597,12 +1600,13 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, QRCodeItem,              return          return self.base_finds.order_by('-pk').all()[0] -    def get_values(self, prefix='', no_base_finds=False): -        values = super(Find, self).get_values(prefix=prefix) +    def get_values(self, prefix='', no_values=False, no_base_finds=False): +        values = super(Find, self).get_values(prefix=prefix, +                                              no_values=no_values)          if no_base_finds:              return values          values[prefix + "base_finds"] = [ -            base_find.get_values(prefix=prefix, no_find=True) +            base_find.get_values(no_values=True, no_find=True)              for base_find in self.base_finds.distinct().order_by('-pk').all()          ]          return values diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 6f24e1474..c35d3710c 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -312,8 +312,9 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,              ]          return actions -    def get_values(self, prefix=''): -        values = super(Treatment, self).get_values(prefix=prefix) +    def get_values(self, prefix='', no_values=False): +        values = super(Treatment, self).get_values(prefix=prefix, +                                                   no_values=no_values)          values[prefix + "upstream_finds"] = u" ; ".join(              [unicode(up) for up in self.upstream.all()])          values[prefix + "downstream_finds"] = u" ; ".join( @@ -324,7 +325,8 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,              find = self.upstream.all()[0]              if 'associatedfind_' not in prefix:                  values.update( -                    find.get_values(prefix=prefix + 'associatedfind_')) +                    find.get_values(prefix=prefix + 'associatedfind_', +                                    no_values=True))          return values      def pre_save(self): diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 6ae219461..9ab3b317b 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -973,13 +973,14 @@ class Operation(ClosedItem, BaseHistorizedItem, QRCodeItem, GeoItem, OwnPerms,\          self.save()          return self.cached_label -    def get_values(self, prefix=''): -        values = super(Operation, self).get_values(prefix=prefix) +    def get_values(self, prefix='', no_values=False): +        values = super(Operation, self).get_values(prefix=prefix, +                                                   no_values=no_values)          values = get_values_town_related(self, prefix, values)          if prefix:              return values          values[prefix + 'context_records'] = [ -            cr.get_values(prefix=prefix, no_base_finds=False) +            cr.get_values(prefix=prefix, no_values=True, no_base_finds=False)              for cr in self.context_record.all()          ]          return values diff --git a/ishtar_common/models.py b/ishtar_common/models.py index e78e18704..612b57b03 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -120,14 +120,16 @@ class ValueGetter(object):          if not hasattr(self, 'documents'):              return values          values[prefix + "documents"] = [ -            doc.get_values(prefix=prefix) for doc in self.documents.all() +            doc.get_values(no_values=True) +            for doc in self.documents.all()          ]          if hasattr(self, "main_image") and self.main_image and hasattr(                  self.main_image, "get_values"): -            values[prefix + "main_image"] = self.main_image.get_values() +            values[prefix + "main_image"] = self.main_image.get_values( +                no_values=True)          return values -    def get_values(self, prefix=''): +    def get_values(self, prefix='', no_values=False):          if not prefix:              prefix = self._prefix          values = {} @@ -154,20 +156,27 @@ class ValueGetter(object):                  if val.endswith('.None'):                      val = ''              values[key] = val -        if prefix and prefix != self._prefix: +        if (prefix and prefix != self._prefix) or no_values:              # do not provide KEYS and VALUES for sub-items              return values -        values['KEYS'] = u'\n'.join(values.keys())          value_list = []          for key in values.keys():              if key in ('KEYS', 'VALUES'):                  continue              value_list.append((key, unicode(values[key]))) +            """          values['VALUES'] = u'\n'.join(              [u"%s: %s" % (k, v) for k, v in sorted(value_list,                                                     key=lambda x: x[0])]) +                                                   """          for global_var in GlobalVar.objects.all():              values[global_var.slug] = global_var.value or "" +        values['VALUES'] = json.dumps( +            values, indent=4, sort_keys=True, +            skipkeys=True, ensure_ascii=False, +            separators=("", " : "), +        ).replace(" " * 4, "\t") +          return values      @classmethod @@ -3780,8 +3789,9 @@ class Person(Address, Merge, OwnPerms, ValueGetter):              values.append(attached_to)          return u" ".join(values) -    def get_values(self, prefix=''): -        values = super(Person, self).get_values(prefix=prefix) +    def get_values(self, prefix='', no_values=False): +        values = super(Person, self).get_values(prefix=prefix, +                                                no_values=no_values)          if not self.attached_to:              values.update(                  Person.get_empty_values(prefix=prefix + 'attached_to_')) @@ -4629,8 +4639,9 @@ class Document(BaseHistorizedItem, OwnPerms, ImageModel, ValueGetter):              return ""          return self.image.path -    def get_values(self, prefix=""): -        values = super(Document, self).get_values(prefix=prefix) +    def get_values(self, prefix="", no_values=False): +        values = super(Document, self).get_values(prefix=prefix, +                                                  no_values=no_values)          values[prefix + "image_path"] = self.image_path          return values diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py index 6f605590e..15fb69a2d 100644 --- a/ishtar_common/utils_secretary.py +++ b/ishtar_common/utils_secretary.py @@ -25,10 +25,6 @@ class IshtarSecretaryRenderer(Renderer):          # self.environment.filters['pad'] = pad_string      def ishtar_media_loader(self, media, *args, **kwargs): -        """Loads a file from the file system. -        :param media: A file object or a relative or absolute path of a file. -        :type media: unicode -        """          image_file, mime = self.fs_loader(media, *args, **kwargs)          if "width" in kwargs:              kwargs['frame_attrs']['svg:width'] = kwargs["width"]  | 
