diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-02-25 12:57:00 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-02-25 12:57:00 +0100 |
commit | d9112d6231e45671cf4eda59ff93035a0bcc72af (patch) | |
tree | 8c7b16e0f32c77b4a12f1cdfec5c568638c20130 | |
parent | bc6a1747e2677580cbed970cb895b558961acd3a (diff) | |
download | Ishtar-d9112d6231e45671cf4eda59ff93035a0bcc72af.tar.bz2 Ishtar-d9112d6231e45671cf4eda59ff93035a0bcc72af.zip |
Change archaeological sites form (more robust)
5 files changed, 59 insertions, 9 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 9d6f27b50..84af8f287 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -466,12 +466,12 @@ class OperationSelect(TableSelect): report_processing = forms.ChoiceField(label=_(u"Report processing"), choices=[]) virtual_operation = forms.NullBooleanField(label=_(u"Virtual operation")) - archaeological_sites = forms.IntegerField( - label=_("Archaelogical site"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-archaeologicalsite'), - associated_model=models.ArchaeologicalSite), - validators=[valid_id(models.ArchaeologicalSite)]) + # archaeological_sites = forms.IntegerField( + # label=_("Archaelogical site"), + # widget=widgets.JQueryAutoComplete( + # reverse_lazy('autocomplete-archaeologicalsite'), + # associated_model=models.ArchaeologicalSite), + # validators=[valid_id(models.ArchaeologicalSite)]) history_creator = forms.IntegerField( label=_(u"Created by"), widget=widgets.JQueryAutoComplete( @@ -990,6 +990,24 @@ class ArchaeologicalSiteForm(forms.Form): return item +class ArchaeologicalSiteBasicForm(forms.Form): + form_label = _("Archaeological site") + base_model = 'archaeological_site' + associated_models = {'archaeological_site': models.ArchaeologicalSite} + archaeological_site = forms.IntegerField( + label=_("Archaelogical site"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-archaeologicalsite'), + associated_model=models.ArchaeologicalSite, + new=True), + validators=[valid_id(models.ArchaeologicalSite)]) + + +ArchaeologicalSiteFormSet = formset_factory(ArchaeologicalSiteBasicForm, + can_delete=True, formset=FormSet) +ArchaeologicalSiteFormSet.form_label = _("Archaeological sites") + + class ArchaeologicalSiteSelectionForm(forms.Form): form_label = _("Associated archaelogical sites") archaeological_sites = forms.IntegerField( diff --git a/archaeological_operations/templates/ishtar/blocks/window_tables/archaeologicalsites.html b/archaeological_operations/templates/ishtar/blocks/window_tables/archaeologicalsites.html new file mode 100644 index 000000000..d72291c5b --- /dev/null +++ b/archaeological_operations/templates/ishtar/blocks/window_tables/archaeologicalsites.html @@ -0,0 +1,20 @@ +{% load i18n %} +<table class='simple'> + <caption>{{caption}}</caption> + <tr> + <th>{% trans "Ref." %}</th> + <th>{% trans "Name" %}</th> + <th>{% trans "Periods" %}</th> + <th>{% trans "Remains" %}</th> + </tr> + {% for archaeosite in data %} + <tr> + <td class='string'>{{archaeosite.reference}}</td> + <td class='string'>{{archaeosite.name}}</td> + <td class='string'>{% for period in archaeosite.periods.all %}{{period}}{% include "blocks/comma_list.html" %}{% endfor %}</td> + <td class='string'>{% for remain in archaeosite.remains.all %}{{remain}}{% include "blocks/comma_list.html" %}{% endfor %}</td> + </tr> + {% empty %} + <tr><td colspan="4" class='no_items'>{% trans "No archaeological site associated" %}</td></tr> + {% endfor %} +</table> diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html index 87cf53b27..14210046b 100644 --- a/archaeological_operations/templates/ishtar/sheet_operation.html +++ b/archaeological_operations/templates/ishtar/sheet_operation.html @@ -96,8 +96,10 @@ {% field "Comment" item.comment "<pre>" "</pre>" %} +{% if item.towns.count %} <h3>{% trans "Localisation"%}</h3> <p><label>{%trans "Towns:"%}</label> <span class='value'>{{ item.towns.all|join:", " }}</span></p> +{% endif %} {% if item.associated_file.address %}<p><label>{%trans "Main address:"%}</label> <span class='value'>{{ item.associated_file.address }}</span></p> {% if item.associated_file.address_complement %}<p><label>{%trans "Complement:"%}</label> <span class='value'>{{ item.associated_file.address_complement }}</span></p>{%endif%} @@ -120,6 +122,11 @@ {% endfor %} {% endif %} +{% if item.archaeological_sites.count %} +{% trans "Archaeological sites" as archaeologicalsites_label %} +{% table_archaeologicalsites archaeologicalsites_label item.archaeological_sites.all %} +{% endif %} + {% trans "Associated parcels" as parcels_label %} {% include "ishtar/blocks/window_tables/parcels.html" %} diff --git a/archaeological_operations/templatetags/window_ope_tables.py b/archaeological_operations/templatetags/window_ope_tables.py index 5576fe32d..ca263832f 100644 --- a/archaeological_operations/templatetags/window_ope_tables.py +++ b/archaeological_operations/templatetags/window_ope_tables.py @@ -1,10 +1,13 @@ from django import template -from django.utils.translation import ugettext as _ -import re register = template.Library() + @register.inclusion_tag('ishtar/blocks/window_tables/administrativacts.html') def table_administrativact(caption, data): - return {'caption':caption, 'data':data} + return {'caption': caption, 'data': data} + +@register.inclusion_tag('ishtar/blocks/window_tables/archaeologicalsites.html') +def table_archaeologicalsites(caption, data): + return {'caption': caption, 'data': data} diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 11e1d8711..0b9b9c453 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -234,6 +234,7 @@ operation_search_wizard = SearchWizard.as_view([ wizard_steps = [ ('filechoice-operation_creation', OperationFormFileChoice), ('general-operation_creation', OperationFormGeneral), + ('archaeologicalsite-operation_creation', ArchaeologicalSiteFormSet), ('preventive-operation_creation', OperationFormPreventive), ('preventivediag-operation_creation', OperationFormPreventiveDiag), ('townsgeneral-operation_creation', TownFormset), @@ -278,6 +279,7 @@ operation_creation_wizard = OperationWizard.as_view( operation_modification_wizard = OperationModificationWizard.as_view([ ('selec-operation_modification', OperationFormSelection), ('general-operation_modification', OperationFormModifGeneral), + ('archaeologicalsite-operation_modification', ArchaeologicalSiteFormSet), ('preventive-operation_modification', OperationFormPreventive), ('preventivediag-operation_modification', OperationFormPreventiveDiag), ('towns-operation_modification', SelectedTownFormset), |