# -*- coding: utf-8 -*- # Generated by Django 1.11.27 on 2020-01-23 18:21 import archaeological_operations.models import archaeological_finds.models import datetime from django.conf import settings import django.contrib.gis.db.models.fields import django.contrib.postgres.fields.jsonb 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 uuid class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('ishtar_common', '0201_squashed'), ] operations = [ migrations.CreateModel( name='AlterationCauseType', 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', 32), "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={ 'verbose_name': 'Alteration cause type', 'verbose_name_plural': 'Alteration cause types', 'ordering': ('parent__label', 'label'), }, 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.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', 32), "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={ 'verbose_name': 'Alteration type', 'verbose_name_plural': 'Alteration types', 'ordering': ('parent__label', 'label'), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='BaseFind', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('x', models.FloatField(blank=True, null=True, verbose_name='X')), ('y', models.FloatField(blank=True, null=True, verbose_name='Y')), ('z', models.FloatField(blank=True, null=True, verbose_name='Z')), ('estimated_error_x', models.FloatField(blank=True, null=True, verbose_name='Estimated error for X')), ('estimated_error_y', models.FloatField(blank=True, null=True, verbose_name='Estimated error for Y')), ('estimated_error_z', models.FloatField(blank=True, null=True, verbose_name='Estimated error for Z')), ('point', django.contrib.gis.db.models.fields.PointField(blank=True, dim=3, null=True, srid=4326, verbose_name='Point')), ('point_2d', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326, verbose_name='Point (2D)')), ('point_source', models.CharField(blank=True, choices=[('T', 'Town'), ('P', 'Precise'), ('M', 'Polygon')], max_length=1, null=True, verbose_name='Point source')), ('point_source_item', models.CharField(blank=True, max_length=100, null=True, verbose_name='Point source item')), ('multi_polygon', django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Multi polygon')), ('multi_polygon_source', models.CharField(blank=True, choices=[('T', 'Town'), ('P', 'Precise'), ('M', 'Polygon')], max_length=1, null=True, verbose_name='Multi-polygon source')), ('multi_polygon_source_item', models.CharField(blank=True, max_length=100, null=True, verbose_name='Multi polygon source item')), ('last_modified', models.DateTimeField(auto_now=True)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('uuid', models.UUIDField(default=uuid.uuid4)), ('label', models.TextField(verbose_name='Free ID')), ('external_id', models.TextField(blank=True, null=True, verbose_name='External ID')), ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), ('excavation_id', models.TextField(blank=True, null=True, verbose_name='Excavation ID')), ('description', models.TextField(blank=True, null=True, verbose_name='Description')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('special_interest', models.CharField(blank=True, max_length=120, null=True, verbose_name='Special interest')), ('discovery_date', models.DateField(blank=True, null=True, verbose_name='Discovery date (exact or TPQ)')), ('discovery_date_taq', models.DateField(blank=True, null=True, verbose_name='Discovery date (TAQ)')), ('index', models.IntegerField(default=0, verbose_name='Index')), ('material_index', models.IntegerField(default=0, verbose_name='Material index')), ('topographic_localisation', models.CharField(blank=True, max_length=120, null=True, verbose_name='Point of topographic reference')), ('line', django.contrib.gis.db.models.fields.LineStringField(blank=True, null=True, srid=4326, verbose_name='Line')), ('cache_short_id', models.TextField(blank=True, db_index=True, help_text='Cached value - do not edit', null=True, verbose_name='Short ID')), ('cache_complete_id', models.TextField(blank=True, db_index=True, help_text='Cached value - do not edit', null=True, verbose_name='Complete ID')), ], options={ 'verbose_name': 'Base find', 'verbose_name_plural': 'Base finds', 'permissions': (('view_own_basefind', 'Can view own Base find'), ('add_own_basefind', 'Can add own Base find'), ('change_own_basefind', 'Can change own Base find'), ('delete_own_basefind', 'Can delete own Base find')), }, bases=(ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models_common.FixAssociated, ishtar_common.models.OwnPerms, ishtar_common.models.ValueGetter), ), migrations.CreateModel( name='BatchType', 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', 32), "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')), ('order', models.IntegerField(default=10, verbose_name='Order')), ], options={ 'verbose_name': 'Batch type', 'verbose_name_plural': 'Batch types', 'ordering': ('order',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='CheckedType', 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', 32), "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')), ('order', models.IntegerField(default=10, verbose_name='Order')), ], options={ 'verbose_name': 'Checked type', 'verbose_name_plural': 'Checked types', 'ordering': ('order',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='CommunicabilityType', 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', 32), "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={ 'verbose_name': 'Communicability type', 'verbose_name_plural': 'Communicability types', 'ordering': ('parent__label', 'label'), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='ConservatoryState', 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', 32), "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')), ('order', models.IntegerField(default=10, verbose_name='Order')), ], options={ 'verbose_name': 'Conservatory state type', 'verbose_name_plural': 'Conservatory state types', 'ordering': ('order', 'label'), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='Find', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('qrcode', models.ImageField(blank=True, max_length=255, null=True, upload_to=ishtar_common.models.get_image_path)), ('last_modified', models.DateTimeField(auto_now=True)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('uuid', models.UUIDField(default=uuid.uuid4)), ('external_id', models.TextField(blank=True, null=True, verbose_name='External ID')), ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), ('seal_number', models.TextField(blank=True, null=True, verbose_name='Seal number')), ('order', models.IntegerField(default=1, verbose_name='Order')), ('label', models.TextField(verbose_name='Free ID')), ('denomination', models.TextField(blank=True, null=True, verbose_name='Denomination')), ('museum_id', models.TextField(blank=True, null=True, verbose_name='Museum ID')), ('laboratory_id', models.TextField(blank=True, null=True, verbose_name='Laboratory ID')), ('description', models.TextField(blank=True, null=True, verbose_name='Description')), ('decoration', models.TextField(blank=True, null=True, verbose_name='Decoration')), ('inscription', models.TextField(blank=True, null=True, verbose_name='Inscription')), ('manufacturing_place', models.TextField(blank=True, null=True, verbose_name='Manufacturing place')), ('material_comment', models.TextField(blank=True, null=True, verbose_name='Comment on the material')), ('volume', models.FloatField(blank=True, null=True, verbose_name='Volume (l)')), ('weight', models.FloatField(blank=True, null=True, verbose_name='Weight')), ('weight_unit', models.CharField(blank=True, choices=[('g', 'g'), ('kg', 'kg')], max_length=4, null=True, verbose_name='Weight unit')), ('find_number', models.IntegerField(blank=True, null=True, verbose_name='Find number')), ('is_complete', models.NullBooleanField(verbose_name='Is complete?')), ('min_number_of_individuals', models.IntegerField(blank=True, null=True, verbose_name='Minimum number of individuals (MNI)')), ('length', models.FloatField(blank=True, null=True, verbose_name='Length (cm)')), ('width', models.FloatField(blank=True, null=True, verbose_name='Width (cm)')), ('height', models.FloatField(blank=True, null=True, verbose_name='Height (cm)')), ('diameter', models.FloatField(blank=True, null=True, verbose_name='Diameter (cm)')), ('circumference', models.FloatField(blank=True, null=True, verbose_name='Circumference (cm)')), ('thickness', models.FloatField(blank=True, null=True, verbose_name='Thickness (cm)')), ('clutter_long_side', models.FloatField(blank=True, null=True, verbose_name='Clutter - long side (cm)')), ('clutter_short_side', models.FloatField(blank=True, null=True, verbose_name='Clutter - short side (cm)')), ('clutter_height', models.FloatField(blank=True, null=True, verbose_name='Clutter - height (cm)')), ('dimensions_comment', models.TextField(blank=True, null=True, verbose_name='Dimensions comment')), ('mark', models.TextField(blank=True, null=True, verbose_name='Mark')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('dating_comment', models.TextField(blank=True, null=True, verbose_name='Comment on dating')), ('previous_id', models.TextField(blank=True, null=True, verbose_name='Previous ID')), ('index', models.IntegerField(default=0, verbose_name='Index')), ('check_date', models.DateField(default=datetime.date.today, verbose_name='Check date')), ('estimated_value', models.FloatField(blank=True, null=True, verbose_name='Estimated value')), ('conservatory_comment', models.TextField(blank=True, null=True, verbose_name='Conservatory comment')), ('insurance_value', models.FloatField(blank=True, null=True, verbose_name='Insurance value')), ('appraisal_date', models.DateField(blank=True, null=True, verbose_name='Appraisal date')), ('public_description', models.TextField(blank=True, null=True, verbose_name='Public description')), ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name')), ('cached_periods', models.TextField(blank=True, help_text='Generated automatically - do not edit', null=True, verbose_name='Cached periods label')), ('cached_object_types', models.TextField(blank=True, help_text='Generated automatically - do not edit', null=True, verbose_name='Cached object types label')), ('cached_materials', models.TextField(blank=True, help_text='Generated automatically - do not edit', null=True, verbose_name='Cached material types label')), ], options={ 'verbose_name': 'Find', 'verbose_name_plural': 'Finds', 'ordering': ('cached_label',), 'permissions': (('view_own_find', 'Can view own Find'), ('add_own_find', 'Can add own Find'), ('change_own_find', 'Can change own Find'), ('delete_own_find', 'Can delete own Find')), }, bases=(ishtar_common.models.ValueGetter, ishtar_common.models.DocumentItem, ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models_common.FixAssociated, ishtar_common.models.ImageContainerModel, ishtar_common.models.OwnPerms, ishtar_common.models.MainItem), ), migrations.CreateModel( name='FindBasket', 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')), ('uuid', models.UUIDField(default=uuid.uuid4)), ('label', models.CharField(max_length=1000, verbose_name='Label')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('slug', models.SlugField(blank=True, null=True, verbose_name='Slug')), ('public', models.BooleanField(default=False, verbose_name='Public')), ('available', models.BooleanField(default=True, verbose_name='Available')), ], options={ 'verbose_name': 'Basket', 'ordering': ('label',), 'permissions': (('view_find', 'Can view all Finds'), ('view_own_find', 'Can view own Find')), }, bases=(models.Model, ishtar_common.models.OwnPerms, ishtar_common.models.MainItem, ishtar_common.models.ValueGetter, ishtar_common.models.TemplateItem), ), migrations.CreateModel( name='HistoricalBaseFind', fields=[ ('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('x', models.FloatField(blank=True, null=True, verbose_name='X')), ('y', models.FloatField(blank=True, null=True, verbose_name='Y')), ('z', models.FloatField(blank=True, null=True, verbose_name='Z')), ('estimated_error_x', models.FloatField(blank=True, null=True, verbose_name='Estimated error for X')), ('estimated_error_y', models.FloatField(blank=True, null=True, verbose_name='Estimated error for Y')), ('estimated_error_z', models.FloatField(blank=True, null=True, verbose_name='Estimated error for Z')), ('point', django.contrib.gis.db.models.fields.PointField(blank=True, dim=3, null=True, srid=4326, verbose_name='Point')), ('point_2d', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326, verbose_name='Point (2D)')), ('point_source', models.CharField(blank=True, choices=[('T', 'Town'), ('P', 'Precise'), ('M', 'Polygon')], max_length=1, null=True, verbose_name='Point source')), ('point_source_item', models.CharField(blank=True, max_length=100, null=True, verbose_name='Point source item')), ('multi_polygon', django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Multi polygon')), ('multi_polygon_source', models.CharField(blank=True, choices=[('T', 'Town'), ('P', 'Precise'), ('M', 'Polygon')], max_length=1, null=True, verbose_name='Multi-polygon source')), ('multi_polygon_source_item', models.CharField(blank=True, max_length=100, null=True, verbose_name='Multi polygon source item')), ('last_modified', models.DateTimeField(blank=True, editable=False)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('uuid', models.UUIDField(default=uuid.uuid4)), ('label', models.TextField(verbose_name='Free ID')), ('external_id', models.TextField(blank=True, null=True, verbose_name='External ID')), ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), ('excavation_id', models.TextField(blank=True, null=True, verbose_name='Excavation ID')), ('description', models.TextField(blank=True, null=True, verbose_name='Description')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('special_interest', models.CharField(blank=True, max_length=120, null=True, verbose_name='Special interest')), ('discovery_date', models.DateField(blank=True, null=True, verbose_name='Discovery date (exact or TPQ)')), ('discovery_date_taq', models.DateField(blank=True, null=True, verbose_name='Discovery date (TAQ)')), ('index', models.IntegerField(default=0, verbose_name='Index')), ('material_index', models.IntegerField(default=0, verbose_name='Material index')), ('topographic_localisation', models.CharField(blank=True, max_length=120, null=True, verbose_name='Point of topographic reference')), ('line', django.contrib.gis.db.models.fields.LineStringField(blank=True, null=True, srid=4326, verbose_name='Line')), ('cache_short_id', models.TextField(blank=True, db_index=True, help_text='Cached value - do not edit', null=True, verbose_name='Short ID')), ('cache_complete_id', models.TextField(blank=True, db_index=True, help_text='Cached value - do not edit', null=True, verbose_name='Complete ID')), ('history_id', models.AutoField(primary_key=True, serialize=False)), ('history_date', models.DateTimeField()), ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), ], options={ 'verbose_name': 'historical Base find', 'ordering': ('-history_date', '-history_id'), 'get_latest_by': 'history_date', }, ), migrations.CreateModel( name='HistoricalFind', fields=[ ('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('qrcode', models.TextField(blank=True, max_length=255, null=True)), ('last_modified', models.DateTimeField(blank=True, editable=False)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('uuid', models.UUIDField(default=uuid.uuid4)), ('external_id', models.TextField(blank=True, null=True, verbose_name='External ID')), ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), ('seal_number', models.TextField(blank=True, null=True, verbose_name='Seal number')), ('order', models.IntegerField(default=1, verbose_name='Order')), ('label', models.TextField(verbose_name='Free ID')), ('denomination', models.TextField(blank=True, null=True, verbose_name='Denomination')), ('museum_id', models.TextField(blank=True, null=True, verbose_name='Museum ID')), ('laboratory_id', models.TextField(blank=True, null=True, verbose_name='Laboratory ID')), ('description', models.TextField(blank=True, null=True, verbose_name='Description')), ('decoration', models.TextField(blank=True, null=True, verbose_name='Decoration')), ('inscription', models.TextField(blank=True, null=True, verbose_name='Inscription')), ('manufacturing_place', models.TextField(blank=True, null=True, verbose_name='Manufacturing place')), ('material_comment', models.TextField(blank=True, null=True, verbose_name='Comment on the material')), ('volume', models.FloatField(blank=True, null=True, verbose_name='Volume (l)')), ('weight', models.FloatField(blank=True, null=True, verbose_name='Weight')), ('weight_unit', models.CharField(blank=True, choices=[('g', 'g'), ('kg', 'kg')], max_length=4, null=True, verbose_name='Weight unit')), ('find_number', models.IntegerField(blank=True, null=True, verbose_name='Find number')), ('is_complete', models.NullBooleanField(verbose_name='Is complete?')), ('min_number_of_individuals', models.IntegerField(blank=True, null=True, verbose_name='Minimum number of individuals (MNI)')), ('length', models.FloatField(blank=True, null=True, verbose_name='Length (cm)')), ('width', models.FloatField(blank=True, null=True, verbose_name='Width (cm)')), ('height', models.FloatField(blank=True, null=True, verbose_name='Height (cm)')), ('diameter', models.FloatField(blank=True, null=True, verbose_name='Diameter (cm)')), ('circumference', models.FloatField(blank=True, null=True, verbose_name='Circumference (cm)')), ('thickness', models.FloatField(blank=True, null=True, verbose_name='Thickness (cm)')), ('clutter_long_side', models.FloatField(blank=True, null=True, verbose_name='Clutter - long side (cm)')), ('clutter_short_side', models.FloatField(blank=True, null=True, verbose_name='Clutter - short side (cm)')), ('clutter_height', models.FloatField(blank=True, null=True, verbose_name='Clutter - height (cm)')), ('dimensions_comment', models.TextField(blank=True, null=True, verbose_name='Dimensions comment')), ('mark', models.TextField(blank=True, null=True, verbose_name='Mark')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('dating_comment', models.TextField(blank=True, null=True, verbose_name='Comment on dating')), ('previous_id', models.TextField(blank=True, null=True, verbose_name='Previous ID')), ('index', models.IntegerField(default=0, verbose_name='Index')), ('check_date', models.DateField(default=datetime.date.today, verbose_name='Check date')), ('estimated_value', models.FloatField(blank=True, null=True, verbose_name='Estimated value')), ('conservatory_comment', models.TextField(blank=True, null=True, verbose_name='Conservatory comment')), ('insurance_value', models.FloatField(blank=True, null=True, verbose_name='Insurance value')), ('appraisal_date', models.DateField(blank=True, null=True, verbose_name='Appraisal date')), ('public_description', models.TextField(blank=True, null=True, verbose_name='Public description')), ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name')), ('cached_periods', models.TextField(blank=True, help_text='Generated automatically - do not edit', null=True, verbose_name='Cached periods label')), ('cached_object_types', models.TextField(blank=True, help_text='Generated automatically - do not edit', null=True, verbose_name='Cached object types label')), ('cached_materials', models.TextField(blank=True, help_text='Generated automatically - do not edit', null=True, verbose_name='Cached material types label')), ('history_id', models.AutoField(primary_key=True, serialize=False)), ('history_date', models.DateTimeField()), ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), ], options={ 'verbose_name': 'historical Find', 'ordering': ('-history_date', '-history_id'), 'get_latest_by': 'history_date', }, ), migrations.CreateModel( name='HistoricalTreatment', fields=[ ('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')), ('image', models.TextField(blank=True, help_text='La taille maximale supportée pour le fichier est de 100 Mo.', max_length=255, null=True)), ('thumbnail', models.TextField(blank=True, help_text='La taille maximale supportée pour le fichier est de 100 Mo.', max_length=255, null=True)), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('last_modified', models.DateTimeField(blank=True, editable=False)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('label', models.CharField(blank=True, max_length=200, null=True, verbose_name='Label')), ('other_reference', models.CharField(blank=True, max_length=200, null=True, verbose_name='Other ref.')), ('year', models.IntegerField(default=ishtar_common.utils.get_current_year, verbose_name='Year')), ('index', models.IntegerField(default=1, verbose_name='Index')), ('executed', models.BooleanField(default=False, verbose_name='Treatment have been executed')), ('external_id', models.CharField(blank=True, max_length=200, null=True, verbose_name='External ID')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('description', models.TextField(blank=True, null=True, verbose_name='Description')), ('goal', models.TextField(blank=True, null=True, verbose_name='Goal')), ('start_date', models.DateField(blank=True, null=True, verbose_name='Start date')), ('end_date', models.DateField(blank=True, null=True, verbose_name='Closing date')), ('creation_date', models.DateTimeField(default=datetime.datetime.now)), ('estimated_cost', models.FloatField(blank=True, null=True, verbose_name='Estimated cost')), ('quoted_cost', models.FloatField(blank=True, null=True, verbose_name='Quoted cost')), ('realized_cost', models.FloatField(blank=True, null=True, verbose_name='Realized cost')), ('insurance_cost', models.FloatField(blank=True, null=True, verbose_name='Insurance cost')), ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name')), ('history_id', models.AutoField(primary_key=True, serialize=False)), ('history_date', models.DateTimeField()), ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), ], options={ 'verbose_name': 'historical Treatment', 'ordering': ('-history_date', '-history_id'), 'get_latest_by': 'history_date', }, ), migrations.CreateModel( name='HistoricalTreatmentFile', fields=[ ('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('last_modified', models.DateTimeField(blank=True, editable=False)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('year', models.IntegerField(default=ishtar_common.utils.get_current_year, verbose_name='Year')), ('index', models.IntegerField(default=1, verbose_name='Index')), ('internal_reference', models.CharField(blank=True, max_length=200, null=True, verbose_name='Internal reference')), ('external_id', models.CharField(blank=True, max_length=200, null=True, verbose_name='External ID')), ('name', models.TextField(blank=True, null=True, verbose_name='Name')), ('end_date', models.DateField(blank=True, null=True, verbose_name='Closing date')), ('creation_date', models.DateField(blank=True, default=datetime.date.today, null=True, verbose_name='Creation date')), ('reception_date', models.DateField(blank=True, null=True, verbose_name='Reception date')), ('exhibition_name', models.TextField(blank=True, null=True, verbose_name='Exhibition name')), ('exhibition_start_date', models.DateField(blank=True, null=True, verbose_name='Exhibition start date')), ('exhibition_end_date', models.DateField(blank=True, null=True, verbose_name='Exhibition end date')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name')), ('history_id', models.AutoField(primary_key=True, serialize=False)), ('history_date', models.DateTimeField()), ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), ], options={ 'verbose_name': 'historical Treatment request', 'ordering': ('-history_date', '-history_id'), 'get_latest_by': 'history_date', }, ), migrations.CreateModel( name='IntegrityType', 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', 32), "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={ 'verbose_name': 'Integrity / interest type', 'verbose_name_plural': 'Integrity / interest types', 'ordering': ('label',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='MaterialType', 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', 32), "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')), ('code', models.CharField(blank=True, max_length=10, null=True, verbose_name='Code')), ('recommendation', models.TextField(blank=True, null=True, verbose_name='Recommendation')), ], options={ 'verbose_name': 'Material type', 'verbose_name_plural': 'Material types', 'ordering': ('label',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='MaterialTypeQualityType', 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', 32), "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')), ('order', models.IntegerField(default=10, verbose_name='Order')), ], options={ 'verbose_name': 'Material type quality type', 'verbose_name_plural': 'Material type quality types', 'ordering': ('order',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='ObjectType', 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', 32), "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={ 'verbose_name': 'Object type', 'verbose_name_plural': 'Object types', 'ordering': ('parent__label', 'label'), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='ObjectTypeQualityType', 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', 32), "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')), ('order', models.IntegerField(default=10, verbose_name='Order')), ], options={ 'verbose_name': 'Object type quality type', 'verbose_name_plural': 'Object type quality types', 'ordering': ('order',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='Property', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('last_modified', models.DateTimeField(auto_now=True)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('history_date', models.DateTimeField(default=datetime.datetime.now)), ('start_date', models.DateField(verbose_name='Start date')), ('end_date', models.DateField(verbose_name='End date')), ], options={ 'verbose_name': 'Property', 'verbose_name_plural': 'Properties', }, bases=(ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models_common.FixAssociated), ), migrations.CreateModel( name='RemarkabilityType', 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', 32), "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={ 'verbose_name': 'Remarkability type', 'verbose_name_plural': 'Remarkability types', 'ordering': ('label',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='Treatment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('image', models.ImageField(blank=True, help_text='La taille maximale supportée pour le fichier est de 100 Mo.', max_length=255, null=True, upload_to=ishtar_common.models.get_image_path)), ('thumbnail', models.ImageField(blank=True, help_text='La taille maximale supportée pour le fichier est de 100 Mo.', max_length=255, null=True, upload_to=ishtar_common.models.get_image_path)), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('last_modified', models.DateTimeField(auto_now=True)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('label', models.CharField(blank=True, max_length=200, null=True, verbose_name='Label')), ('other_reference', models.CharField(blank=True, max_length=200, null=True, verbose_name='Other ref.')), ('year', models.IntegerField(default=ishtar_common.utils.get_current_year, verbose_name='Year')), ('index', models.IntegerField(default=1, verbose_name='Index')), ('executed', models.BooleanField(default=False, verbose_name='Treatment have been executed')), ('external_id', models.CharField(blank=True, max_length=200, null=True, verbose_name='External ID')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('description', models.TextField(blank=True, null=True, verbose_name='Description')), ('goal', models.TextField(blank=True, null=True, verbose_name='Goal')), ('start_date', models.DateField(blank=True, null=True, verbose_name='Start date')), ('end_date', models.DateField(blank=True, null=True, verbose_name='Closing date')), ('creation_date', models.DateTimeField(default=datetime.datetime.now)), ('estimated_cost', models.FloatField(blank=True, null=True, verbose_name='Estimated cost')), ('quoted_cost', models.FloatField(blank=True, null=True, verbose_name='Quoted cost')), ('realized_cost', models.FloatField(blank=True, null=True, verbose_name='Realized cost')), ('insurance_cost', models.FloatField(blank=True, null=True, verbose_name='Insurance cost')), ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name')), ], options={ 'verbose_name': 'Treatment', 'verbose_name_plural': 'Treatments', 'ordering': ('-year', '-index', '-start_date'), 'permissions': (('view_own_treatment', 'Can view own Treatment'), ('add_own_treatment', 'Can add own Treatment'), ('change_own_treatment', 'Can change own Treatment'), ('delete_own_treatment', 'Can delete own Treatment')), }, bases=(ishtar_common.models.DashboardFormItem, ishtar_common.models.ValueGetter, ishtar_common.models.DocumentItem, ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models_common.FixAssociated, ishtar_common.models.ImageContainerModel, ishtar_common.models.OwnPerms, ishtar_common.models.ShortMenuItem), ), migrations.CreateModel( name='TreatmentEmergencyType', 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', 32), "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={ 'verbose_name': 'Treatment emergency type', 'verbose_name_plural': 'Treatment emergency types', 'ordering': ('label',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='TreatmentFile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), ('last_modified', models.DateTimeField(auto_now=True)), ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), ('need_update', models.BooleanField(default=False, verbose_name='Need update')), ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), ('year', models.IntegerField(default=ishtar_common.utils.get_current_year, verbose_name='Year')), ('index', models.IntegerField(default=1, verbose_name='Index')), ('internal_reference', models.CharField(blank=True, max_length=200, null=True, verbose_name='Internal reference')), ('external_id', models.CharField(blank=True, max_length=200, null=True, verbose_name='External ID')), ('name', models.TextField(blank=True, null=True, verbose_name='Name')), ('end_date', models.DateField(blank=True, null=True, verbose_name='Closing date')), ('creation_date', models.DateField(blank=True, default=datetime.date.today, null=True, verbose_name='Creation date')), ('reception_date', models.DateField(blank=True, null=True, verbose_name='Reception date')), ('exhibition_name', models.TextField(blank=True, null=True, verbose_name='Exhibition name')), ('exhibition_start_date', models.DateField(blank=True, null=True, verbose_name='Exhibition start date')), ('exhibition_end_date', models.DateField(blank=True, null=True, verbose_name='Exhibition end date')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name')), ('applicant', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='treatmentfile_applicant', to='ishtar_common.Person', verbose_name='Applicant')), ('applicant_organisation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='treatmentfile_applicant', to='ishtar_common.Organization', verbose_name='Applicant organisation')), ('associated_basket', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='treatment_files', to='archaeological_finds.FindBasket')), ('documents', models.ManyToManyField(blank=True, related_name='treatment_files', to='ishtar_common.Document', verbose_name='Documents')), ('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_treatmentfile', to='ishtar_common.Import')), ('in_charge', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='treatmentfile_responsability', to='ishtar_common.Person', verbose_name='Person in charge')), ('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_treatment_files', to='ishtar_common.Document', verbose_name='Main image')), ], options={ 'verbose_name': 'Treatment request', 'verbose_name_plural': 'Treatment requests', 'ordering': ('cached_label',), 'permissions': (('view_own_treatmentfile', 'Can view own Treatment request'), ('add_own_treatmentfile', 'Can add own Treatment request'), ('change_own_treatmentfile', 'Can change own Treatment request'), ('delete_own_treatmentfile', 'Can delete own Treatment request')), }, bases=(ishtar_common.models.DashboardFormItem, archaeological_operations.models.ClosedItem, ishtar_common.models.DocumentItem, ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models_common.FixAssociated, ishtar_common.models.OwnPerms, ishtar_common.models.ValueGetter, ishtar_common.models.ShortMenuItem), ), migrations.CreateModel( name='TreatmentFileType', 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', 32), "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={ 'verbose_name': 'Treatment request type', 'verbose_name_plural': 'Treatment request types', 'ordering': ('label',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='TreatmentState', 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', 32), "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')), ('executed', models.BooleanField(default=False, verbose_name='Treatment is executed')), ('order', models.IntegerField(default=10, verbose_name='Order')), ], options={ 'verbose_name': 'Treatment state type', 'verbose_name_plural': 'Treatment state types', 'ordering': ('order', 'label'), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='TreatmentType', 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', 32), "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')), ('order', models.IntegerField(default=10, verbose_name='Order')), ('virtual', models.BooleanField(verbose_name='Virtual')), ('destructive', models.BooleanField(default=False, verbose_name='Destructive')), ('create_new_find', models.BooleanField(default=False, help_text='If True when this treatment is applied a new version of the object will be created.', verbose_name='Create a new find')), ('upstream_is_many', models.BooleanField(default=False, help_text="Check this if for this treatment from many finds you'll get one.", verbose_name='Upstream is many')), ('downstream_is_many', models.BooleanField(default=False, help_text="Check this if for this treatment from one find you'll get many.", verbose_name='Downstream is many')), ('change_reference_location', models.BooleanField(default=False, help_text='The treatment change the reference location.', verbose_name='Change reference location')), ('change_current_location', models.BooleanField(default=False, help_text='The treatment change the current location.', verbose_name='Change current location')), ('restore_reference_location', models.BooleanField(default=False, help_text='The treatment change restore reference location to the current location.', verbose_name='Restore the reference location')), ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_finds.TreatmentType', verbose_name='Parent')), ], options={ 'verbose_name': 'Treatment type', 'verbose_name_plural': 'Treatment types', 'ordering': ('order', 'label'), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='FindDownstreamTreatments', fields=[ ('treatment', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='archaeological_finds.Treatment', verbose_name='Treatment')), ('treatment_nb', models.IntegerField(verbose_name='Order')), ], options={ 'db_table': 'find_downtreatments', 'ordering': ('find', '-treatment_nb'), 'managed': False, }, ), migrations.CreateModel( name='FindNonModifTreatments', fields=[ ('treatment', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='archaeological_finds.Treatment', verbose_name='Treatment')), ('treatment_nb', models.IntegerField(verbose_name='Order')), ], options={ 'db_table': 'find_nonmodif_treatments', 'ordering': ('find', '-treatment_nb'), 'managed': False, }, ), migrations.CreateModel( name='FindTreatments', fields=[ ('treatment', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='archaeological_finds.Treatment', verbose_name='Treatment')), ('treatment_nb', models.IntegerField(verbose_name='Order')), ('upstream', models.BooleanField(verbose_name='Is upstream')), ], options={ 'db_table': 'find_treatments', 'ordering': ('find', 'upstream', '-treatment_nb'), 'managed': False, }, ), migrations.CreateModel( name='FindUpstreamTreatments', fields=[ ('treatment', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='archaeological_finds.Treatment', verbose_name='Treatment')), ('treatment_nb', models.IntegerField(verbose_name='Order')), ], options={ 'db_table': 'find_uptreatments', 'ordering': ('find', '-treatment_nb'), 'managed': False, }, ), migrations.AddField( model_name='treatmentfiletype', name='treatment_type', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.TreatmentType'), ), migrations.AddField( model_name='treatmentfile', name='type', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_finds.TreatmentFileType', verbose_name='Treatment request type'), ), ]