summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-12-05 14:21:37 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-12-05 14:21:37 +0100
commited111729132d8c7e21d82d940e95b034a2a4f599 (patch)
tree26c842f547666eb98f2a2e702a662c4e1bd23b57
parent77ebf402e92bf39ff0df90d38ea3052654316755 (diff)
downloadIshtar-ed111729132d8c7e21d82d940e95b034a2a4f599.tar.bz2
Ishtar-ed111729132d8c7e21d82d940e95b034a2a4f599.zip
Document generation: no more specific action -> available on the sheet
-rw-r--r--archaeological_files/ishtar_menu.py4
-rw-r--r--archaeological_finds/ishtar_menu.py8
-rw-r--r--archaeological_finds/templates/ishtar/blocks/window_find_nav.html6
-rw-r--r--archaeological_operations/ishtar_menu.py5
-rw-r--r--archaeological_operations/models.py10
-rw-r--r--archaeological_operations/views.py6
-rw-r--r--docs/fr/source/interface-administrateur.rst24
-rw-r--r--ishtar_common/templates/ishtar/blocks/window_nav.html32
-rw-r--r--ishtar_common/templatetags/window_header.py7
-rw-r--r--ishtar_common/views.py2
10 files changed, 61 insertions, 43 deletions
diff --git a/archaeological_files/ishtar_menu.py b/archaeological_files/ishtar_menu.py
index 21e59a6af..bd41f3782 100644
--- a/archaeological_files/ishtar_menu.py
+++ b/archaeological_files/ishtar_menu.py
@@ -73,10 +73,6 @@ MENU_SECTIONS = [
_(u"Deletion"),
model=AdministrativeAct,
access_controls=['change_administrativeact']),
- MenuItem('file_administrativeact_document',
- _(u"Documents"),
- model=AdministrativeAct,
- access_controls=['change_administrativeact']),
],)]),),
(100,
SectionItem(
diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py
index 48e12c79d..21a582a18 100644
--- a/archaeological_finds/ishtar_menu.py
+++ b/archaeological_finds/ishtar_menu.py
@@ -134,10 +134,6 @@ MENU_SECTIONS = [
_(u"Deletion"),
model=AdministrativeAct,
access_controls=['change_administrativeact']),
- MenuItem('treatmentfle_administrativeact_document',
- _(u"Documents"),
- model=AdministrativeAct,
- access_controls=['change_administrativeact']),
]
),
]
@@ -197,10 +193,6 @@ MENU_SECTIONS = [
_(u"Deletion"),
model=AdministrativeAct,
access_controls=['change_administrativeact']),
- MenuItem('treatment_administrativeact_document',
- _(u"Documents"),
- model=AdministrativeAct,
- access_controls=['change_administrativeact']),
]),
]
)),
diff --git a/archaeological_finds/templates/ishtar/blocks/window_find_nav.html b/archaeological_finds/templates/ishtar/blocks/window_find_nav.html
index 5ecaa35f0..74c6858a1 100644
--- a/archaeological_finds/templates/ishtar/blocks/window_find_nav.html
+++ b/archaeological_finds/templates/ishtar/blocks/window_find_nav.html
@@ -3,10 +3,12 @@
{% block post_pin %}{% if baskets %}
<div class="dropdown btn-secondary">
<button class="btn btn-sm btn-secondary dropdown-toggle" type="button"
- id="dropdownMenuButton" data-toggle="dropdown"aria-haspopup="true" aria-expanded="false">
+ id="dropdown-post-pin-{{window_id}}"
+ data-toggle="dropdown"aria-haspopup="true"
+ aria-expanded="false">
<i class="fa fa-shopping-basket"></i> {% trans "Baskets" %}
</button>
- <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+ <div class="dropdown-menu" aria-labelledby="dropdown-post-pin-{{window_id}}">
{% for basket_id, lbl in baskets %}
<a class="dropdown-item" href="#"
onclick="load_window('{% url 'show-findbasket' basket_id %}')">
diff --git a/archaeological_operations/ishtar_menu.py b/archaeological_operations/ishtar_menu.py
index 4baf14295..bfc027573 100644
--- a/archaeological_operations/ishtar_menu.py
+++ b/archaeological_operations/ishtar_menu.py
@@ -82,11 +82,6 @@ MENU_SECTIONS = [
_(u"Deletion"),
model=models.AdministrativeAct,
access_controls=['change_administrativeact']),
- MenuItem(
- 'operation_administrativeact_document',
- _(u"Documents"),
- model=models.AdministrativeAct,
- access_controls=['change_administrativeact']),
],),
]),
),
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index a0d0ba30b..d1a8b5875 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -1866,6 +1866,16 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
if self.treatment_file:
return self.treatment_file
+ def get_extra_templates(self, request):
+ templates = []
+ for template in self.act_type.associated_template.all():
+ urlname = "generatedoc-administrativeactop"
+ templates.append(
+ (template.name, reverse(
+ urlname, args=[self.pk, template.pk]))
+ )
+ return templates
+
def get_filename(self):
filename = self.related_item.associated_filename
filename = u"-".join(filename.split('-')[:-1]) # remove date
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 48d7c4a4f..5ece22073 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -467,10 +467,8 @@ administrativact_register_wizard = SearchWizard.as_view([
def generatedoc_administrativeactop(request, pk, template_pk=None):
- if (not request.user.has_perm(
- 'ishtar_common.view_operation', models.Operation)
- and not request.user.has_perm(
- 'ishtar_common.view_own_operation', models.Operation)):
+ if not request.user.has_perm('view_administrativeact',
+ models.AdministrativeAct):
return HttpResponse(content_type='text/plain')
try:
act_file = models.AdministrativeAct.objects.get(pk=pk)
diff --git a/docs/fr/source/interface-administrateur.rst b/docs/fr/source/interface-administrateur.rst
index 73e790441..a77ff605d 100644
--- a/docs/fr/source/interface-administrateur.rst
+++ b/docs/fr/source/interface-administrateur.rst
@@ -208,6 +208,18 @@ Une fois quelques substitutions faites, on peut l'enregistrer et créer le patro
Notions avancées
****************
+Conditions
+++++++++++
+
+Des structures conditionnelles peuvent être mise en place. Cela permet notamment de tester si une valeur a été renseignée et de permettre de contextualiser l'affichage en fonction de cela. Exemple : ::
+
+ Ce traitement sous
+ {% if responsable %}la responsabilité de {{responsable}}
+ {% else %}une responsabilité à définir
+ {% endif %} se tiendra...
+
+Les structures conditionnelles se structurent autour des mots clés ``if``, ``else`` et ``endif``. On utilise ``{%`` et ``%}`` autour de ces mots clés. La section ``else`` est facultative.
+
Attributs
+++++++++
@@ -225,18 +237,6 @@ Certaines clés peuvent parfois renvoyer à des listes d'éléments, chacun ayan
Cela se structure autour des mots clés ``for``, ``in`` et ``endfor``. Au lieu de doubles accolades, ``{%`` et ``%}`` encadrent ces mots clés.
-Conditions
-++++++++++
-
-Des structures conditionnelles peuvent être mise en place. Cela permet notamment de tester si une valeur a été renseignée et de permettre de contextualiser l'affichage en fonction de cela. Exemple : ::
-
- Ce traitement sous
- {% if responsable %}la responsabilité de {{responsable}}
- {% else %}une responsabilité à définir
- {% endif %} se tiendra...
-
-Les structures conditionnelles se structurent autour des mots clés ``if``, ``else`` et ``endif``. On utilise ``{%`` et ``%}`` autour de ces mots clés. La section ``else`` est facultative.
-
..
Images
++++++
diff --git a/ishtar_common/templates/ishtar/blocks/window_nav.html b/ishtar_common/templates/ishtar/blocks/window_nav.html
index 90d58d605..62caff142 100644
--- a/ishtar_common/templates/ishtar/blocks/window_nav.html
+++ b/ishtar_common/templates/ishtar/blocks/window_nav.html
@@ -57,15 +57,33 @@
</a>
{% endfor %}
</div>
+
<div class="btn-group btn-group-sm" role="group"
aria-label="{% trans 'Export' %}">
- <a class="btn btn-secondary" href='{% url show_url item.pk "odt" %}'
- title='{% trans "Export as OpenOffice.org file"%}'>
- ODT <i class="fa fa-file-word-o" aria-hidden="true"></i>
- <a class="btn btn-secondary" href='{% url show_url item.pk "pdf" %}'
- title='{% trans "Export as PDF file"%}'>
- PDF <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
- </a>
+ <div class="dropdown btn-secondary">
+ <button class="btn btn-sm btn-secondary dropdown-toggle" type="button"
+ id="dropdown-sheet-export-{{window_id}}"
+ data-toggle="dropdown"aria-haspopup="true"
+ aria-expanded="false">
+ <i class="fa fa-file-word-o"></i> {% trans "Export" %}
+ </button>
+ <div class="dropdown-menu"
+ aria-labelledby="dropdown-sheet-export-{{window_id}}">
+ <a class="dropdown-item" href='{% url show_url item.pk "odt" %}'
+ title='{% trans "Export as OpenOffice.org file"%}'>
+ ODT <i class="fa fa-file-word-o" aria-hidden="true"></i>
+ </a>
+ <a class="dropdown-item" href='{% url show_url item.pk "pdf" %}'
+ title='{% trans "Export as PDF file"%}'>
+ PDF <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
+ </a>{% for template_name, template_url in extra_templates %}
+ <a class="dropdown-item" href='{{template_url}}'>
+ {{template_name}} <i class="fa fa-file-word-o" aria-hidden="true"></i>
+ </a>{% endfor %}
+ </div>
+ </div>
+
+
</div>
</div>
</div>
diff --git a/ishtar_common/templatetags/window_header.py b/ishtar_common/templatetags/window_header.py
index e6325d3fb..bbd923d41 100644
--- a/ishtar_common/templatetags/window_header.py
+++ b/ishtar_common/templatetags/window_header.py
@@ -10,6 +10,9 @@ def window_nav(context, item, window_id, show_url, modify_url='', histo_url='',
extra_actions = []
if hasattr(item, 'get_extra_actions'):
extra_actions = item.get_extra_actions(context['request'])
+ extra_templates = []
+ if hasattr(item, 'get_extra_templates'):
+ extra_templates = item.get_extra_templates(context['request'])
slug = None
if hasattr(item, "LONG_SLUG"):
@@ -29,7 +32,9 @@ def window_nav(context, item, window_id, show_url, modify_url='', histo_url='',
'previous': previous,
'next': nxt,
'extra_actions': extra_actions,
- 'pin_action': pin_action}
+ 'pin_action': pin_action,
+ 'extra_templates': extra_templates,
+ }
@register.inclusion_tag('ishtar/blocks/window_find_nav.html',
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index bc9c9432a..f23116d21 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -2001,3 +2001,5 @@ class QAItemEditForm(QAItemForm):
def form_save(self, form):
form.save(self.items, self.request.user)
return HttpResponseRedirect(reverse("success"))
+
+