# -*- coding: utf-8 -*- # Generated by Django 1.11.27 on 2020-01-23 18:21 from __future__ import unicode_literals import archaeological_operations.models import archaeological_files.models 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 class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('ishtar_common', '0201_squashed'), ] operations = [ migrations.CreateModel( name='FileByDepartment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ], options={ 'db_table': 'file_department', 'managed': False, }, ), migrations.CreateModel( name='File', 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')), ('numeric_reference', models.IntegerField(blank=True, null=True, verbose_name='Numeric reference')), ('internal_reference', models.CharField(blank=True, max_length=60, null=True, verbose_name='Internal reference')), ('external_id', models.CharField(blank=True, max_length=120, null=True, verbose_name='External ID')), ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), ('name', models.TextField(blank=True, null=True, verbose_name='Name')), ('raw_general_contractor', models.CharField(blank=True, max_length=200, null=True, verbose_name='General contractor (raw)')), ('raw_town_planning_service', models.CharField(blank=True, max_length=200, null=True, verbose_name='Planning service (raw)')), ('permit_reference', models.TextField(blank=True, null=True, verbose_name='Permit reference')), ('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')), ('instruction_deadline', models.DateField(blank=True, null=True, verbose_name='Instruction deadline')), ('total_surface', models.FloatField(blank=True, null=True, verbose_name='Total surface (m2)')), ('total_developed_surface', models.FloatField(blank=True, null=True, verbose_name='Total developed surface (m2)')), ('locality', models.CharField(blank=True, max_length=100, null=True, verbose_name='Locality')), ('address', models.TextField(blank=True, null=True, verbose_name='Main address')), ('postal_code', models.CharField(blank=True, max_length=10, null=True, verbose_name='Main address - postal code')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('research_comment', models.TextField(blank=True, null=True, verbose_name='Research archaeology comment')), ('classified_area', models.NullBooleanField(verbose_name='Classified area')), ('protected_area', models.NullBooleanField(verbose_name='Protected area')), ('cira_advised', models.NullBooleanField(verbose_name='Passage en CIRA')), ('mh_register', models.NullBooleanField(verbose_name='Sur Monument Historique classé')), ('mh_listing', models.NullBooleanField(verbose_name='Sur Monument Historique inscrit')), ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name')), ('imported_line', models.TextField(blank=True, null=True, verbose_name='Imported line')), ('corporation_general_contractor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='general_contractor_files', to='ishtar_common.Organization', verbose_name='General contractor organization')), ('departments', models.ManyToManyField(blank=True, to='ishtar_common.Department', verbose_name='Departments')), ('documents', models.ManyToManyField(blank=True, related_name='files', to='ishtar_common.Document', verbose_name='Documents')), ], options={ 'verbose_name': 'Archaeological file', 'verbose_name_plural': 'Archaeological files', 'ordering': ('cached_label',), 'permissions': (('view_own_file', 'Can view own Archaeological file'), ('add_own_file', 'Can add own Archaeological file'), ('change_own_file', 'Can change own Archaeological file'), ('delete_own_file', 'Can delete own Archaeological file'), ('close_file', 'Can close File')), }, bases=(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.CascasdeUpdate, ishtar_common.models.OwnPerms, ishtar_common.models.ValueGetter, ishtar_common.models.ShortMenuItem, ishtar_common.models.DashboardFormItem), ), migrations.CreateModel( name='FileType', 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': 'Archaeological file type', 'verbose_name_plural': 'Archaeological file types', 'ordering': ('label',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='HistoricalFile', 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')), ('numeric_reference', models.IntegerField(blank=True, null=True, verbose_name='Numeric reference')), ('internal_reference', models.CharField(blank=True, max_length=60, null=True, verbose_name='Internal reference')), ('external_id', models.CharField(blank=True, max_length=120, null=True, verbose_name='External ID')), ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), ('name', models.TextField(blank=True, null=True, verbose_name='Name')), ('raw_general_contractor', models.CharField(blank=True, max_length=200, null=True, verbose_name='General contractor (raw)')), ('raw_town_planning_service', models.CharField(blank=True, max_length=200, null=True, verbose_name='Planning service (raw)')), ('permit_reference', models.TextField(blank=True, null=True, verbose_name='Permit reference')), ('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')), ('instruction_deadline', models.DateField(blank=True, null=True, verbose_name='Instruction deadline')), ('total_surface', models.FloatField(blank=True, null=True, verbose_name='Total surface (m2)')), ('total_developed_surface', models.FloatField(blank=True, null=True, verbose_name='Total developed surface (m2)')), ('locality', models.CharField(blank=True, max_length=100, null=True, verbose_name='Locality')), ('address', models.TextField(blank=True, null=True, verbose_name='Main address')), ('postal_code', models.CharField(blank=True, max_length=10, null=True, verbose_name='Main address - postal code')), ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), ('research_comment', models.TextField(blank=True, null=True, verbose_name='Research archaeology comment')), ('classified_area', models.NullBooleanField(verbose_name='Classified area')), ('protected_area', models.NullBooleanField(verbose_name='Protected area')), ('cira_advised', models.NullBooleanField(verbose_name='Passage en CIRA')), ('mh_register', models.NullBooleanField(verbose_name='Sur Monument Historique classé')), ('mh_listing', models.NullBooleanField(verbose_name='Sur Monument Historique inscrit')), ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name')), ('imported_line', models.TextField(blank=True, null=True, verbose_name='Imported line')), ('history_id', models.AutoField(primary_key=True, serialize=False)), ('history_date', models.DateTimeField()), ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), ('corporation_general_contractor', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Organization')), ('file_type', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_files.FileType')), ('general_contractor', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Person')), ('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)), ('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)), ('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')), ('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)), ('main_town', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Town')), ('organization', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Organization')), ], options={ 'verbose_name': 'historical Archaeological file', 'ordering': ('-history_date', '-history_id'), 'get_latest_by': 'history_date', }, ), migrations.CreateModel( name='PermitType', 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': 'Permit type', 'verbose_name_plural': 'Permit types', 'ordering': ('label',), }, bases=(ishtar_common.models.Cached, models.Model), ), migrations.CreateModel( name='SaisineType', 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')), ('delay', models.IntegerField(default=30, verbose_name='Delay (in days)')), ], options={ 'verbose_name': 'Type de saisine', 'verbose_name_plural': 'Types de saisine', 'ordering': ('label',), }, bases=(ishtar_common.models.Cached, models.Model, ishtar_common.models.ValueGetter), ), migrations.AddField( model_name='historicalfile', name='permit_type', field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_files.PermitType'), ), migrations.AddField( model_name='historicalfile', name='planning_service', field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Organization'), ), migrations.AddField( model_name='historicalfile', name='related_file', field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_files.File'), ), migrations.AddField( model_name='historicalfile', name='requested_operation_type', field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.OperationType'), ), migrations.AddField( model_name='historicalfile', name='responsible_town_planning_service', field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Person'), ), migrations.AddField( model_name='historicalfile', name='saisine_type', field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='archaeological_files.SaisineType'), ), migrations.AddField( model_name='historicalfile', name='scientist', field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Person'), ), migrations.AddField( model_name='file', name='file_type', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_files.FileType', verbose_name='File type'), ), migrations.AddField( model_name='file', name='general_contractor', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='general_contractor_files', to='ishtar_common.Person', verbose_name='General contractor'), ), migrations.AddField( model_name='file', name='history_creator', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Creator'), ), migrations.AddField( model_name='file', name='history_modifier', field=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'), ), migrations.AddField( model_name='file', name='imports', field=models.ManyToManyField(blank=True, related_name='imported_archaeological_files_file', to='ishtar_common.Import'), ), migrations.AddField( model_name='file', name='in_charge', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='file_responsability', to='ishtar_common.Person', verbose_name='Person in charge'), ), migrations.AddField( model_name='file', name='lock_user', field=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'), ), migrations.AddField( model_name='file', name='main_town', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='file_main', to='ishtar_common.Town', verbose_name='Main town'), ), migrations.AddField( model_name='file', name='organization', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='files', to='ishtar_common.Organization', verbose_name='Organization'), ), migrations.AddField( model_name='file', name='permit_type', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_files.PermitType', verbose_name='Permit type'), ), migrations.AddField( model_name='file', name='planning_service', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='planning_service_files', to='ishtar_common.Organization', verbose_name='Planning service organization'), ), migrations.AddField( model_name='file', name='related_file', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_files.File', verbose_name='Related file'), ), migrations.AddField( model_name='file', name='requested_operation_type', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='ishtar_common.OperationType', verbose_name='Requested operation type'), ), migrations.AddField( model_name='file', name='responsible_town_planning_service', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='responsible_town_planning_service_files', to='ishtar_common.Person', verbose_name='Responsible for planning service'), ), migrations.AddField( model_name='file', name='saisine_type', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_files.SaisineType', verbose_name='Type de saisine'), ), migrations.AddField( model_name='file', name='scientist', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='scientist', to='ishtar_common.Person', verbose_name='Scientist in charge'), ), migrations.AddField( model_name='file', name='towns', field=models.ManyToManyField(blank=True, related_name='file', to='ishtar_common.Town', verbose_name='Towns'), ), migrations.AddIndex( model_name='file', index=django.contrib.postgres.indexes.GinIndex(fields=['data'], name='archaeologi_data_44e442_gin'), ), migrations.RunSQL( archaeological_files.models.FileByDepartment.DELETE_SQL), migrations.RunSQL( archaeological_files.models.FileByDepartment.CREATE_SQL), ]