diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-08-28 16:53:58 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-08-28 16:53:58 +0200 |
commit | 6d02a9e63db5238191db8519643cbeaf0bfa4ee7 (patch) | |
tree | 3fb29419d4703fcc224df4265466cd9000502ba4 /ishtar_common/models.py | |
parent | 2b7208ee1cf4cb47e7d9036f227c592385918de3 (diff) | |
download | Ishtar-6d02a9e63db5238191db8519643cbeaf0bfa4ee7.tar.bz2 Ishtar-6d02a9e63db5238191db8519643cbeaf0bfa4ee7.zip |
Publish action for generic items
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index fb84aafb4..02be873ce 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1999,6 +1999,37 @@ class TemplateItem: def label_templates(cls): return cls._label_templates_q() + def get_extra_templates(self, request): + cls = self.__class__ + templates = [] + name = str(cls.__name__) + module = str(cls.__module__) + if "archaeological_finds" in module: + if "models_finds" in name or "models_treatments" in name: + names = [ + name, + name.replace("models_finds", "models" + ).replace("models_treatments", "models") + ] + else: + names = [name, name.replace("models", "models_finds"), + name.replace("models", "models_treatments")] + else: + names = [name] + model_names = [ + "{}.{}".format(module, name) for name in names + ] + q = DocumentTemplate.objects.filter( + associated_model__klass__in=model_names, + for_labels=False, available=True) + for template in q.all(): + urlname = "generate-document" + templates.append( + (template.name, reverse( + urlname, args=[template.slug, self.pk])) + ) + return templates + class StatisticItem: STATISTIC_MODALITIES = [] # example: "year", "operation_type__label" |