summaryrefslogtreecommitdiff
path: root/archaeological_context_records
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records')
-rw-r--r--archaeological_context_records/forms.py45
-rw-r--r--archaeological_context_records/migrations/0127_add_editors.py19
-rw-r--r--archaeological_context_records/models.py10
-rw-r--r--archaeological_context_records/tests.py12
4 files changed, 34 insertions, 52 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index 93ff65c25..0e5b752eb 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -20,7 +20,6 @@
"""
Context records forms definitions
"""
-from collections import OrderedDict
from copy import copy
from itertools import groupby
@@ -54,6 +53,7 @@ from ishtar_common.forms import (
MultiSearchForm,
LockForm,
GeoItemSelect,
+ DatingSelect,
QAForm,
)
from ishtar_common.forms_common import get_town_field
@@ -90,46 +90,7 @@ class OperationFormSelection(CustomForm, forms.Form):
)
-class PeriodSelect(forms.Form):
- datings__period = forms.ChoiceField(label=_("Dating - period"), choices=[])
- datings__precise_dating = forms.CharField(label=_("Dating - precise"))
- datings__start_date = forms.IntegerField(label=_("Dating - start date"))
- datings__end_date = forms.IntegerField(label=_("Dating - end date"))
- datings__dating_type = forms.ChoiceField(
- label=_("Dating - dating type"), choices=[]
- )
- datings__quality = forms.ChoiceField(label=_("Dating - dating quality"), choices=[])
- TYPES = [
- FieldType("datings__period", Period),
- FieldType("datings__dating_type", models.DatingType),
- FieldType("datings__quality", models.DatingQuality),
- ]
- PERIOD_FIELDS = [
- "datings__period",
- "datings__precise_dating",
- "datings__start_date",
- "datings__end_date",
- "datings__dating_type",
- "datings__quality",
- ]
-
- def _reorder_period_fields(self, insert_period_after):
- fields = OrderedDict()
- for key in self.fields:
- if key in self.PERIOD_FIELDS:
- continue
- fields[key] = self.fields[key]
- if key == insert_period_after:
- for period_key in self.PERIOD_FIELDS:
- if period_key not in self.fields:
- continue
- fields[period_key] = self.fields[period_key]
- if period_key in self.fields:
- fields[period_key] = self.fields[period_key]
- self.fields = fields
-
-
-class RecordSelect(GeoItemSelect, PeriodSelect):
+class RecordSelect(GeoItemSelect, DatingSelect):
_model = models.ContextRecord
form_admin_name = _("Context record - 001 - Search")
form_slug = "contextrecord-001-search"
@@ -192,7 +153,7 @@ class RecordSelect(GeoItemSelect, PeriodSelect):
colors = forms.ChoiceField(label=_("Colors"), choices=[])
details_on_color = forms.CharField(label=_("Details on color"))
- TYPES = PeriodSelect.TYPES + [
+ TYPES = DatingSelect.TYPES + [
FieldType('area', Area),
FieldType("periods", Period),
FieldType('cultural_attributions', models.CulturalAttributionType),
diff --git a/archaeological_context_records/migrations/0127_add_editors.py b/archaeological_context_records/migrations/0127_add_editors.py
new file mode 100644
index 000000000..011046f9a
--- /dev/null
+++ b/archaeological_context_records/migrations/0127_add_editors.py
@@ -0,0 +1,19 @@
+# Generated by Django 4.2.21 on 2026-04-02 06:36
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('ishtar_common', '0276_add_editors'),
+ ('archaeological_context_records', '0126_migrate_periods_and_datings'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='contextrecord',
+ name='editors',
+ field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'),
+ ),
+ ]
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index d1b1fb147..6b6f0f039 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -440,8 +440,9 @@ class ContextRecord(
"documents__associated_file__isnull",
"documents__associated_url__isnull",
]
- NUMBER_FIELDS = ["operation__year", "operation__operation_code", "datings__start_date",
- "datings__end_date"] + GeographicSubTownItem.NUMBER_FIELDS
+ NUMBER_FIELDS = [
+ "operation__year", "operation__operation_code"
+ ] + GeographicSubTownItem.NUMBER_FIELDS + BaseDating.NUMBER_FIELDS
RELATION_TYPES_PREFIX = {
"ope_relation_types": "operation__",
@@ -486,9 +487,9 @@ class ContextRecord(
pgettext_lazy("key for text search", "operation-relation-type"),
"ope_relation_types",
),
- "datings__period": SearchAltName(
+ "period": SearchAltName(
pgettext_lazy("key for text search", "period"),
- "datings__period__label__iexact",
+ "periods__label__iexact",
),
"unit": SearchAltName(
pgettext_lazy("key for text search", "unit-type"), "unit__label__iexact"
@@ -573,6 +574,7 @@ class ContextRecord(
ALT_NAMES.update(Dating.ASSOCIATED_ALT_NAMES)
ALT_NAMES.update(GeoItem.ALT_NAMES)
ALT_NAMES.update(Imported.ALT_NAMES)
+ ALT_NAMES.update(BaseDating.ALT_NAMES)
DEFAULT_SEARCH_FORM = ("archaeological_context_records.forms", "RecordSelect")
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index e0c6e4399..d55d632df 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -116,7 +116,7 @@ class ImportContextRecordTest(ImportTest, TestCase):
models_ope.Operation.objects.get_or_create(
code_patriarche="184440",
operation_type=models_ope.OperationType.objects.all()[0])
- impt.importation()
+ impt.start_import()
self.assertEqual(models.ContextRecord.objects.count() - nb, new_nb)
new = models.ContextRecord.objects.order_by("-pk").all()[:new_nb]
for cr in new:
@@ -131,7 +131,7 @@ class ImportContextRecordTest(ImportTest, TestCase):
impt.initialize()
self.init_cr_targetkey(impt)
- impt.importation()
+ impt.start_import()
# new context records has now been imported
current_nb = models.ContextRecord.objects.count()
self.assertEqual(current_nb, old_nb + 4)
@@ -154,7 +154,7 @@ class ImportContextRecordTest(ImportTest, TestCase):
impt.initialize()
self.init_cr_targetkey(impt)
- impt.importation()
+ impt.start_import()
# no model defined in created_models: normal import
current_nb = models.ContextRecord.objects.count()
self.assertEqual(current_nb, old_nb + 4)
@@ -170,7 +170,7 @@ class ImportContextRecordTest(ImportTest, TestCase):
impt = form.save(self.ishtar_user)
impt.initialize()
self.init_cr_targetkey(impt)
- impt.importation()
+ impt.start_import()
self.assertEqual(len(impt.errors), 4)
self.assertTrue(
@@ -194,7 +194,7 @@ class ImportContextRecordTest(ImportTest, TestCase):
impt = form.save(self.ishtar_user)
impt.initialize()
self.init_cr_targetkey(impt)
- impt.importation()
+ impt.start_import()
current_nb = models.ContextRecord.objects.count()
self.assertEqual(current_nb, 4)
@@ -1070,7 +1070,7 @@ class ContextRecordSearchTest(ContextRecordInit, TestCase, SearchText, Statistic
self.assertEqual(json.loads(content)["recordsTotal"], 1)
# test on text search
- period_key = str(pgettext_lazy("key for text search", "datings-period"))
+ period_key = str(pgettext_lazy("key for text search", "dating-period"))
result = [
('{}="{}"'.format(period_key, str(final_neo)), 1),
('{}="{}"'.format(period_key, str(recent_neo)), 0),