summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-04 16:49:10 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-04 16:49:10 +0200
commit5009e12cc0062d0c5a366f5c87ce2183d62522d8 (patch)
tree748fd1368aa2af53a4d890dd8e035ce47fd026d2
parentbec5cecd414d97cb1a5b4a9ba8433efaec3f7ff9 (diff)
downloadIshtar-5009e12cc0062d0c5a366f5c87ce2183d62522d8.tar.bz2
Ishtar-5009e12cc0062d0c5a366f5c87ce2183d62522d8.zip
Preservation: adapt forms with a preservation panel (refs #3639)
-rw-r--r--archaeological_finds/forms.py69
-rw-r--r--archaeological_finds/models.py6
-rw-r--r--archaeological_finds/views.py12
3 files changed, 60 insertions, 27 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 884bbe9a1..497061e3a 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -79,6 +79,7 @@ __all__ = [
'TreatmentFileSourceFormSelection', 'DashboardTreatmentForm',
'DashboardTreatmentFileForm',
'RecordFormSelection', 'FindForm', 'DateForm', 'DatingFormSet',
+ 'PreservationForm',
'FindSelect', 'FindFormSelection', 'FindFormSelectionWarehouseModule',
'MultipleFindFormSelection', 'MultipleFindFormSelectionWarehouseModule',
'FindMultipleFormSelection', 'check_form', 'check_exist', 'check_not_exist',
@@ -127,12 +128,9 @@ class FindForm(ManageOldType, forms.Form):
file_upload = True
form_label = _("Find")
base_models = ['get_first_base_find', 'object_type', 'material_type',
- 'preservation_to_consider', 'integritie',
- 'remarkabilitie']
+ 'integritie', 'remarkabilitie']
associated_models = {'material_type': models.MaterialType,
- 'conservatory_state': models.ConservatoryState,
'object_type': models.ObjectType,
- 'preservation_to_consider': models.PreservationType,
'integritie': models.IntegrityType,
'get_first_base_find__batch': models.BatchType,
'remarkabilitie': models.RemarkabilityType,
@@ -154,17 +152,9 @@ class FindForm(ManageOldType, forms.Form):
material_type = widgets.Select2MultipleField(
label=_(u"Material type"), required=False
)
- conservatory_state = forms.ChoiceField(label=_(u"Conservatory state"),
- choices=[], required=False)
- conservatory_comment = forms.CharField(
- label=_(u"Conservatory comment"), required=False,
- widget=forms.Textarea)
object_type = widgets.Select2MultipleField(
label=_(u"Object types"), required=False,
)
- preservation_to_consider = forms.MultipleChoiceField(
- label=_(u"Preservation type"), choices=[],
- widget=widgets.Select2Multiple, required=False)
integritie = forms.MultipleChoiceField(
label=_(u"Integrity / interest"), choices=[],
widget=widgets.Select2Multiple, required=False)
@@ -251,19 +241,6 @@ class FindForm(ManageOldType, forms.Form):
initial=self.init_data.get('get_first_base_find__batch'))
self.fields['get_first_base_find__batch'].help_text = \
models.BatchType.get_help()
-
- self.fields['conservatory_state'].choices = \
- models.ConservatoryState.get_types(
- initial=self.init_data.get('conservatory_state'))
- self.fields['conservatory_state'].help_text = \
- models.ConservatoryState.get_help()
-
- self.fields['preservation_to_consider'].choices = \
- models.PreservationType.get_types(
- empty_first=False,
- initial=self.init_data.get('preservation_to_consider'))
- self.fields['preservation_to_consider'].help_text = \
- models.PreservationType.get_help()
self.fields['integritie'].choices = \
models.IntegrityType.get_types(
empty_first=False,
@@ -308,6 +285,48 @@ class FindForm(ManageOldType, forms.Form):
return self.cleaned_data
+class PreservationForm(ManageOldType, forms.Form):
+ form_label = _("Preservation")
+ base_models = ['alteration', 'alteration_cause',
+ 'preservation_to_consider']
+ associated_models = {'alteration': models.AlterationType,
+ 'alteration_cause': models.AlterationCauseType,
+ 'treatment_emergency': models.TreatmentEmergencyType,
+ 'conservatory_state': models.ConservatoryState,
+ 'preservation_to_consider': models.PreservationType,
+ }
+ conservatory_state = forms.ChoiceField(label=_(u"Conservatory state"),
+ choices=[], required=False)
+ alteration = forms.MultipleChoiceField(
+ label=_(u"Alteration"), choices=[],
+ widget=widgets.Select2Multiple, required=False)
+ alteration_cause = forms.MultipleChoiceField(
+ label=_(u"Alteration cause"), choices=[],
+ widget=widgets.Select2Multiple, required=False)
+ preservation_to_consider = forms.MultipleChoiceField(
+ label=_(u"Preservation type"), choices=[],
+ widget=widgets.Select2Multiple, required=False)
+ insurance_value = FloatField(label=_(u"Insurance value"), required=False)
+ appraisal_date = forms.DateField(
+ label=_(u"Appraisal date"), widget=widgets.JQueryDate, required=False)
+ conservatory_comment = forms.CharField(
+ label=_(u"Conservatory comment"), required=False,
+ widget=forms.Textarea)
+
+ TYPES = [
+ ('conservatory_state', models.ConservatoryState, False),
+ ('preservation_to_consider', models.PreservationType, True),
+ ('alteration', models.AlterationType, True),
+ ('alteration_cause', models.AlterationCauseType, True),
+ ]
+
+ def __init__(self, *args, **kwargs):
+ super(PreservationForm, self).__init__(*args, **kwargs)
+ self.fields['insurance_value'].label = u"{} ({})".format(
+ unicode(self.fields['insurance_value'].label),
+ get_current_profile().currency)
+
+
class DateForm(ManageOldType, forms.Form):
form_label = _("Dating")
base_model = 'dating'
diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py
index eb209461f..ab3686f08 100644
--- a/archaeological_finds/models.py
+++ b/archaeological_finds/models.py
@@ -1,7 +1,8 @@
from archaeological_finds.models_finds import MaterialType, ConservatoryState,\
PreservationType, IntegrityType, RemarkabilityType, ObjectType, BaseFind, \
FindBasket, Find, FindSource, Property, CHECK_CHOICES, BatchType, \
- BFBulkView, FBulkView, FirstBaseFindView
+ BFBulkView, FBulkView, FirstBaseFindView, AlterationType, \
+ AlterationCauseType, TreatmentEmergencyType
from archaeological_finds.models_treatments import TreatmentType, Treatment, \
AbsFindTreatments, FindUpstreamTreatments, FindDownstreamTreatments, \
FindTreatments, TreatmentSource, TreatmentFile, TreatmentFileType, \
@@ -10,7 +11,8 @@ from archaeological_finds.models_treatments import TreatmentType, Treatment, \
__all__ = ['MaterialType', 'ConservatoryState', 'PreservationType',
'IntegrityType', 'RemarkabilityType', 'ObjectType',
'BaseFind', 'FindBasket', 'Find', 'FindSource', 'Property',
- 'BFBulkView', 'FBulkView', 'FirstBaseFindView',
+ 'BFBulkView', 'FBulkView', 'FirstBaseFindView', 'AlterationType',
+ 'AlterationCauseType', 'TreatmentEmergencyType',
'CHECK_CHOICES', 'BatchType', 'TreatmentType', 'TreatmentState',
'Treatment', 'AbsFindTreatments', 'FindUpstreamTreatments',
'FindDownstreamTreatments', 'FindTreatments', 'TreatmentSource',
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 828f9801d..f2be734e7 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -118,6 +118,10 @@ display_findbasket = display_item(models.FindBasket,
show_url='show-find/basket-')
+def check_preservation_module(self):
+ return get_current_profile().preservation
+
+
def check_warehouse_module(self):
return get_current_profile().warehouse
@@ -129,13 +133,19 @@ def check_not_warehouse_module(self):
find_creation_steps = [
('selecrecord-find_creation', RecordFormSelectionTable),
('find-find_creation', FindForm),
+ ('preservation-find_creation', PreservationForm),
('dating-find_creation', DatingFormSet),
('final-find_creation', FinalForm)
]
+find_creation_condition_dict = {
+ 'preservation-find_creation': check_preservation_module,
+}
+
find_creation_wizard = FindWizard.as_view(
find_creation_steps,
label=_(u"New find"),
+ condition_dict=find_creation_condition_dict,
url_name='find_creation',)
find_search_condition_dict = {
@@ -154,6 +164,7 @@ find_search_wizard = SearchWizard.as_view([
find_modification_condition_dict = {
'selec-find_modification': check_not_warehouse_module,
'selecw-find_modification': check_warehouse_module,
+ 'preservation-find_modification': check_preservation_module,
}
find_modification_wizard = FindModificationWizard.as_view([
@@ -161,6 +172,7 @@ find_modification_wizard = FindModificationWizard.as_view([
('selecw-find_modification', FindFormSelectionWarehouseModule),
('selecrecord-find_modification', RecordFormSelection),
('find-find_modification', FindForm),
+ ('preservation-find_modification', PreservationForm),
('dating-find_modification', DatingFormSet),
('final-find_modification', FinalForm)],
condition_dict=find_modification_condition_dict,