summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-12-17 01:53:53 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-12-17 01:53:53 +0100
commitd8590171c727a9bd3cc3deca0fc8189f1da53227 (patch)
tree10b2770b19fde76764d3a028fd01ae3ebe8176f5
parent2789ba690ffc72c17f47a1c705edd28c5cb72cd7 (diff)
downloadIshtar-d8590171c727a9bd3cc3deca0fc8189f1da53227.tar.bz2
Ishtar-d8590171c727a9bd3cc3deca0fc8189f1da53227.zip
Choose document to generate at the end of create/modif process
-rw-r--r--archaeological_operations/forms.py9
-rw-r--r--archaeological_operations/models.py11
-rw-r--r--archaeological_operations/urls.py2
-rw-r--r--archaeological_operations/views.py4
-rw-r--r--archaeological_operations/wizards.py5
-rw-r--r--ishtar_common/models.py6
6 files changed, 27 insertions, 10 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 955b2f825..0cef41125 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -615,5 +615,12 @@ class FinalAdministrativeActDeleteForm(FinalForm):
class GenerateDocForm(forms.Form):
form_label = _("Doc generation")
- doc_generation = forms.BooleanField(required=False,
+ doc_generation = forms.ChoiceField(required=False, choices=[],
label=_(u"Generate the associated doc?"))
+ def __init__(self, *args, **kwargs):
+ choices = []
+ if 'choices' in kwargs:
+ choices = kwargs.pop('choices')
+ super(GenerateDocForm, self).__init__(*args, **kwargs)
+ self.fields['doc_generation'].choices = [('', u'-'*9)] + \
+ [(choice.pk , unicode(choice)) for choice in choices]
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 125a5d7d1..be09f9923 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -425,11 +425,16 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
filename += u"-" + self.signature_date.strftime('%Y%m%d')
return filename
- def publish(self):
+ def publish(self, template_pk=None):
if not self.act_type.associated_template.count():
return
- # for administrative_act only one associated_template
- template = self.act_type.associated_template.all()[0]
+ if not template_pk:
+ template = self.act_type.associated_template.all()[0]
+ else:
+ q = self.act_type.associated_template.filter(pk=template_pk)
+ if not q.count():
+ return
+ template = q.all()[0]
return template.publish(self)
class Parcel(LightHistorizedItem):
diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py
index 4453b10ed..8ae835292 100644
--- a/archaeological_operations/urls.py
+++ b/archaeological_operations/urls.py
@@ -71,7 +71,7 @@ urlpatterns += patterns('archaeological_operations.views',
'show_operation', name='show-historized-operation'),
url(r'get-administrativeactop/(?P<type>.+)?$',
'get_administrativeactop', name='get-administrativeactop'),
- url(r'generatedoc-administrativeactop/(?P<pk>.+)?$',
+ url(r'generatedoc-administrativeactop/(?P<pk>.+)?/(?P<template_pk>.+)?$',
'generatedoc_administrativeactop',
name='generatedoc-administrativeactop'),
url(r'get-operationsource/(?P<type>.+)?$',
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index c899b1c4d..183c80b83 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -260,7 +260,7 @@ operation_administrativeactop_deletion_wizard = \
label=_(u"Operation: administrative act deletion"),
url_name='operation_administrativeactop_deletion',)
-def generatedoc_administrativeactop(request, pk):
+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',
@@ -268,7 +268,7 @@ def generatedoc_administrativeactop(request, pk):
return HttpResponse(mimetype='text/plain')
try:
act_file = models.AdministrativeAct.objects.get(pk=pk)
- doc = act_file.publish()
+ doc = act_file.publish(template_pk)
except models.AdministrativeAct.DoesNotExist:
doc = None
if doc:
diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py
index 86af26351..a61452733 100644
--- a/archaeological_operations/wizards.py
+++ b/archaeological_operations/wizards.py
@@ -281,7 +281,8 @@ class OperationAdministrativeActWizard(OperationWizard):
except models.ActType.DoesNotExist:
pass
if act_type and act_type.associated_template.count():
- context['extra_form'] = GenerateDocForm()
+ context['extra_form'] = GenerateDocForm(
+ choices=act_type.associated_template.all())
return context
def get_associated_item(self, dct):
@@ -323,7 +324,7 @@ class OperationAdministrativeActWizard(OperationWizard):
if level == len(keys): # the whole tree as been traversed
# redirect to the generated doc
dct['redirect'] = reverse('generatedoc-administrativeactop',
- args=[admact.pk])
+ args=[admact.pk, r[0]])
res = render_to_response('ishtar/wizard/wizard_done.html', dct,
context_instance=RequestContext(self.request))
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 611a6089c..77a7d6562 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -765,7 +765,11 @@ class Person(Address, OwnPerms, ValueGetter) :
def get_values(self, prefix=''):
values = super(Person, self).get_values(prefix=prefix)
- values[prefix+'title'] = dict(self.TYPE)[self.title]
+ title = ''
+ TYPES = dict(self.TYPE)
+ if self.title in TYPES:
+ title = dict(self.TYPE)[self.title]
+ values[prefix+'title'] = title
if not self.attached_to:
values.update(Person.get_empty_values(prefix=prefix + 'attached_to_'))
return values