summaryrefslogtreecommitdiff
path: root/archaeological_finds/migrations/0101_squashed.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/migrations/0101_squashed.py')
-rw-r--r--archaeological_finds/migrations/0101_squashed.py780
1 files changed, 780 insertions, 0 deletions
diff --git a/archaeological_finds/migrations/0101_squashed.py b/archaeological_finds/migrations/0101_squashed.py
new file mode 100644
index 000000000..069982355
--- /dev/null
+++ b/archaeological_finds/migrations/0101_squashed.py
@@ -0,0 +1,780 @@
+# -*- 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 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.utils
+import re
+import uuid
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ('ishtar_common', '0201_squashed'),
+ ('archaeological_finds', '0080_auto_20191216_1040'),
+ ]
+
+ 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_basefind', 'Can view all Base finds'), ('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.BulkUpdatedItem, ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models.FixAssociated, ishtar_common.models.CascasdeUpdate, 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_find', 'Can view all Finds'), ('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.BulkUpdatedItem, 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.FixAssociated, ishtar_common.models.CascasdeUpdate, 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.FixAssociated, ishtar_common.models.CascasdeUpdate),
+ ),
+ 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_treatment', 'Can view all Treatments'), ('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.FixAssociated, ishtar_common.models.CascasdeUpdate, 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_treatmentfile', 'Can view all Treatment requests'), ('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.FixAssociated, ishtar_common.models.CascasdeUpdate, 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'),
+ ),
+ ]