diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-11-22 12:33:44 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-02-19 14:45:56 +0100 |
commit | f10b03c55ece933e4277cdf1e7d4acfba9fdd7ed (patch) | |
tree | df505f12323d4bcc2e3f63521c9ada64b3585e7f /archaeological_finds/migrations | |
parent | e7dfaffc372292d8467da8a8be872e9ac9456618 (diff) | |
download | Ishtar-f10b03c55ece933e4277cdf1e7d4acfba9fdd7ed.tar.bz2 Ishtar-f10b03c55ece933e4277cdf1e7d4acfba9fdd7ed.zip |
🗃️ database: exhibition
Diffstat (limited to 'archaeological_finds/migrations')
-rw-r--r-- | archaeological_finds/migrations/0133_exhibition.py | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/archaeological_finds/migrations/0133_exhibition.py b/archaeological_finds/migrations/0133_exhibition.py new file mode 100644 index 000000000..a4a29168e --- /dev/null +++ b/archaeological_finds/migrations/0133_exhibition.py @@ -0,0 +1,131 @@ +# Generated by Django 2.2.24 on 2024-11-21 13:05 + +import archaeological_finds.models_treatments +import datetime +from django.conf import settings +import django.contrib.postgres.fields.jsonb +import django.contrib.postgres.indexes +import django.contrib.postgres.search +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion +import ishtar_common.models +import ishtar_common.models_common +import ishtar_common.utils +import re +import simple_history.models + + +def create_default(apps, __): + ExhibitionType = apps.get_model("archaeological_finds", "ExhibitionType") + ExhibitionType.objects.get_or_create( + txt_idx="exhibition", defaults={"label": "Exposition"} + ) + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('ishtar_common', '0258_rename_perm_query'), + ('archaeological_finds', '0132_exhibitions_basket_for_treatment'), + ] + + operations = [ + migrations.CreateModel( + name='ExhibitionType', + 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')), + ], + options={ + 'verbose_name': 'Exhibition type', + 'verbose_name_plural': 'Exhibition types', + 'ordering': ('label',), + }, + bases=(ishtar_common.models_common.Cached, models.Model), + ), + migrations.CreateModel( + name='HistoricalExhibition', + fields=[ + ('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')), + ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), + ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=dict)), + ('last_modified', models.DateTimeField(blank=True, default=datetime.datetime.now)), + ('created', models.DateTimeField(blank=True, default=datetime.datetime.now)), + ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=dict)), + ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), + ('qrcode', models.TextField(blank=True, max_length=255, null=True)), + ('name', models.TextField(verbose_name='Name')), + ('year', models.IntegerField(default=ishtar_common.utils.get_current_year, verbose_name='Year')), + ('reference', models.TextField(blank=True, default='-', null=True, verbose_name='Reference')), + ('associated_basket_id', models.PositiveIntegerField(blank=True, help_text='Reference basket', null=True, verbose_name='Basket ID')), + ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), + ('history_id', models.AutoField(primary_key=True, serialize=False)), + ('history_date', models.DateTimeField()), + ('history_change_reason', models.CharField(max_length=100, null=True)), + ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), + ('exhibition_type', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_finds.ExhibitionType', verbose_name='Exhibition type')), + ('history_creator', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Creator')), + ('history_modifier', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Last editor')), + ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), + ('in_charge', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Person', verbose_name='Person in charge')), + ('lock_user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Locked by')), + ('main_image', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Document', verbose_name='Main image')), + ], + options={ + 'verbose_name': 'historical Exhibition', + 'ordering': ('-history_date', '-history_id'), + 'get_latest_by': 'history_date', + }, + bases=(simple_history.models.HistoricalChanges, models.Model), + ), + migrations.CreateModel( + name='Exhibition', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), + ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=dict)), + ('last_modified', models.DateTimeField(blank=True, default=datetime.datetime.now)), + ('created', models.DateTimeField(blank=True, default=datetime.datetime.now)), + ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=dict)), + ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), + ('qrcode', models.ImageField(blank=True, max_length=255, null=True, upload_to=ishtar_common.utils.get_image_path)), + ('name', models.TextField(verbose_name='Name')), + ('year', models.IntegerField(default=ishtar_common.utils.get_current_year, verbose_name='Year')), + ('reference', models.TextField(blank=True, default='-', null=True, verbose_name='Reference')), + ('associated_basket_id', models.PositiveIntegerField(blank=True, help_text='Reference basket', null=True, verbose_name='Basket ID')), + ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), + ('documents', models.ManyToManyField(blank=True, related_name='exhibitions', to='ishtar_common.Document', verbose_name='Documents')), + ('exhibition_type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='archaeological_finds.ExhibitionType', verbose_name='Exhibition type')), + ('history_creator', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Creator')), + ('history_modifier', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Last editor')), + ('imports', models.ManyToManyField(blank=True, related_name='imported_archaeological_finds_exhibition', to='ishtar_common.Import', verbose_name='Created by imports')), + ('imports_updated', models.ManyToManyField(blank=True, related_name='import_updated_archaeological_finds_exhibition', to='ishtar_common.Import', verbose_name='Updated by imports')), + ('in_charge', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='exhibitions', to='ishtar_common.Person', verbose_name='Person in charge')), + ('ishtar_users', models.ManyToManyField(blank=True, related_name='exhibition_associated', to='ishtar_common.IshtarUser')), + ('lock_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Locked by')), + ('main_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='main_image_exhibitions', to='ishtar_common.Document', verbose_name='Main image')), + ('treatment_files', models.ManyToManyField(blank=True, related_name='exhibitions', to='archaeological_finds.TreatmentFile', verbose_name='Loans')), + ], + options={ + 'verbose_name': 'Exhibition', + 'verbose_name_plural': 'Exhibitions', + 'ordering': ('year', 'name'), + 'permissions': (('view_own_exhibition', 'Can view own Exhibition'), ('change_own_exhibition', 'Can change own Exhibition'), ('delete_own_exhibition', 'Can delete own Exhibition')), + }, + bases=(ishtar_common.models_common.DocumentItem, ishtar_common.models_common.StatisticItem, ishtar_common.models_common.TemplateItem, models.Model, ishtar_common.models_common.CachedGen, ishtar_common.models_common.FixAssociated, ishtar_common.models_common.ImageContainerModel, ishtar_common.utils.OwnPerms, ishtar_common.models.ValueGetter, ishtar_common.models_common.MainItem, archaeological_finds.models_treatments.AssociatedFindBasket), + ), + migrations.AddIndex( + model_name='exhibition', + index=django.contrib.postgres.indexes.GinIndex(fields=['data'], name='archaeologi_data_dd22e0_gin'), + ), + migrations.AlterUniqueTogether( + name='exhibition', + unique_together={('year', 'name')}, + ), + migrations.RunPython(create_default), + ] |