summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2026-06-26 17:47:31 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2026-06-26 18:02:17 +0200
commit0b5c91d2223342f7fd303e21ecc8c967a5c47759 (patch)
tree75615eb96cc0d90fd7162657ee23f05e0e64ba88
parent97b52ba01e5b2eb6721dd8441cbefb02acb24e18 (diff)
downloadIshtar-0b5c91d2223342f7fd303e21ecc8c967a5c47759.tar.bz2
Ishtar-0b5c91d2223342f7fd303e21ecc8c967a5c47759.zip
✨ statement condition: add fields
-rw-r--r--archaeological_finds/forms_treatments.py9
-rw-r--r--archaeological_finds/migrations/0158_statementcondition_add_fields.py17
-rw-r--r--archaeological_finds/models_treatments.py16
-rw-r--r--archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html3
-rw-r--r--archaeological_finds/views.py2
5 files changed, 34 insertions, 13 deletions
diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py
index fa9a03118..aacd73bc8 100644
--- a/archaeological_finds/forms_treatments.py
+++ b/archaeological_finds/forms_treatments.py
@@ -1288,12 +1288,15 @@ class QAStatementCondition(ManageOldType, forms.Form):
associated_model=models.Treatment,
new=True),
validators=[valid_id(models.Treatment)], required=False)
- verification_officer_id = forms.IntegerField(
- label=_("Verification officer"),
+ in_charge_id = forms.IntegerField(
+ label=_("In charge"),
widget=widgets.JQueryAutoComplete(
reverse_lazy('autocomplete-person'), associated_model=Person,
new=True),
validators=[valid_id(Person)], required=False)
+ verification_officers = forms.CharField(
+ label=_("Verification officers"), widget=forms.Textarea,
+ required=False)
campaign_number = forms.CharField(label=_("Campaign/observation number"),
required=False)
report_number = forms.CharField(label=_("Report number"), required=False)
@@ -1451,7 +1454,7 @@ class QAStatementCondition(ManageOldType, forms.Form):
q = Person.objects.filter(ishtaruser__pk=self.user.pk)
if q.count():
person = q.all()[0]
- self.fields['verification_officer_id'].initial = person.pk
+ self.fields['in_charge_id'].initial = person.pk
def save(self):
data = copy(self.cleaned_data)
diff --git a/archaeological_finds/migrations/0158_statementcondition_add_fields.py b/archaeological_finds/migrations/0158_statementcondition_add_fields.py
index 7e36f9314..9b227b73d 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-23 13:57
+# Generated by Django 4.2.21 on 2026-06-26 15:38
from django.db import migrations, models
import django.db.models.deletion
@@ -7,10 +7,20 @@ import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
+ ('ishtar_common', '0277_data_migration_qualifiedbionotetype'),
('archaeological_finds', '0157_treatments_statement_condition'),
]
operations = [
+ migrations.RemoveField(
+ model_name='statementcondition',
+ name='verification_officer',
+ ),
+ 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'),
+ ),
migrations.AddField(
model_name='statementcondition',
name='mark',
@@ -36,6 +46,11 @@ class Migration(migrations.Migration):
name='museum_inventory_quantity',
field=models.PositiveSmallIntegerField(blank=True, null=True, verbose_name='Inventory quantity'),
),
+ migrations.AddField(
+ model_name='statementcondition',
+ name='verification_officers',
+ field=models.TextField(blank=True, default='', verbose_name='Verification officers'),
+ ),
migrations.AlterField(
model_name='statementcondition',
name='applied',
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index d7704c997..e9cb727ea 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -1743,13 +1743,14 @@ class StatementCondition(
find = models.ForeignKey(Find, verbose_name=_("Find"), on_delete=models.CASCADE,
related_name="statement_conditions")
treatment = models.ForeignKey(
- Treatment, verbose_name=_("Treament"), on_delete=models.SET_NULL,
+ Treatment, verbose_name=_("Treatment"), on_delete=models.SET_NULL,
null=True, blank=True, related_name="statement_conditions")
campaign_number = models.TextField(_("Campaign/observation number"), default="",
blank=True)
report_number = models.TextField(_("Report number"), default="", blank=True)
- verification_officer = models.ForeignKey(
- Person, verbose_name=_("Verification officer"), null=True, blank=True,
+ verification_officers = models.TextField(_("Verification officers"), default="", blank=True)
+ in_charge = models.ForeignKey(
+ Person, verbose_name=_("In charge"), null=True, blank=True,
on_delete=models.SET_NULL)
statement_condition_type = models.ForeignKey(
StatementConditionType, verbose_name=_("Type"), on_delete=models.PROTECT)
@@ -1934,8 +1935,8 @@ class StatementCondition(
initial = {}
base_attrs = [
"pk", "date", "find_id", "statement_condition_type_id",
- "verification_officer_id", "campaign_number", "report_number",
- "observations", "treatment_id"
+ "in_charge_id", "verification_officers", "campaign_number",
+ "report_number", "observations", "treatment_id"
]
for attr in base_attrs:
initial[attr] = getattr(self, attr)
@@ -1976,9 +1977,10 @@ class StatementCondition(
obj.applied = "V"
obj.initial = True
obj.last = False
- obj.verification_officer = None
+ obj.in_charge = None
obj.treatment = None
- for k in ("campaign_number", "report_number", "observations"):
+ for k in ("campaign_number", "report_number", "observations",
+ "verification_officers"):
setattr(obj, k, "")
# reinit with find fields
for attr in self.OVERLOADED_FIELDS:
diff --git a/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html b/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html
index 09cee8cd7..a2cffaf34 100644
--- a/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html
+++ b/archaeological_finds/templates/ishtar/blocks/sheet_statement_condition.html
@@ -41,7 +41,8 @@
<div class="row">
{% field_flex _("Date") statement_condition.date|date:"SHORT_DATE_FORMAT" %}
{% field_flex_detail _("Treatment") statement_condition.treatment %}
- {% field_flex _("Verification officer") statement_condition.verification_officer %}
+ {% field_flex_detail _("In charge") statement_condition.in_charge %}
+ {% field_flex_full _("Verification officers") statement_condition.verification_officers %}
{% field_flex _("Campaign/observation number") statement_condition.campaign_number %}
{% field_flex _("Report number") statement_condition.report_number %}
{% field_flex_multiple_obj _("Follow-up actions") statement_condition "follow_up_actions" %}
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 11189cfc1..5ef2192fe 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -1603,7 +1603,7 @@ def statement_condition_form(request, find_pk, statement_condition_pk=None,
url = reverse("find-statement-condition-modify", args=[find_pk, sc_pk])
window_id = request.GET.get("window_id", "")
if window_id:
- url += "?window_id={window_id}"
+ url += f"?window_id={window_id}"
return HttpResponseRedirect(url)
initial = models.StatementCondition.get_initial_from_find(item)
if request.method == 'POST':