From 6dd121e6c224075284c113d4fea30f8a14ebbd3d Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 4 Oct 2017 13:32:06 +0200 Subject: Preservation module: models - change alteration and alteration causes for m2m (refs #3639) --- .../migrations/0008_auto_20171004_1125.py | 129 --------------------- .../migrations/0008_auto_20171004_1327.py | 119 +++++++++++++++++++ archaeological_finds/models_finds.py | 9 +- 3 files changed, 124 insertions(+), 133 deletions(-) delete mode 100644 archaeological_finds/migrations/0008_auto_20171004_1125.py create mode 100644 archaeological_finds/migrations/0008_auto_20171004_1327.py diff --git a/archaeological_finds/migrations/0008_auto_20171004_1125.py b/archaeological_finds/migrations/0008_auto_20171004_1125.py deleted file mode 100644 index 72d8f8973..000000000 --- a/archaeological_finds/migrations/0008_auto_20171004_1125.py +++ /dev/null @@ -1,129 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11 on 2017-10-04 11:25 -from __future__ import unicode_literals - -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion -import ishtar_common.models -import re - - -class Migration(migrations.Migration): - - dependencies = [ - ('archaeological_finds', '0007_auto_20170829_1639'), - ] - - operations = [ - migrations.CreateModel( - name='AlterationCauseType', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('label', models.CharField(max_length=100, verbose_name='Label')), - ('txt_idx', models.CharField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', max_length=100, 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, null=True, verbose_name='Comment')), - ('available', models.BooleanField(default=True, verbose_name='Available')), - ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.AlterationCauseType', verbose_name='Parent')), - ], - options={ - 'ordering': ('parent__label', 'label'), - 'verbose_name': 'Alteration cause type', - 'verbose_name_plural': 'Alteration cause types', - }, - bases=(ishtar_common.models.Cached, models.Model), - ), - migrations.CreateModel( - name='AlterationType', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('label', models.CharField(max_length=100, verbose_name='Label')), - ('txt_idx', models.CharField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', max_length=100, 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, null=True, verbose_name='Comment')), - ('available', models.BooleanField(default=True, verbose_name='Available')), - ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.AlterationType', verbose_name='Parent')), - ], - options={ - 'ordering': ('parent__label', 'label'), - 'verbose_name': 'Alteration type', - 'verbose_name_plural': 'Alteration types', - }, - bases=(ishtar_common.models.Cached, models.Model), - ), - migrations.CreateModel( - name='TreatmentEmergencyType', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('label', models.CharField(max_length=100, verbose_name='Label')), - ('txt_idx', models.CharField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', max_length=100, 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, null=True, verbose_name='Comment')), - ('available', models.BooleanField(default=True, verbose_name='Available')), - ], - options={ - 'ordering': ('label',), - 'verbose_name': 'Treatment emergency type', - 'verbose_name_plural': 'Treatment emergency types', - }, - bases=(ishtar_common.models.Cached, models.Model), - ), - migrations.AddField( - model_name='find', - name='appraisal_date', - field=models.DateField(blank=True, null=True, verbose_name='Appraisal date'), - ), - migrations.AddField( - model_name='find', - name='insurance_value', - field=models.FloatField(blank=True, null=True, verbose_name='Insurance value'), - ), - migrations.AddField( - model_name='historicalfind', - name='appraisal_date', - field=models.DateField(blank=True, null=True, verbose_name='Appraisal date'), - ), - migrations.AddField( - model_name='historicalfind', - name='insurance_value', - field=models.FloatField(blank=True, null=True, verbose_name='Insurance value'), - ), - migrations.AlterField( - model_name='conservatorystate', - name='parent', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.ConservatoryState', verbose_name='Parent'), - ), - migrations.AlterField( - model_name='materialtype', - name='parent', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.MaterialType', verbose_name='Parent'), - ), - migrations.AddField( - model_name='find', - name='alteration', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.AlterationType', verbose_name='Alteration'), - ), - migrations.AddField( - model_name='find', - name='alteration_cause', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.AlterationCauseType', verbose_name='Alteration cause'), - ), - migrations.AddField( - model_name='find', - name='treatment_emergency', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.TreatmentEmergencyType', verbose_name='Treatment emergency'), - ), - migrations.AddField( - model_name='historicalfind', - name='alteration', - field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_finds.AlterationType'), - ), - migrations.AddField( - model_name='historicalfind', - name='alteration_cause', - field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_finds.AlterationCauseType'), - ), - migrations.AddField( - model_name='historicalfind', - name='treatment_emergency', - field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_finds.TreatmentEmergencyType'), - ), - ] diff --git a/archaeological_finds/migrations/0008_auto_20171004_1327.py b/archaeological_finds/migrations/0008_auto_20171004_1327.py new file mode 100644 index 000000000..0af50395a --- /dev/null +++ b/archaeological_finds/migrations/0008_auto_20171004_1327.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2017-10-04 13:27 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion +import ishtar_common.models +import re + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_finds', '0007_auto_20170829_1639'), + ] + + operations = [ + migrations.CreateModel( + name='AlterationCauseType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('label', models.CharField(max_length=100, verbose_name='Label')), + ('txt_idx', models.CharField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', max_length=100, 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, null=True, verbose_name='Comment')), + ('available', models.BooleanField(default=True, verbose_name='Available')), + ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.AlterationCauseType', verbose_name='Parent')), + ], + options={ + 'ordering': ('parent__label', 'label'), + 'verbose_name': 'Alteration cause type', + 'verbose_name_plural': 'Alteration cause types', + }, + bases=(ishtar_common.models.Cached, models.Model), + ), + migrations.CreateModel( + name='AlterationType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('label', models.CharField(max_length=100, verbose_name='Label')), + ('txt_idx', models.CharField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', max_length=100, 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, null=True, verbose_name='Comment')), + ('available', models.BooleanField(default=True, verbose_name='Available')), + ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.AlterationType', verbose_name='Parent')), + ], + options={ + 'ordering': ('parent__label', 'label'), + 'verbose_name': 'Alteration type', + 'verbose_name_plural': 'Alteration types', + }, + bases=(ishtar_common.models.Cached, models.Model), + ), + migrations.CreateModel( + name='TreatmentEmergencyType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('label', models.CharField(max_length=100, verbose_name='Label')), + ('txt_idx', models.CharField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', max_length=100, 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, null=True, verbose_name='Comment')), + ('available', models.BooleanField(default=True, verbose_name='Available')), + ], + options={ + 'ordering': ('label',), + 'verbose_name': 'Treatment emergency type', + 'verbose_name_plural': 'Treatment emergency types', + }, + bases=(ishtar_common.models.Cached, models.Model), + ), + migrations.AddField( + model_name='find', + name='appraisal_date', + field=models.DateField(blank=True, null=True, verbose_name='Appraisal date'), + ), + migrations.AddField( + model_name='find', + name='insurance_value', + field=models.FloatField(blank=True, null=True, verbose_name='Insurance value'), + ), + migrations.AddField( + model_name='historicalfind', + name='appraisal_date', + field=models.DateField(blank=True, null=True, verbose_name='Appraisal date'), + ), + migrations.AddField( + model_name='historicalfind', + name='insurance_value', + field=models.FloatField(blank=True, null=True, verbose_name='Insurance value'), + ), + migrations.AlterField( + model_name='conservatorystate', + name='parent', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.ConservatoryState', verbose_name='Parent'), + ), + migrations.AlterField( + model_name='materialtype', + name='parent', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.MaterialType', verbose_name='Parent'), + ), + migrations.AddField( + model_name='find', + name='alteration_causes', + field=models.ManyToManyField(blank=True, related_name='finds', to='archaeological_finds.AlterationCauseType', verbose_name='Alteration cause'), + ), + migrations.AddField( + model_name='find', + name='alterations', + field=models.ManyToManyField(blank=True, related_name='finds', to='archaeological_finds.AlterationType', verbose_name='Alteration'), + ), + migrations.AddField( + model_name='find', + name='treatment_emergency', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.TreatmentEmergencyType', verbose_name='Treatment emergency'), + ), + migrations.AddField( + model_name='historicalfind', + name='treatment_emergency', + field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_finds.TreatmentEmergencyType'), + ), + ] diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index bf026c03f..3d379d2a7 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -716,12 +716,13 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel, preservation_to_considers = models.ManyToManyField( PreservationType, verbose_name=_(u"Type of preservation to consider"), related_name='finds', blank=True) - alteration = models.ForeignKey( - AlterationType, verbose_name=_(u"Alteration"), blank=True, null=True + alterations = models.ManyToManyField( + AlterationType, verbose_name=_(u"Alteration"), blank=True, + related_name='finds' ) - alteration_cause = models.ForeignKey( + alteration_causes = models.ManyToManyField( AlterationCauseType, verbose_name=_(u"Alteration cause"), blank=True, - null=True + related_name='finds' ) treatment_emergency = models.ForeignKey( TreatmentEmergencyType, verbose_name=_(u"Treatment emergency"), -- cgit v1.2.3