diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 29 | 
1 files changed, 20 insertions, 9 deletions
| 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 | 
