summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/forms.py98
-rw-r--r--archaeological_finds/forms_treatments.py14
-rw-r--r--archaeological_finds/ishtar_menu.py19
-rw-r--r--archaeological_finds/urls.py5
-rw-r--r--archaeological_finds/views.py16
5 files changed, 141 insertions, 11 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 4df6629e1..a221247e0 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -43,7 +43,7 @@ from archaeological_finds.forms_treatments import TreatmentSelect, \
AdministrativeActTreatmentFileForm, \
AdministrativeActTreatmentFileFormSelection, \
AdministrativeActTreatmentFileModifForm, \
- DashboardForm as DashboardTreatmentForm, \
+ DashboardForm as DashboardTreatmentForm, N1TreatmentForm,\
DashboardTreatmentFileForm, QAFindTreatmentForm
from archaeological_operations.models import Period, ArchaeologicalSite, \
RelationType as OpeRelationType
@@ -82,7 +82,8 @@ __all__ = [
'FindDeletionForm', 'UpstreamFindFormSelection', 'NewFindBasketForm',
'SelectFindBasketForm', 'DeleteFindBasketForm', 'FindBasketAddItemForm',
'QAFindFormSingle', 'QAFindFormMulti', 'QAFindBasketForm',
- 'QAFindTreatmentForm'
+ 'QAFindTreatmentForm',
+ 'N1TreatmentForm', 'ResultingFindForm'
]
logger = logging.getLogger(__name__)
@@ -319,6 +320,99 @@ class FindForm(CustomForm, ManageOldType):
return self.cleaned_data
+class ResultingFindForm(CustomForm, ManageOldType):
+ file_upload = True
+ form_label = _("Resulting find")
+ form_admin_name = _(u"Treatment n-1 - 030 - General")
+ form_slug = "treatmentn1-030-general"
+
+ base_models = ['object_type', 'material_type', 'communicabilitie']
+ associated_models = {
+ 'material_type': models.MaterialType,
+ 'object_type': models.ObjectType,
+ 'communicabilitie': models.CommunicabilityType,
+ 'material_type_quality': models.MaterialTypeQualityType,
+ 'object_type_quality': models.ObjectTypeQualityType,
+ 'checked_type': models.CheckedType,
+ }
+ HEADERS = {}
+ HEADERS['label'] = FormHeader(_(u"Identification"))
+
+ label = forms.CharField(
+ label=_(u"Free ID"),
+ validators=[validators.MaxLengthValidator(60)])
+ denomination = forms.CharField(label=_(u"Denomination"), required=False)
+ previous_id = forms.CharField(label=_("Previous ID"), required=False)
+ museum_id = forms.CharField(label=_(u"Museum ID"), required=False)
+ seal_number = forms.CharField(label=_(u"Seal number"), required=False)
+ mark = forms.CharField(label=_(u"Mark"), required=False)
+
+ HEADERS['description'] = FormHeader(_(u"Description"))
+ description = forms.CharField(label=_(u"Description"),
+ widget=forms.Textarea, required=False)
+ is_complete = forms.NullBooleanField(label=_(u"Is complete?"),
+ required=False)
+ material_type = widgets.Select2MultipleField(
+ label=_(u"Material types"), required=False
+ )
+ material_type_quality = forms.ChoiceField(
+ label=_(u"Material type quality"), required=False, choices=[])
+ object_type = widgets.Select2MultipleField(
+ label=_(u"Object types"), required=False,
+ )
+ object_type_quality = forms.ChoiceField(
+ label=_(u"Object type quality"), required=False, choices=[])
+ find_number = forms.IntegerField(label=_(u"Find number"), required=False)
+ min_number_of_individuals = forms.IntegerField(
+ label=_(u"Minimum number of individuals (MNI)"), required=False)
+
+ decoration = forms.CharField(label=_(u"Decoration"), widget=forms.Textarea,
+ required=False)
+ inscription = forms.CharField(label=_(u"Inscription"),
+ widget=forms.Textarea, required=False)
+ manufacturing_place = forms.CharField(
+ label=_(u"Manufacturing place"), required=False)
+ communicabilitie = widgets.Select2MultipleField(
+ label=_(u"Communicability"), required=False
+ )
+ comment = forms.CharField(label=_(u"Comment"), required=False,
+ widget=forms.Textarea)
+ dating_comment = forms.CharField(
+ label=_(u"Comment on dating"), required=False, widget=forms.Textarea)
+
+ HEADERS['length'] = FormHeader(_(u"Dimensions"))
+ length = FloatField(label=_(u"Length (cm)"), required=False)
+ width = FloatField(label=_(u"Width (cm)"), required=False)
+ height = FloatField(label=_(u"Height (cm)"), required=False)
+ diameter = FloatField(label=_(u"Diameter (cm)"), required=False)
+ thickness = FloatField(label=_(u"Thickness (cm)"), required=False)
+ volume = FloatField(label=_(u"Volume (l)"), required=False)
+ weight = FloatField(label=_(u"Weight (g)"), required=False)
+ clutter_long_side = FloatField(
+ label=_(u"Clutter long side (cm)"), required=False)
+ clutter_short_side = FloatField(
+ label=_(u"Clutter short side (cm)"), required=False)
+ clutter_height = FloatField(
+ label=_(u"Clutter height (cm)"), required=False)
+ dimensions_comment = forms.CharField(
+ label=_(u"Dimensions comment"), required=False, widget=forms.Textarea)
+
+ HEADERS['checked_type'] = FormHeader(_(u"Sheet"))
+ checked_type = forms.ChoiceField(label=_(u"Check"), required=False)
+ check_date = forms.DateField(
+ initial=get_now, label=_(u"Check date"), widget=DatePicker)
+
+ TYPES = [
+ FieldType('material_type', models.MaterialType, is_multiple=True),
+ FieldType('material_type_quality', models.MaterialTypeQualityType),
+ FieldType('object_type', models.ObjectType, is_multiple=True),
+ FieldType('object_type_quality', models.ObjectTypeQualityType),
+ FieldType('communicabilitie', models.CommunicabilityType,
+ is_multiple=True),
+ FieldType('checked_type', models.CheckedType, is_multiple=True),
+ ]
+
+
class QAFindFormMulti(QAForm):
form_admin_name = _(u"Find - Quick action - Modify")
form_slug = "find-quickaction-modify"
diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py
index 248b1ef7d..99a685825 100644
--- a/archaeological_finds/forms_treatments.py
+++ b/archaeological_finds/forms_treatments.py
@@ -230,6 +230,20 @@ class BaseTreatmentForm(CustomForm, ManageOldType):
"""
+class N1TreatmentForm(BaseTreatmentForm):
+ form_label = _(u"Base treatment")
+ form_admin_name = _(u"Treatment n-1 - 020 - General")
+ form_slug = "treatmentn1-020-general"
+
+ TYPES = [
+ FieldType('treatment_state', models.TreatmentState),
+ FieldType(
+ 'treatment_type', models.TreatmentType, is_multiple=True,
+ extra_args={'dct': {'upstream_is_many': True,
+ 'downstream_is_many': False}})
+ ]
+
+
class TreatmentModifyForm(BaseTreatmentForm):
index = forms.IntegerField(_(u"Index"))
id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False)
diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py
index 19d300fbc..cd7ed19b7 100644
--- a/archaeological_finds/ishtar_menu.py
+++ b/archaeological_finds/ishtar_menu.py
@@ -153,11 +153,20 @@ MENU_SECTIONS = [
model=models.Treatment,
access_controls=['view_treatment',
'view_own_treatment']),
- MenuItem('treatment_creation',
- _(u"Simple treatment - creation"),
- model=models.Treatment,
- access_controls=['change_treatment',
- 'change_own_treatment']),
+ MenuItem(
+ 'treatment_creation',
+ _(u"Treatment "
+ u"1 <i class='fa fa-arrows-h' aria-hidden='true'></i> 1 "
+ u"- creation"),
+ model=models.Treatment,
+ access_controls=['change_find', 'change_own_find']),
+ MenuItem(
+ 'treatment_creation_n1',
+ _(u"Treatment "
+ u"n <i class='fa fa-arrows-h' aria-hidden='true'></i> 1 "
+ u"- creation"),
+ model=models.Treatment,
+ access_controls=['change_find', 'change_own_find']),
MenuItem('treatment_modification',
_(u"Modification"),
model=models.Treatment,
diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py
index 588c8d520..b9f4d8b6c 100644
--- a/archaeological_finds/urls.py
+++ b/archaeological_finds/urls.py
@@ -100,10 +100,13 @@ urlpatterns = [
views.QAFindTreatmentFormView.as_view()),
name='find-qa-packaging'),
-
url(r'^treatment_creation/(?P<step>.+)?$',
check_rights(['change_find', 'change_own_find'])(
views.treatment_creation_wizard), name='treatment_creation'),
+ url(r'^treatment_creation_n1/(?P<step>.+)?$',
+ check_rights(['change_find', 'change_own_find'])(
+ views.treatment_creation_n1_wizard), name='treatment_creation_n1'),
+
url(r'^treatment_modification/(?P<step>.+)?$',
check_rights(['change_find', 'change_own_find'])(
views.treatment_modification_wizard),
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index c4dbe0d3d..789c420de 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -408,9 +408,6 @@ treatment_wizard_steps = [
('selecfind-treatment_creation', UpstreamFindFormSelection),
('file-treatment_creation', TreatmentFormFileChoice),
('basetreatment-treatment_creation', BaseTreatmentForm),
- # ('selecbasket-treatment_creation', SelectFindBasketForm),
- # ('resultfind-treatment_creation', ResultFindForm),
- # ('resultfinds-treatment_creation', ResultFindFormSet),
('final-treatment_creation', FinalForm)
]
@@ -444,6 +441,19 @@ treatment_creation_wizard = TreatmentWizard.as_view(
label=_(u"New treatment"),
url_name='treatment_creation',)
+treatment_n1_wizard_steps = [
+ ('selecfind-treatment_creation_n1', UpstreamFindFormSelection),
+ ('file-treatment_creation_n1', TreatmentFormFileChoice),
+ ('basetreatment-treatment_creation_n1', N1TreatmentForm),
+ ('resultingfind-treatment_creation_n1', ResultingFindForm),
+ ('final-treatment_creation_n1', FinalForm)
+]
+
+treatment_creation_n1_wizard = TreatmentWizard.as_view(
+ treatment_n1_wizard_steps,
+ label=_(u"New treatment"),
+ url_name='treatment_creation_n1',)
+
treatment_modification_wizard = TreatmentModificationWizard.as_view(
[('selec-treatment_modification', TreatmentFormSelection),
('file-treatment_modification', TreatmentFormFileChoice),