diff options
Diffstat (limited to 'archaeological_finds/forms.py')
-rw-r--r-- | archaeological_finds/forms.py | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 9a52882b2..a617c8ee1 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -29,14 +29,16 @@ from django.forms.formsets import formset_factory from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ -from ishtar_common.models import Person, valid_id, valid_ids -from archaeological_operations.models import Period, ArchaeologicalSite +from ishtar_common.models import Person, valid_id, valid_ids, get_current_profile +from archaeological_operations.models import Period, ArchaeologicalSite, \ + RelationType as OpeRelationType from archaeological_context_records.models import DatingType, DatingQuality, \ ContextRecord from archaeological_warehouse.models import Warehouse import models from ishtar_common import widgets +from archaeological_operations.widgets import OAWidget from ishtar_common.forms import FormSet, FloatField, \ get_form_selection, reverse_lazy, TableSelect, get_now, FinalForm from ishtar_common.forms_common import get_town_field, SourceSelect @@ -78,12 +80,14 @@ class FindForm(forms.Form): file_upload = True form_label = _("Find") base_models = ['get_first_base_find', 'object_type', 'material_type', - 'preservation_to_consider', 'integritie'] + 'preservation_to_consider', 'integritie', + 'remarkabilitie'] associated_models = {'material_type': models.MaterialType, 'conservatory_state': models.ConservatoryState, 'object_type': models.ObjectType, 'preservation_to_consider': models.PreservationType, - 'integritie': models.IntegrityType} + 'integritie': models.IntegrityType, + 'remarkabilitie': models.RemarkabilityType} label = forms.CharField( label=_(u"Free ID"), validators=[validators.MaxLengthValidator(60)]) @@ -110,6 +114,9 @@ class FindForm(forms.Form): integritie = forms.MultipleChoiceField( label=_(u"Integrity"), choices=[], widget=forms.CheckboxSelectMultiple, required=False) + remarkabilitie = forms.MultipleChoiceField( + label=_(u"Remarkability"), choices=[], + widget=forms.CheckboxSelectMultiple, required=False) length = FloatField(label=_(u"Length (cm)"), required=False) width = FloatField(label=_(u"Width (cm)"), required=False) height = FloatField(label=_(u"Height (cm)"), required=False) @@ -127,6 +134,7 @@ class FindForm(forms.Form): widget=forms.Textarea) dating_comment = forms.CharField( label=_(u"Comment on dating"), required=False, widget=forms.Textarea) + estimated_value = FloatField(label=_(u"Estimated value"), required=False) image = forms.ImageField( label=_(u"Image"), help_text=mark_safe( _(u"<p>Heavy images are resized to: %(width)dx%(height)d " @@ -152,6 +160,13 @@ class FindForm(forms.Form): models.IntegrityType.get_types(empty_first=False) self.fields['integritie'].help_text = \ models.IntegrityType.get_help() + self.fields['remarkabilitie'].choices = \ + models.RemarkabilityType.get_types(empty_first=False) + self.fields['remarkabilitie'].help_text = \ + models.RemarkabilityType.get_help() + self.fields['estimated_value'].label = u"{} ({})".format( + unicode(self.fields['estimated_value'].label), + get_current_profile().currency) class DateForm(forms.Form): @@ -194,13 +209,19 @@ class FindSelect(TableSelect): base_finds__context_record__operation__year = forms.IntegerField( label=_(u"Year")) base_finds__context_record__operation__code_patriarche = \ - forms.IntegerField(label=_(u"Code PATRIARCHE")) + forms.IntegerField( + label=_(u"Code PATRIARCHE"), + widget=OAWidget + ) archaeological_sites = forms.IntegerField( label=_("Archaelogical site"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-archaeologicalsite'), associated_model=ArchaeologicalSite), validators=[valid_id(ArchaeologicalSite)]) + ope_relation_types = forms.MultipleChoiceField( + label=_(u"Search within operation relations"), choices=[], + widget=forms.CheckboxSelectMultiple) datings__period = forms.ChoiceField(label=_(u"Period"), choices=[]) # TODO search by warehouse material_types = forms.ChoiceField(label=_(u"Material type"), choices=[]) @@ -210,6 +231,8 @@ class FindSelect(TableSelect): conservatory_state = forms.ChoiceField(label=_(u"Conservatory state"), choices=[]) integrities = forms.ChoiceField(label=_(u"Integrity"), choices=[]) + remarkabilities = forms.ChoiceField(label=_(u"Remarkability"), + choices=[]) base_finds__find__description = forms.CharField(label=_(u"Description")) base_finds__batch = forms.ChoiceField( label=_(u"Batch/object"), @@ -241,6 +264,19 @@ class FindSelect(TableSelect): models.IntegrityType.get_types() self.fields['integrities'].help_text = \ models.IntegrityType.get_help() + self.fields['remarkabilities'].choices = \ + models.RemarkabilityType.get_types() + self.fields['remarkabilities'].help_text = \ + models.RemarkabilityType.get_help() + self.fields['ope_relation_types'].choices = OpeRelationType.get_types( + empty_first=False) + + def get_input_ids(self): + ids = super(FindSelect, self).get_input_ids() + ids.pop(ids.index('ope_relation_types')) + for idx, c in enumerate(self.fields['ope_relation_types'].choices): + ids.append('ope_relation_types_{}'.format(idx)) + return ids class FindFormSelection(forms.Form): @@ -416,6 +452,13 @@ SourceFindFormSelection = get_form_selection( class FindSourceSelect(SourceSelect): find__base_finds__context_record__operation__year = forms.IntegerField( label=_(u"Year of the operation")) + find__base_finds__context_record__operation__operation_code = \ + forms.IntegerField(label=_(u"Numeric reference")) + if settings.COUNTRY == 'fr': + find__base_finds__context_record__operation__code_patriarche = \ + forms.IntegerField( + widget=OAWidget, + label="Code PATRIARCHE") find__datings__period = forms.ChoiceField( label=_(u"Period of the archaelogical find"), choices=[]) find__material_type = forms.ChoiceField( |