summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
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
commit13cc881d6eb1da1ab4abed8dc11d2574ce37edda (patch)
tree0ff4927ac85605a24df691361e8306175abfbefb /ishtar_common/models.py
parent93b83586f6b291ac4c4b2ac30ceb96aede1cf650 (diff)
downloadIshtar-13cc881d6eb1da1ab4abed8dc11d2574ce37edda.tar.bz2
Ishtar-13cc881d6eb1da1ab4abed8dc11d2574ce37edda.zip
Extra actions: regenerate external_id
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py34
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)