summaryrefslogtreecommitdiff
path: root/ishtar_common/models_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models_common.py')
-rw-r--r--ishtar_common/models_common.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index 573d4f8bf..de1de3a91 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -193,6 +193,7 @@ class GeneralType(Cached, models.Model):
available = models.BooleanField(_("Available"), default=True)
HELP_TEXT = ""
objects = TypeManager()
+ GET_VALUES_EXTRA = []
class Meta:
abstract = True
@@ -207,10 +208,15 @@ class GeneralType(Cached, models.Model):
return self.txt_idx
def get_values(self, prefix="", no_values=False, filtr=None, **kwargs):
+ if "simple" in kwargs:
+ return str(self)
dct = {}
if "parent_level" in kwargs and kwargs["parent_level"] > 5:
return dct
- if not prefix: # prefix is mandatory
+ for key in self.GET_VALUES_EXTRA:
+ p = (prefix[:]) if prefix else ""
+ dct[p + key] = str(getattr(self, key))
+ if not prefix or "simple" in kwargs: # prefix is mandatory
return dct
else:
dct[prefix[:-1]] = str(self)
@@ -220,8 +226,10 @@ class GeneralType(Cached, models.Model):
kwargs["parent_level"] += 1
else:
kwargs["parent_level"] = 1
+ kw = copy.deepcopy(kwargs)
+ kw["no_hierarchy"] = True
dct[prefix + "parent"] = self.parent.get_values(
- prefix=prefix + "parent_", no_values=no_values, filtr=filtr, **kwargs)
+ prefix=prefix, no_values=no_values, filtr=filtr, **kw)
return dct
@classmethod