summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-12-01 09:53:00 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:45:57 +0100
commit847ae9bab5afbc2d62fa6e4b1e751096e74e4c4d (patch)
treead5c77410653a240c1224f3107bb59ffb677ca41 /ishtar_common
parenteae583cfaddfad42ccffb7e7f09773d00c051d10 (diff)
downloadIshtar-847ae9bab5afbc2d62fa6e4b1e751096e74e4c4d.tar.bz2
Ishtar-847ae9bab5afbc2d62fa6e4b1e751096e74e4c4d.zip
✨ exhibitions: "GAM" export
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py1
-rw-r--r--ishtar_common/templates/ishtar/forms/qa_base.html7
-rw-r--r--ishtar_common/templates/ishtar/forms/qa_form.html2
-rw-r--r--ishtar_common/utils.py4
-rw-r--r--ishtar_common/views.py16
5 files changed, 24 insertions, 6 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 0690693f5..cebfccecb 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -2320,6 +2320,7 @@ class DocumentTemplate(models.Model):
prefix += k
return list(set(new_filter))
+ # snake_case ; snake_case[number] ; snake_case[number]:filter ; snake_case:filter
ITEM_RE = r"([A-Za-z0-9_.]*)(?:[\[\]0-9-:])*(?:\|[^}]+)*"
BASE_RE = [
# {{ key1.key2 }}
diff --git a/ishtar_common/templates/ishtar/forms/qa_base.html b/ishtar_common/templates/ishtar/forms/qa_base.html
index f6e43ad15..822f39c58 100644
--- a/ishtar_common/templates/ishtar/forms/qa_base.html
+++ b/ishtar_common/templates/ishtar/forms/qa_base.html
@@ -3,7 +3,7 @@
<div class="modal-dialog {% if modal_size == 'large' %}modal-lg {% elif modal_size == 'small'%}modal-sm {% endif%}modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
- <h2>{{page_name|safe}}</h2>
+ <h2>{% if icon %}<i class="{{icon}}"></i>&nbsp;&nbsp;{% endif %}{{page_name|safe}}</h2>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
@@ -48,6 +48,7 @@
</div>
<div class="modal-footer">
{% block footer %}
+ {% if not unavailable %}
<button type="submit" id="submit_form" name='validate'
value="validate" class="btn btn-success">
{% if action_name %}
@@ -56,9 +57,11 @@
{% trans "Modify" %}
{% endif %}
</button>
+ {% endif %}
<button type="button" data-dismiss="modal"
aria-label="Close" class="btn btn-secondary">
- {% trans "Cancel" %}
+ {% if cancel_name %}{{cancel_name}}{% else %}
+ {% trans "Cancel" %}{% endif %}
</button>
{% endblock %}
</div>
diff --git a/ishtar_common/templates/ishtar/forms/qa_form.html b/ishtar_common/templates/ishtar/forms/qa_form.html
index 178910215..ef4f9f149 100644
--- a/ishtar_common/templates/ishtar/forms/qa_form.html
+++ b/ishtar_common/templates/ishtar/forms/qa_form.html
@@ -6,9 +6,11 @@
<div class="alert alert-{{message.type}} alert-dismissible fade show" role="alert">
{% if message.icon %}<i class="{{message.icon}}" aria-hidden="true"></i>&nbsp;&nbsp;{% endif %}
{{message.message}}
+ {% if not message.no_dismiss %}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
+ {% endif %}
</div>
{% endfor %}
{% for error in form.non_field_errors %}
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index 1f0b099e7..af4ea06dc 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -1387,10 +1387,12 @@ def get_random_item_image_link(request):
class BSMessage:
- def __init__(self, message, message_type="info", icon=None):
+ def __init__(self, message, message_type="info", icon=None,
+ no_dismiss=False):
self.message = message
self.type = message_type
self.icon = icon
+ self.no_dismiss = no_dismiss
def convert_coordinates_to_point(x, y, z=None, srid=4326):
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index ba9ccb316..32f23f91d 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -73,6 +73,7 @@ from ishtar_common import wizards
from ishtar_common.data_importer import ImporterError
from ishtar_common.forms import FinalForm, FinalDeleteForm, reverse_lazy
from ishtar_common.models import get_current_profile
+from ishtar_common.models_common import QuickAction
from ishtar_common.templatetags.link_to_window import simple_link_to_window
from ishtar_common.utils_migrations import HOMEPAGE_TITLE
from ishtar_common.utils import (
@@ -3139,10 +3140,19 @@ class QAItemForm(IshtarMixin, LoginRequiredMixin, FormView):
modal_size = None # large, small or None (medium)
icon = "fa fa-pencil"
action_name = None
+ permissions = []
def get_quick_action(self):
- # if not listed in QUICK_ACTIONS overload this method
- return self.model.get_quick_action_by_url(self.base_url)
+ quick_action = self.model.get_quick_action_by_url(self.base_url)
+ if quick_action:
+ return quick_action
+ # if not listed in QUICK_ACTIONS
+ return QuickAction(
+ url=self.base_url,
+ icon_class=self.icon,
+ text=self.page_name,
+ rights=self.permissions
+ )
def pre_dispatch(self, request, *args, **kwargs):
if not self.model:
@@ -3192,7 +3202,7 @@ class QAItemForm(IshtarMixin, LoginRequiredMixin, FormView):
)
def get_context_data(self, **kwargs):
- data = super(QAItemForm, self).get_context_data(**kwargs)
+ data = super().get_context_data(**kwargs)
data["url"] = self.url
data["items"] = self.items
data["modal_size"] = self.modal_size