diff options
Diffstat (limited to 'archaeological_context_records')
| -rw-r--r-- | archaeological_context_records/forms.py | 45 | ||||
| -rw-r--r-- | archaeological_context_records/migrations/0127_add_editors.py | 19 | ||||
| -rw-r--r-- | archaeological_context_records/models.py | 10 | ||||
| -rw-r--r-- | archaeological_context_records/tests.py | 12 |
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), |
