diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-04-02 09:22:01 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-04-02 13:30:50 +0200 |
| commit | 90feafab7540f1461541a0e95991e18e642fe567 (patch) | |
| tree | d6b0e2a8cd05b4dd065b0752cbb455b9a05f69a2 | |
| parent | 4d8f427560a336d24c158d34b7500a75c454134d (diff) | |
| download | Ishtar-90feafab7540f1461541a0e95991e18e642fe567.tar.bz2 Ishtar-90feafab7540f1461541a0e95991e18e642fe567.zip | |
✨ add editors to all historized items
| -rw-r--r-- | archaeological_context_records/migrations/0127_add_editors.py | 19 | ||||
| -rw-r--r-- | archaeological_files/migrations/0121_add_editors.py | 19 | ||||
| -rw-r--r-- | archaeological_finds/migrations/0149_add_editors.py | 64 | ||||
| -rw-r--r-- | archaeological_operations/migrations/0128_add_editors.py | 39 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 7 | ||||
| -rw-r--r-- | archaeological_warehouse/migrations/0127_add_editors.py | 24 | ||||
| -rw-r--r-- | ishtar_common/migrations/0276_add_editors.py | 48 | ||||
| -rw-r--r-- | ishtar_common/models_common.py | 8 |
8 files changed, 221 insertions, 7 deletions
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_files/migrations/0121_add_editors.py b/archaeological_files/migrations/0121_add_editors.py new file mode 100644 index 000000000..c0df1d8a0 --- /dev/null +++ b/archaeological_files/migrations/0121_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_files', '0120_add_timezone_django_v4'), + ] + + operations = [ + migrations.AddField( + model_name='file', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + ] diff --git a/archaeological_finds/migrations/0149_add_editors.py b/archaeological_finds/migrations/0149_add_editors.py new file mode 100644 index 000000000..a74739a1d --- /dev/null +++ b/archaeological_finds/migrations/0149_add_editors.py @@ -0,0 +1,64 @@ +# 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_finds', '0148_statementcondition_documents'), + ] + + operations = [ + migrations.AddField( + model_name='basefind', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='exhibition', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='find', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='property', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='statementcondition', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='treatment', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='treatmentfile', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AlterField( + model_name='find', + name='weight', + field=models.FloatField(blank=True, null=True, verbose_name='Weight (g)'), + ), + migrations.AlterField( + model_name='historicalfind', + name='weight', + field=models.FloatField(blank=True, null=True, verbose_name='Weight (g)'), + ), + migrations.AlterField( + model_name='statementcondition', + name='weight', + field=models.FloatField(blank=True, null=True, verbose_name='Weight (g)'), + ), + ] diff --git a/archaeological_operations/migrations/0128_add_editors.py b/archaeological_operations/migrations/0128_add_editors.py new file mode 100644 index 000000000..d26c47f74 --- /dev/null +++ b/archaeological_operations/migrations/0128_add_editors.py @@ -0,0 +1,39 @@ +# 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_operations', '0127_data_migration_current_states'), + ] + + operations = [ + migrations.AddField( + model_name='administrativeact', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='operation', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='parcel', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='parcelowner', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AlterField( + model_name='archaeologicalsite', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + ] diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index c34478b6c..1912bc964 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -528,10 +528,6 @@ class ArchaeologicalSite( pgettext_lazy("key for text search", "collaborators"), "collaborators__cached_label__iexact" ), - "editors": SearchAltName( - pgettext_lazy("key for text search", "editor"), - "editors__cached_label__iexact" - ), "protection_id": SearchAltName( pgettext_lazy("key for text search", "protection-id"), "protection_id__iexact" @@ -800,9 +796,6 @@ class ArchaeologicalSite( QualifiedBiographicalNote, related_name="sites", verbose_name=_("Actors"), blank=True ) - editors = models.ManyToManyField( - Author, related_name="sites", verbose_name=_("Editors"), blank=True - ) documents = models.ManyToManyField( Document, related_name="sites", verbose_name=_("Documents"), blank=True ) diff --git a/archaeological_warehouse/migrations/0127_add_editors.py b/archaeological_warehouse/migrations/0127_add_editors.py new file mode 100644 index 000000000..f4aab3cbf --- /dev/null +++ b/archaeological_warehouse/migrations/0127_add_editors.py @@ -0,0 +1,24 @@ +# 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_warehouse', '0126_add_timezone_django_v4'), + ] + + operations = [ + migrations.AddField( + model_name='container', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='warehouse', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + ] diff --git a/ishtar_common/migrations/0276_add_editors.py b/ishtar_common/migrations/0276_add_editors.py new file mode 100644 index 000000000..1710441a1 --- /dev/null +++ b/ishtar_common/migrations/0276_add_editors.py @@ -0,0 +1,48 @@ +# 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', '0275_authortype_parent'), + ] + + operations = [ + migrations.AddField( + model_name='biographicalnote', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='document', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='organization', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='person', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AddField( + model_name='qualifiedbiographicalnote', + name='editors', + field=models.ManyToManyField(blank=True, related_name='%(class)s_edited', to='ishtar_common.author', verbose_name='Editors'), + ), + migrations.AlterField( + model_name='documenttemplate', + name='export_format', + field=models.CharField(blank=True, choices=[('', '---')], default='', max_length=4, verbose_name='Export format'), + ), + migrations.AlterField( + model_name='qualifiedbiographicalnotetype', + name='model', + field=models.CharField(choices=[('S', 'Archaeological site'), ('O', 'Operation'), ('C', 'Context record'), ('F', 'Find'), ('A', 'All')], max_length=2, verbose_name='Model'), + ), + ] diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index 117981e79..0161aadad 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -1707,6 +1707,10 @@ class BaseHistorizedItem( last_modified = models.DateTimeField(blank=True, default=timezone.now) created = models.DateTimeField(blank=True, default=timezone.now) history_m2m = JSONField(default=dict, blank=True) + editors = models.ManyToManyField( + "ishtar_common.Author", related_name="%(class)s_edited", + verbose_name=_("Editors"), blank=True + ) need_update = models.BooleanField(verbose_name=_("Need update"), default=False) locked = models.BooleanField( verbose_name=_("Item locked for edition"), default=False @@ -1751,6 +1755,10 @@ class BaseHistorizedItem( pgettext_lazy("key for text search", "modified"), "last_modified", ), + "editors": SearchAltName( + pgettext_lazy("key for text search", "editor"), + "editors__cached_label__iexact" + ), "locked": SearchAltName( pgettext_lazy("key for text search", "locked"), "locked" ), |
