diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-01-03 17:26:41 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-01-03 17:26:41 +0100 |
commit | 13cc881d6eb1da1ab4abed8dc11d2574ce37edda (patch) | |
tree | 0ff4927ac85605a24df691361e8306175abfbefb /ishtar_common/models.py | |
parent | 93b83586f6b291ac4c4b2ac30ceb96aede1cf650 (diff) | |
download | Ishtar-13cc881d6eb1da1ab4abed8dc11d2574ce37edda.tar.bz2 Ishtar-13cc881d6eb1da1ab4abed8dc11d2574ce37edda.zip |
Extra actions: regenerate external_id
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 22b6cac33..e07c8fe0e 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1848,7 +1848,7 @@ class DocumentItem(object): For sheet template: return "Add document / image" action """ # url, base_text, icon, extra_text, extra css class, is a quick action - actions = [] + actions = super(DocumentItem, self).get_extra_actions(request) if not hasattr(self, 'SLUG'): return actions @@ -1857,7 +1857,7 @@ class DocumentItem(object): if can_add_doc and ( not hasattr(self, "is_locked") or not self.is_locked(request.user)): - actions = [ + actions += [ ( reverse("create-document") + "?{}={}".format( self.SLUG, self.pk), @@ -2574,6 +2574,7 @@ class QuickAction(object): class MainItem(ShortMenuItem): """ Item with quick actions available from tables + Extra actions are available from sheets """ QUICK_ACTIONS = [] @@ -2598,6 +2599,35 @@ class MainItem(ShortMenuItem): if action.url == url: return action + def regenerate_external_id(self): + if not hasattr(self, "external_id"): + return + self.skip_history_when_saving = True + self._no_move = True + if hasattr(self, "auto_external_id"): + self.external_id = None + self.save() + + def get_extra_actions(self, request): + if not hasattr(self, 'SLUG'): + return [] + + actions = [] + if request.user.is_superuser and hasattr(self, "auto_external_id"): + actions += [ + ( + reverse("regenerate-external-id") + "?{}={}".format( + self.SLUG, self.pk), + _("Regenerate ID"), + "fa fa-key", + _("regen."), + "", + True + ) + ] + + return actions + class LightHistorizedItem(BaseHistorizedItem): history_date = models.DateTimeField(default=datetime.datetime.now) |