diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-06-27 19:39:58 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-06-27 19:40:35 +0200 |
| commit | 08a88598c60fbfcb290eee69b71f1ff3b18b50f4 (patch) | |
| tree | a5683005d4c8ad8811cd899724622ad266c3b646 /archaeological_finds | |
| parent | 80339394c20aa7d62b6423d1bfaf4df273db98ae (diff) | |
| download | Ishtar-08a88598c60fbfcb290eee69b71f1ff3b18b50f4.tar.bz2 Ishtar-08a88598c60fbfcb290eee69b71f1ff3b18b50f4.zip | |
✨ statement condition: add fieldsdevelop-5.0
Diffstat (limited to 'archaeological_finds')
| -rw-r--r-- | archaeological_finds/forms_treatments.py | 52 | ||||
| -rw-r--r-- | archaeological_finds/migrations/0158_statementcondition_add_fields.py | 57 | ||||
| -rw-r--r-- | archaeological_finds/models_treatments.py | 63 |
3 files changed, 163 insertions, 9 deletions
diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index aacd73bc8..8832426f5 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -1259,6 +1259,9 @@ class QAStatementCondition(ManageOldType, forms.Form): "qa_conservatory_states", "qa_museum_marking_type", "qa_museum_inventory_marking_presence", + "qa_object_types", + "qa_material_types", + "qa_technical_processes", ] associated_models = { "qa_alterations": models.AlterationType, @@ -1269,6 +1272,9 @@ class QAStatementCondition(ManageOldType, forms.Form): "qa_integrities": models.IntegrityType, "follow_up_action": models.FollowUpActionType, "statement_condition_type_id": models.StatementConditionType, + "qa_object_types": models.ObjectType, + "qa_material_types": models.MaterialType, + "qa_technical_processes": models.TechnicalProcessType, "qa_museum_marking_type": models.MarkingType, "qa_museum_inventory_marking_presence": models.InventoryMarkingPresence, "qa_museum_inventory_conformity_id": models.InventoryConformity, @@ -1309,7 +1315,29 @@ class QAStatementCondition(ManageOldType, forms.Form): observations = forms.CharField(label=_("Observations"), widget=forms.Textarea, required=False) - HEADERS["qa_description"] = FormHeader(_("Find")) + HEADERS["qa_denomination"] = FormHeader(_("Find")) + qa_denomination = forms.CharField( + label=_("Denomination"), widget=forms.Textarea, + required=False) + qa_object_types = widgets.Select2MultipleField( + label=_("Object types"), + required=False, + ) + qa_object_type_quality_id = forms.ChoiceField( + label=_("Object type quality"), choices=[], required=False) + qa_material_types = widgets.Select2MultipleField( + label=_("Material types"), required=False + ) + qa_material_type_quality_id = forms.ChoiceField( + label=_("Material type quality"), choices=[], required=False + ) + qa_material_comment = forms.CharField( + label=_("Comment on the material"), widget=forms.Textarea, required=False + ) + qa_technical_processes = widgets.Select2MultipleField( + label=_("Technical processes"), + required=False, + ) qa_description = forms.CharField( label=_("Description"), widget=forms.Textarea, required=False ) @@ -1341,6 +1369,9 @@ class QAStatementCondition(ManageOldType, forms.Form): qa_museum_inventory_quantity = forms.IntegerField(label=_("Inventory quantity"), required=False, max_value=32000) qa_museum_observed_quantity = forms.IntegerField( label=_("Observed quantity"), required=False) + qa_quantity_comment = forms.CharField( + label=_("Comment on quantity"), widget=forms.Textarea, + required=False) qa_length = FloatField( label=_("Length (cm)"), widget=widgets.CentimeterMeterWidget, required=False ) @@ -1397,6 +1428,10 @@ class QAStatementCondition(ManageOldType, forms.Form): widget=widgets.Select2Multiple, required=False, ) + qa_conservatory_states_details = forms.CharField( + label=_("Conservatory state details"), required=False, + widget=forms.Textarea + ) qa_alterations = forms.MultipleChoiceField( label=_("Alteration"), choices=[], @@ -1409,6 +1444,10 @@ class QAStatementCondition(ManageOldType, forms.Form): widget=widgets.Select2Multiple, required=False, ) + qa_alteration_comment = forms.CharField( + label=_("Details regards alterations"), required=False, + widget=forms.Textarea + ) qa_recommended_treatments = forms.MultipleChoiceField( label=_("Recommended treatments"), choices=[], @@ -1436,6 +1475,14 @@ class QAStatementCondition(ManageOldType, forms.Form): empty_first=False), FieldType("qa_treatment_emergency_id", models.TreatmentEmergencyType), FieldType("qa_museum_inventory_conformity_id", models.InventoryConformity), + FieldType("qa_object_types", models.ObjectType, + is_multiple=True), + FieldType("qa_material_types", models.MaterialType, + is_multiple=True), + FieldType("qa_technical_processes", models.TechnicalProcessType, + is_multiple=True), + FieldType("qa_object_type_quality_id", models.ObjectTypeQualityType), + FieldType("qa_material_type_quality_id", models.MaterialTypeQualityType), ] PROFILE_FILTER = { "museum": ["qa_museum_observed_quantity", "qa_museum_marking_type", @@ -1459,7 +1506,7 @@ class QAStatementCondition(ManageOldType, forms.Form): def save(self): data = copy(self.cleaned_data) data["find_id"] = self.current_item.pk - applied = data.pop("applied") + applied = data["applied"] follow_up_actions = data.pop("follow_up_action") # remove m2m fields m2m = {} @@ -1497,5 +1544,4 @@ class QAStatementCondition(ManageOldType, forms.Form): if applied == "D": # draft exit return - st.applied = applied st.apply_validation() diff --git a/archaeological_finds/migrations/0158_statementcondition_add_fields.py b/archaeological_finds/migrations/0158_statementcondition_add_fields.py index 9b227b73d..9cee74f3b 100644 --- a/archaeological_finds/migrations/0158_statementcondition_add_fields.py +++ b/archaeological_finds/migrations/0158_statementcondition_add_fields.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.21 on 2026-06-26 15:38 +# Generated by Django 4.2.21 on 2026-06-27 16:03 from django.db import migrations, models import django.db.models.deletion @@ -18,6 +18,21 @@ class Migration(migrations.Migration): ), migrations.AddField( model_name='statementcondition', + name='alteration_comment', + field=models.TextField(blank=True, default='', verbose_name='Details regards alterations'), + ), + migrations.AddField( + model_name='statementcondition', + name='conservatory_states_details', + field=models.TextField(blank=True, default='', verbose_name='Conservatory state details'), + ), + migrations.AddField( + model_name='statementcondition', + name='denomination', + field=models.TextField(blank=True, default='', verbose_name='Denomination'), + ), + migrations.AddField( + model_name='statementcondition', name='in_charge', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='ishtar_common.person', verbose_name='In charge'), ), @@ -33,6 +48,21 @@ class Migration(migrations.Migration): ), migrations.AddField( model_name='statementcondition', + name='material_comment', + field=models.TextField(blank=True, default='', verbose_name='Comment on the material'), + ), + migrations.AddField( + model_name='statementcondition', + name='material_type_quality', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='statement_conditions', to='archaeological_finds.materialtypequalitytype', verbose_name='Material type quality'), + ), + migrations.AddField( + model_name='statementcondition', + name='material_types', + field=models.ManyToManyField(blank=True, related_name='statement_conditions', to='archaeological_finds.materialtype', verbose_name='Material types'), + ), + migrations.AddField( + model_name='statementcondition', name='museum_conformity_comment', field=models.TextField(blank=True, default='', verbose_name='Comment on conformity'), ), @@ -48,6 +78,26 @@ class Migration(migrations.Migration): ), migrations.AddField( model_name='statementcondition', + name='object_type_quality', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='statement_conditions', to='archaeological_finds.objecttypequalitytype', verbose_name='Object type quality'), + ), + migrations.AddField( + model_name='statementcondition', + name='object_types', + field=models.ManyToManyField(blank=True, related_name='statement_conditions', to='archaeological_finds.objecttype', verbose_name='Object types'), + ), + migrations.AddField( + model_name='statementcondition', + name='quantity_comment', + field=models.TextField(blank=True, default='', verbose_name='Comment on quantity'), + ), + migrations.AddField( + model_name='statementcondition', + name='technical_processes', + field=models.ManyToManyField(blank=True, related_name='statement_conditions', to='archaeological_finds.technicalprocesstype', verbose_name='Technical processes'), + ), + migrations.AddField( + model_name='statementcondition', name='verification_officers', field=models.TextField(blank=True, default='', verbose_name='Verification officers'), ), @@ -56,4 +106,9 @@ class Migration(migrations.Migration): name='applied', field=models.CharField(choices=[('D', 'Draft'), ('V', 'Validated')], default='D', verbose_name='Input status'), ), + migrations.AlterField( + model_name='statementcondition', + name='treatment', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='statement_conditions', to='archaeological_finds.treatment', verbose_name='Treatment'), + ), ] diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 3dd9b4764..c454c0610 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -1701,6 +1701,7 @@ class StatementCondition( # associated find OVERLOADED_FIELDS = ( "description", + "denomination", "conservatory_comment", "length", "width", @@ -1718,15 +1719,24 @@ class StatementCondition( "find_number", "mark_text", "mark", + "object_type_quality_id", + "material_type_quality_id", + "material_comment", "museum_inventory_conformity_id", "museum_conformity_comment", "museum_inventory_quantity", "museum_observed_quantity", + "quantity_comment", + "conservatory_states_details", + "alteration_comment", ) OVERLOADED_M2M_FIELDS = ( + "object_types", + "material_types", "integrities", "conservatory_states", "recommended_treatments", + "technical_processes", "alterations", "alteration_causes", "museum_marking_type", @@ -1761,6 +1771,40 @@ class StatementCondition( observations = models.TextField(_("Observations"), blank=True, default="") # find field + denomination = models.TextField(_("Denomination"), blank=True, default="") + object_types = models.ManyToManyField( + "ObjectType", verbose_name=_("Object types"),blank=True, + related_name="statement_conditions" + ) + object_type_quality = models.ForeignKey( + "ObjectTypeQualityType", + verbose_name=_("Object type quality"), + related_name="statement_conditions", + on_delete=models.SET_NULL, + blank=True, + null=True, + ) + material_types = models.ManyToManyField( + "MaterialType", verbose_name=_("Material types"), + related_name="statement_conditions", blank=True + ) + material_type_quality = models.ForeignKey( + "MaterialTypeQualityType", + verbose_name=_("Material type quality"), + related_name="statement_conditions", + on_delete=models.SET_NULL, + blank=True, + null=True, + ) + material_comment = models.TextField( + _("Comment on the material"), blank=True, default="" + ) + technical_processes = models.ManyToManyField( + "TechnicalProcessType", + verbose_name=_("Technical processes"), + related_name="statement_conditions", + blank=True, + ) description = models.TextField(_("Description"), blank=True, default="") # find fields - museum @@ -1790,6 +1834,9 @@ class StatementCondition( museum_observed_quantity = models.PositiveSmallIntegerField( _("Observed quantity"), blank=True, null=True ) + quantity_comment = models.TextField( + _("Comment on quantity"), blank=True, default="" + ) length = models.FloatField(_("Length (cm)"), blank=True, null=True) width = models.FloatField(_("Width (cm)"), blank=True, null=True) height = models.FloatField(_("Height (cm)"), blank=True, null=True) @@ -1816,12 +1863,23 @@ class StatementCondition( verbose_name=_("Integrity"), blank=True, ) + conservatory_states = models.ManyToManyField( + "ConservatoryState", + verbose_name=_("Conservatory states"), + blank=True, + ) + conservatory_states_details = models.TextField( + _("Conservatory state details"), blank=True, default="" + ) alterations = models.ManyToManyField( "AlterationType", verbose_name=_("Alteration"), blank=True ) alteration_causes = models.ManyToManyField( "AlterationCauseType", verbose_name=_("Alteration cause"), blank=True, ) + alteration_comment = models.TextField( + _("Details regards alterations"), blank=True, default="" + ) recommended_treatments = models.ManyToManyField( "RecommendedTreatmentType", verbose_name=_("Recommended treatments"), @@ -1834,11 +1892,6 @@ class StatementCondition( blank=True, null=True, ) - conservatory_states = models.ManyToManyField( - "ConservatoryState", - verbose_name=_("Conservatory states"), - blank=True, - ) conservatory_comment = models.TextField( _("Conservatory comment"), blank=True, default="" ) |
