diff options
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/forms.py | 25 | ||||
-rw-r--r-- | archaeological_operations/ishtar_menu.py | 4 | ||||
-rw-r--r-- | archaeological_operations/urls.py | 3 | ||||
-rw-r--r-- | archaeological_operations/views.py | 16 |
4 files changed, 47 insertions, 1 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 52507d748..e52fef927 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -33,7 +33,8 @@ from django.template import RequestContext from django.utils.translation import ugettext_lazy as _ from django.utils.safestring import mark_safe -from ishtar_common.models import valid_id, PersonType, Person, Town +from ishtar_common.models import valid_id, PersonType, Person, Town, \ + DocumentTemplate from archaeological_files.models import File import models @@ -614,6 +615,28 @@ class FinalAdministrativeActDeleteForm(FinalForm): confirm_msg = " " confirm_end_msg = _(u"Would you like to delete this administrative act?") +class DocumentGenerationAdminActForm(forms.Form): + _associated_model = models.AdministrativeAct + document_template = forms.ChoiceField(label=_("Template"), choices=[]) + + def __init__(self, *args, **kwargs): + super(DocumentGenerationAdminActForm, self).__init__(*args, **kwargs) + self.fields['document_template'].choices = DocumentTemplate.get_tuples( + dct={'associated_object_name': + 'archaeological_operations.models.AdministrativeAct'}) + + def save(self, object_pk): + try: + c_object = self._associated_model.objects.get(pk=object_pk) + except self._associated_model.DoesNotExist: + return + try: + template = DocumentTemplate.objects.get( + pk=self.cleaned_data.get('document_template')) + except DocumentTemplate.DoesNotExist: + return + return template.publish(c_object) + class GenerateDocForm(forms.Form): form_label = _("Doc generation") doc_generation = forms.ChoiceField(required=False, choices=[], diff --git a/archaeological_operations/ishtar_menu.py b/archaeological_operations/ishtar_menu.py index cd8ebc2d2..6015ae43a 100644 --- a/archaeological_operations/ishtar_menu.py +++ b/archaeological_operations/ishtar_menu.py @@ -65,6 +65,10 @@ MENU_SECTIONS = [ model=models.AdministrativeAct, access_controls=['operation_deletion', 'delete_own_operation']), + MenuItem('operation_administrativeact_document', + _(u"Documents"), + model=models.AdministrativeAct, + access_controls=['change_operation', 'change_own_operation']), ],), SectionItem('operation_source', _(u"Documentation"), childs=[ diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index 8ae835292..c85c05c88 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -80,4 +80,7 @@ urlpatterns += patterns('archaeological_operations.views', name='dashboard-operation'), url(r'autocomplete-patriarche/$', 'autocomplete_patriarche', name='autocomplete-patriarche'), + url(r'operation_administrativeact_document/$', + 'operation_administrativeactfile_document', + name='operation-administrativeact-document'), ) diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 183c80b83..1ba994a86 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -284,3 +284,19 @@ def generatedoc_administrativeactop(request, pk, template_pk=None): doc_name return response return HttpResponse(mimetype='text/plain') + +def operation_administrativeactfile_document(request): + dct = {} + if request.POST: + dct['search_form'] = AdministrativeActOperationFormSelection( + request.POST) + dct['template_form'] = DocumentGenerationAdminActForm(request.POST) + if dct['search_form'].is_valid() and dct['template_form'].is_valid(): + return generatedoc_administrativeactop(request, + dct['search_form'].cleaned_data.get('pk'), + dct['template_form'].cleaned_data.get('document_template')) + else: + dct['search_form'] = AdministrativeActOpeFormSelection() + dct['template_form'] = DocumentGenerationAdminActForm() + return render_to_response('ishtar/administrativeact_document.html', dct, + context_instance=RequestContext(request)) |