summaryrefslogtreecommitdiff
path: root/archaeological_finds/migrations
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/migrations')
-rw-r--r--archaeological_finds/migrations/0149_add_editors.py64
-rw-r--r--archaeological_finds/migrations/0150_findrelationtype_findrecordrelations.py58
-rw-r--r--archaeological_finds/migrations/0151_data_migration.json30
-rw-r--r--archaeological_finds/migrations/0151_data_migration_find_relation_type.py24
-rw-r--r--archaeological_finds/migrations/0152_find_actors_heritage_museum_fields.py154
-rw-r--r--archaeological_finds/migrations/0153_data_migration.json46
-rw-r--r--archaeological_finds/migrations/0153_data_migration_find_listed_building_icono_patterns.py24
7 files changed, 400 insertions, 0 deletions
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_finds/migrations/0150_findrelationtype_findrecordrelations.py b/archaeological_finds/migrations/0150_findrelationtype_findrecordrelations.py
new file mode 100644
index 000000000..a7be6cc8b
--- /dev/null
+++ b/archaeological_finds/migrations/0150_findrelationtype_findrecordrelations.py
@@ -0,0 +1,58 @@
+# Generated by Django 4.2.21 on 2026-04-06 18:14
+
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+import ishtar_common.models_common
+import re
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('ishtar_common', '0277_data_migration_qualifiedbionotetype'),
+ ('archaeological_finds', '0149_add_editors'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='FindRelationType',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('label', models.TextField(verbose_name='Label')),
+ ('txt_idx', models.TextField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), 'Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.', 'invalid')], verbose_name='Textual ID')),
+ ('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
+ ('available', models.BooleanField(default=True, verbose_name='Available')),
+ ('order', models.IntegerField(default=1, verbose_name='Order')),
+ ('symmetrical', models.BooleanField(verbose_name='Symmetrical')),
+ ('tiny_label', models.CharField(blank=True, max_length=50, null=True, verbose_name='Tiny label')),
+ ('logical_relation', models.CharField(blank=True, choices=[('above', 'Above'), ('below', 'Below'), ('equal', 'Equal'), ('include', 'Include'), ('included', 'Is included')], max_length=10, null=True, verbose_name='Logical relation')),
+ ('inverse_relation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_finds.findrelationtype', verbose_name='Inverse relation')),
+ ],
+ options={
+ 'verbose_name': 'Find relation type',
+ 'verbose_name_plural': 'Find relation types',
+ 'ordering': ('order', 'label'),
+ },
+ bases=(ishtar_common.models_common.Cached, models.Model),
+ ),
+ migrations.CreateModel(
+ name='FindRecordRelations',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('timestamp_geo', models.IntegerField(blank=True, null=True, verbose_name='Timestamp geo')),
+ ('timestamp_label', models.IntegerField(blank=True, null=True, verbose_name='Timestamp label')),
+ ('imports', models.ManyToManyField(blank=True, related_name='imported_%(app_label)s_%(class)s', to='ishtar_common.import', verbose_name='Created by imports')),
+ ('imports_updated', models.ManyToManyField(blank=True, related_name='import_updated_%(app_label)s_%(class)s', to='ishtar_common.import', verbose_name='Updated by imports')),
+ ('left_record', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='right_relations', to='archaeological_finds.find')),
+ ('relation_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='archaeological_finds.findrelationtype')),
+ ('right_record', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='left_relations', to='archaeological_finds.find')),
+ ],
+ options={
+ 'verbose_name': 'Find record relation',
+ 'verbose_name_plural': 'Find record relations',
+ 'ordering': ('left_record__cached_label', 'relation_type', 'right_record__cached_label'),
+ 'permissions': [('view_findrelation', 'Can view all Find relations')],
+ },
+ ),
+ ]
diff --git a/archaeological_finds/migrations/0151_data_migration.json b/archaeological_finds/migrations/0151_data_migration.json
new file mode 100644
index 000000000..58dd88c85
--- /dev/null
+++ b/archaeological_finds/migrations/0151_data_migration.json
@@ -0,0 +1,30 @@
+[
+ {
+ "model": "archaeological_finds.findrelationtype",
+ "fields": {
+ "label": "Recolle avec",
+ "txt_idx": "recolle-avec",
+ "comment": "",
+ "available": true,
+ "order": 10,
+ "symmetrical": true,
+ "tiny_label": null,
+ "inverse_relation": null,
+ "logical_relation": null
+ }
+ },
+ {
+ "model": "archaeological_finds.findrelationtype",
+ "fields": {
+ "label": "Voisin de",
+ "txt_idx": "voisin-de",
+ "comment": "",
+ "available": true,
+ "order": 10,
+ "symmetrical": true,
+ "tiny_label": null,
+ "inverse_relation": null,
+ "logical_relation": null
+ }
+ }
+]
diff --git a/archaeological_finds/migrations/0151_data_migration_find_relation_type.py b/archaeological_finds/migrations/0151_data_migration_find_relation_type.py
new file mode 100644
index 000000000..f3a1c1b4e
--- /dev/null
+++ b/archaeological_finds/migrations/0151_data_migration_find_relation_type.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.2.24 on 2024-02-10 12:07
+
+import os
+
+from django.db import migrations
+from django.core.management import call_command
+
+
+def load_data(apps, __):
+ FindRelationtypeType = apps.get_model("archaeological_finds", "findrelationtype")
+ if not FindRelationtypeType.objects.count():
+ json_path = os.sep.join(os.path.abspath(__file__).split(os.sep)[:-1] + ["0151_data_migration.json"])
+ call_command("loaddata", json_path)
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_finds', '0150_findrelationtype_findrecordrelations'),
+ ]
+
+ operations = [
+ migrations.RunPython(load_data)
+ ]
diff --git a/archaeological_finds/migrations/0152_find_actors_heritage_museum_fields.py b/archaeological_finds/migrations/0152_find_actors_heritage_museum_fields.py
new file mode 100644
index 000000000..1d386c3ee
--- /dev/null
+++ b/archaeological_finds/migrations/0152_find_actors_heritage_museum_fields.py
@@ -0,0 +1,154 @@
+# Generated by Django 4.2.21 on 2026-04-16 10:44
+
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+import ishtar_common.models_common
+import re
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('ishtar_common', '0277_data_migration_qualifiedbionotetype'),
+ ('archaeological_finds', '0151_data_migration_find_relation_type'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='find',
+ name='actors',
+ field=models.ManyToManyField(blank=True, related_name='finds', to='ishtar_common.qualifiedbiographicalnote', verbose_name='Actors'),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='conservatory_states_details',
+ field=models.TextField(blank=True, default='', verbose_name='Conservatory state details'),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='iconography_notes',
+ field=models.TextField(blank=True, default='', verbose_name='Notes on iconography'),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='listed_building_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date of listing as a listed building'),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='listed_building_id',
+ field=models.TextField(blank=True, default='', verbose_name='Listed building ID'),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='listed_building_notes',
+ field=models.TextField(blank=True, default='', verbose_name='Notes on listed building'),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='mark_text',
+ field=models.TextField(blank=True, default='', verbose_name='Mark text'),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='title',
+ field=models.TextField(blank=True, default='', verbose_name='Title'),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='conservatory_states_details',
+ field=models.TextField(blank=True, default='', verbose_name='Conservatory state details'),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='iconography_notes',
+ field=models.TextField(blank=True, default='', verbose_name='Notes on iconography'),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='listed_building_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date of listing as a listed building'),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='listed_building_id',
+ field=models.TextField(blank=True, default='', verbose_name='Listed building ID'),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='listed_building_notes',
+ field=models.TextField(blank=True, default='', verbose_name='Notes on listed building'),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='mark_text',
+ field=models.TextField(blank=True, default='', verbose_name='Mark text'),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='title',
+ field=models.TextField(blank=True, default='', verbose_name='Title'),
+ ),
+ migrations.AlterField(
+ model_name='find',
+ name='mark',
+ field=models.TextField(blank=True, default='', verbose_name='Marking details'),
+ ),
+ migrations.AlterField(
+ model_name='historicalfind',
+ name='mark',
+ field=models.TextField(blank=True, default='', verbose_name='Marking details'),
+ ),
+ migrations.CreateModel(
+ name='ListedBuildingProtectionNature',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('label', models.TextField(verbose_name='Label')),
+ ('txt_idx', models.TextField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), 'Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.', 'invalid')], verbose_name='Textual ID')),
+ ('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
+ ('available', models.BooleanField(default=True, verbose_name='Available')),
+ ('order', models.IntegerField(default=10, verbose_name='Order')),
+ ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_finds.listedbuildingprotectionnature', verbose_name='Parent')),
+ ],
+ options={
+ 'verbose_name': 'Listed building protection nature',
+ 'verbose_name_plural': 'Listed building protection nature',
+ 'ordering': ('order', 'label'),
+ },
+ bases=(ishtar_common.models_common.Cached, models.Model),
+ ),
+ migrations.CreateModel(
+ name='IconographicPatternType',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('label', models.TextField(verbose_name='Label')),
+ ('txt_idx', models.TextField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), 'Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.', 'invalid')], verbose_name='Textual ID')),
+ ('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
+ ('available', models.BooleanField(default=True, verbose_name='Available')),
+ ('order', models.IntegerField(default=10, verbose_name='Order')),
+ ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_finds.iconographicpatterntype', verbose_name='Parent')),
+ ],
+ options={
+ 'verbose_name': 'Iconographic pattern type',
+ 'verbose_name_plural': 'Iconographic pattern types',
+ 'ordering': ('order', 'label'),
+ },
+ bases=(ishtar_common.models_common.Cached, models.Model),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='iconographic_patterns',
+ field=models.ManyToManyField(blank=True, related_name='finds', to='archaeological_finds.iconographicpatterntype', verbose_name='Iconographic patterns'),
+ ),
+ migrations.AddField(
+ model_name='find',
+ name='listed_building_protection_nature',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='finds', to='archaeological_finds.listedbuildingprotectionnature', verbose_name='Nature of listed buildings protection'),
+ ),
+ migrations.AddField(
+ model_name='historicalfind',
+ name='listed_building_protection_nature',
+ field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_finds.listedbuildingprotectionnature', verbose_name='Nature of listed buildings protection'),
+ ),
+ ]
diff --git a/archaeological_finds/migrations/0153_data_migration.json b/archaeological_finds/migrations/0153_data_migration.json
new file mode 100644
index 000000000..2391c6097
--- /dev/null
+++ b/archaeological_finds/migrations/0153_data_migration.json
@@ -0,0 +1,46 @@
+[
+ {
+ "model": "archaeological_finds.listedbuildingprotectionnature",
+ "fields": {
+ "label": "Inscription au titre des monuments historiques",
+ "txt_idx": "inscription-au-titre-des-monuments-historiques",
+ "comment": "",
+ "available": true,
+ "order": 10,
+ "parent": null
+ }
+ },
+ {
+ "model": "archaeological_finds.listedbuildingprotectionnature",
+ "fields": {
+ "label": "Classement au titre des monuments historiques",
+ "txt_idx": "classement-au-titre-des-monuments-historiques",
+ "comment": "",
+ "available": true,
+ "order": 20,
+ "parent": null
+ }
+ },
+ {
+ "model": "archaeological_finds.iconographicpatterntype",
+ "fields": {
+ "label": "Motif iconographique 1",
+ "txt_idx": "motif-iconographique-1",
+ "comment": "",
+ "available": true,
+ "order": 10,
+ "parent": null
+ }
+ },
+ {
+ "model": "archaeological_finds.iconographicpatterntype",
+ "fields": {
+ "label": "Motif iconographique 2",
+ "txt_idx": "motif-iconographique-2",
+ "comment": "",
+ "available": true,
+ "order": 20,
+ "parent": null
+ }
+ }
+]
diff --git a/archaeological_finds/migrations/0153_data_migration_find_listed_building_icono_patterns.py b/archaeological_finds/migrations/0153_data_migration_find_listed_building_icono_patterns.py
new file mode 100644
index 000000000..571197971
--- /dev/null
+++ b/archaeological_finds/migrations/0153_data_migration_find_listed_building_icono_patterns.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.2.24 on 2024-02-10 12:07
+
+import os
+
+from django.db import migrations
+from django.core.management import call_command
+
+
+def load_data(apps, __):
+ IconographicPatternType = apps.get_model("archaeological_finds", "iconographicpatterntype")
+ if not IconographicPatternType.objects.count():
+ json_path = os.sep.join(os.path.abspath(__file__).split(os.sep)[:-1] + ["0153_data_migration.json"])
+ call_command("loaddata", json_path)
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_finds', '0152_find_actors_heritage_museum_fields'),
+ ]
+
+ operations = [
+ migrations.RunPython(load_data)
+ ]