diff options
Diffstat (limited to 'archaeological_finds/migrations/0001_initial.py')
| -rw-r--r-- | archaeological_finds/migrations/0001_initial.py | 1408 | 
1 files changed, 596 insertions, 812 deletions
| diff --git a/archaeological_finds/migrations/0001_initial.py b/archaeological_finds/migrations/0001_initial.py index d5f3e804a..c3e43d362 100644 --- a/archaeological_finds/migrations/0001_initial.py +++ b/archaeological_finds/migrations/0001_initial.py @@ -1,814 +1,598 @@  # -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - -    depends_on = ( -        ('archaeological_context_records', '0001_initial.py'), -        ('archaeological_warehouse', -         '0011_auto__add_containerlocalisation__add_unique_containerlocalisation_cont.py'), -    ) - -    def forwards(self, orm): -        # Adding model 'MaterialType' -        db.create_table('archaeological_finds_materialtype', ( -            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('label', self.gf('django.db.models.fields.CharField')(max_length=100)), -            ('txt_idx', self.gf('django.db.models.fields.CharField')(unique=True, max_length=30)), -            ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), -            ('available', self.gf('django.db.models.fields.BooleanField')(default=False)), -            ('recommendation', self.gf('django.db.models.fields.TextField')()), -            ('parent', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_finds.MaterialType'], null=True, blank=True)), -        )) -        db.send_create_signal('archaeological_finds', ['MaterialType']) - -        # Adding model 'HistoricalBaseFind' -        db.create_table('archaeological_finds_historicalbasefind', ( -            ('id', self.gf('django.db.models.fields.IntegerField')(db_index=True, blank=True)), -            ('history_modifier_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('label', self.gf('django.db.models.fields.CharField')(max_length=60)), -            ('description', self.gf('django.db.models.fields.TextField')()), -            ('context_record_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('is_isolated', self.gf('django.db.models.fields.NullBooleanField')(null=True, blank=True)), -            ('index', self.gf('django.db.models.fields.IntegerField')(default=0)), -            ('material_index', self.gf('django.db.models.fields.IntegerField')(default=0)), -            ('history_id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('history_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), -            ('history_user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True)), -            ('history_type', self.gf('django.db.models.fields.CharField')(max_length=1)), -        )) -        db.send_create_signal('archaeological_finds', ['HistoricalBaseFind']) - -        # Adding model 'BaseFind' -        db.create_table('archaeological_finds_basefind', ( -            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('history_modifier', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['auth.User'])), -            ('label', self.gf('django.db.models.fields.CharField')(max_length=60)), -            ('description', self.gf('django.db.models.fields.TextField')()), -            ('context_record', self.gf('django.db.models.fields.related.ForeignKey')(related_name='base_finds', to=orm['archaeological_context_records.ContextRecord'])), -            ('is_isolated', self.gf('django.db.models.fields.NullBooleanField')(null=True, blank=True)), -            ('index', self.gf('django.db.models.fields.IntegerField')(default=0)), -            ('material_index', self.gf('django.db.models.fields.IntegerField')(default=0)), -        )) -        db.send_create_signal('archaeological_finds', ['BaseFind']) - -        # Adding model 'HistoricalFind' -        db.create_table('archaeological_finds_historicalfind', ( -            ('id', self.gf('django.db.models.fields.IntegerField')(db_index=True, blank=True)), -            ('history_modifier_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('order', self.gf('django.db.models.fields.IntegerField')()), -            ('label', self.gf('django.db.models.fields.CharField')(max_length=60)), -            ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), -            ('material_type_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('volume', self.gf('django.db.models.fields.FloatField')(null=True, blank=True)), -            ('weight', self.gf('django.db.models.fields.FloatField')(null=True, blank=True)), -            ('find_number', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)), -            ('upstream_treatment_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('downstream_treatment_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('dating_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('container_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('history_id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('history_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), -            ('history_user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True)), -            ('history_type', self.gf('django.db.models.fields.CharField')(max_length=1)), -        )) -        db.send_create_signal('archaeological_finds', ['HistoricalFind']) - -        # Adding model 'Find' -        db.create_table('archaeological_finds_find', ( -            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('history_modifier', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['auth.User'])), -            ('order', self.gf('django.db.models.fields.IntegerField')()), -            ('label', self.gf('django.db.models.fields.CharField')(max_length=60)), -            ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), -            ('material_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_finds.MaterialType'])), -            ('volume', self.gf('django.db.models.fields.FloatField')(null=True, blank=True)), -            ('weight', self.gf('django.db.models.fields.FloatField')(null=True, blank=True)), -            ('find_number', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)), -            ('upstream_treatment', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='downstream_treatment', null=True, to=orm['archaeological_finds.Treatment'])), -            ('downstream_treatment', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='upstream_treatment', null=True, to=orm['archaeological_finds.Treatment'])), -            ('dating', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_context_records.Dating'])), -            ('container', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='finds', null=True, to=orm['archaeological_warehouse.Container'])), -        )) -        db.send_create_signal('archaeological_finds', ['Find']) - -        # Adding M2M table for field base_finds on 'Find' -        db.create_table('archaeological_finds_find_base_finds', ( -            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), -            ('find', models.ForeignKey(orm['archaeological_finds.find'], null=False)), -            ('basefind', models.ForeignKey(orm['archaeological_finds.basefind'], null=False)) -        )) -        db.create_unique('archaeological_finds_find_base_finds', ['find_id', 'basefind_id']) - -        # Adding model 'FindSource' -        db.create_table('archaeological_finds_findsource', ( -            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('title', self.gf('django.db.models.fields.CharField')(max_length=200)), -            ('source_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ishtar_common.SourceType'])), -            ('associated_url', self.gf('django.db.models.fields.URLField')(max_length=200, null=True, blank=True)), -            ('receipt_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), -            ('creation_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), -            ('find', self.gf('django.db.models.fields.related.ForeignKey')(related_name='source', to=orm['archaeological_finds.Find'])), -        )) -        db.send_create_signal('archaeological_finds', ['FindSource']) - -        # Adding M2M table for field authors on 'FindSource' -        db.create_table('archaeological_finds_findsource_authors', ( -            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), -            ('findsource', models.ForeignKey(orm['archaeological_finds.findsource'], null=False)), -            ('author', models.ForeignKey(orm['ishtar_common.author'], null=False)) -        )) -        db.create_unique('archaeological_finds_findsource_authors', ['findsource_id', 'author_id']) - -        # Adding model 'TreatmentType' -        db.create_table('archaeological_finds_treatmenttype', ( -            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('label', self.gf('django.db.models.fields.CharField')(max_length=100)), -            ('txt_idx', self.gf('django.db.models.fields.CharField')(unique=True, max_length=30)), -            ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), -            ('available', self.gf('django.db.models.fields.BooleanField')(default=False)), -            ('virtual', self.gf('django.db.models.fields.BooleanField')(default=False)), -        )) -        db.send_create_signal('archaeological_finds', ['TreatmentType']) - -        # Adding model 'HistoricalTreatment' -        db.create_table('archaeological_finds_historicaltreatment', ( -            ('id', self.gf('django.db.models.fields.IntegerField')(db_index=True, blank=True)), -            ('history_modifier_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('container_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), -            ('treatment_type_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('location_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('person_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), -            ('start_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), -            ('end_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), -            ('history_id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('history_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), -            ('history_user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True)), -            ('history_type', self.gf('django.db.models.fields.CharField')(max_length=1)), -        )) -        db.send_create_signal('archaeological_finds', ['HistoricalTreatment']) - -        # Adding model 'Treatment' -        db.create_table('archaeological_finds_treatment', ( -            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('history_modifier', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['auth.User'])), -            ('container', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_warehouse.Container'], null=True, blank=True)), -            ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), -            ('treatment_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_finds.TreatmentType'])), -            ('location', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_warehouse.Warehouse'], null=True, blank=True)), -            ('person', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ishtar_common.Person'], null=True, blank=True)), -            ('start_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), -            ('end_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), -        )) -        db.send_create_signal('archaeological_finds', ['Treatment']) - -        # Adding model 'TreatmentSource' -        db.create_table('archaeological_finds_treatmentsource', ( -            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('title', self.gf('django.db.models.fields.CharField')(max_length=200)), -            ('source_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ishtar_common.SourceType'])), -            ('associated_url', self.gf('django.db.models.fields.URLField')(max_length=200, null=True, blank=True)), -            ('receipt_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), -            ('creation_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), -            ('treatment', self.gf('django.db.models.fields.related.ForeignKey')(related_name='source', to=orm['archaeological_finds.Treatment'])), -        )) -        db.send_create_signal('archaeological_finds', ['TreatmentSource']) - -        # Adding M2M table for field authors on 'TreatmentSource' -        db.create_table('archaeological_finds_treatmentsource_authors', ( -            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), -            ('treatmentsource', models.ForeignKey(orm['archaeological_finds.treatmentsource'], null=False)), -            ('author', models.ForeignKey(orm['ishtar_common.author'], null=False)) -        )) -        db.create_unique('archaeological_finds_treatmentsource_authors', ['treatmentsource_id', 'author_id']) - -        # Adding model 'Property' -        db.create_table('archaeological_finds_property', ( -            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), -            ('history_modifier', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['auth.User'])), -            ('history_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), -            ('find', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_finds.Find'])), -            ('administrative_act', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_operations.AdministrativeAct'])), -            ('person', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ishtar_common.Person'])), -            ('start_date', self.gf('django.db.models.fields.DateField')()), -            ('end_date', self.gf('django.db.models.fields.DateField')()), -        )) -        db.send_create_signal('archaeological_finds', ['Property']) +from __future__ import unicode_literals - -    def backwards(self, orm): -        # Deleting model 'MaterialType' -        db.delete_table('archaeological_finds_materialtype') - -        # Deleting model 'HistoricalBaseFind' -        db.delete_table('archaeological_finds_historicalbasefind') - -        # Deleting model 'BaseFind' -        db.delete_table('archaeological_finds_basefind') - -        # Deleting model 'HistoricalFind' -        db.delete_table('archaeological_finds_historicalfind') - -        # Deleting model 'Find' -        db.delete_table('archaeological_finds_find') - -        # Removing M2M table for field base_finds on 'Find' -        db.delete_table('archaeological_finds_find_base_finds') - -        # Deleting model 'FindSource' -        db.delete_table('archaeological_finds_findsource') - -        # Removing M2M table for field authors on 'FindSource' -        db.delete_table('archaeological_finds_findsource_authors') - -        # Deleting model 'TreatmentType' -        db.delete_table('archaeological_finds_treatmenttype') - -        # Deleting model 'HistoricalTreatment' -        db.delete_table('archaeological_finds_historicaltreatment') - -        # Deleting model 'Treatment' -        db.delete_table('archaeological_finds_treatment') - -        # Deleting model 'TreatmentSource' -        db.delete_table('archaeological_finds_treatmentsource') - -        # Removing M2M table for field authors on 'TreatmentSource' -        db.delete_table('archaeological_finds_treatmentsource_authors') - -        # Deleting model 'Property' -        db.delete_table('archaeological_finds_property') - - -    models = { -        'archaeological_context_records.activitytype': { -            'Meta': {'object_name': 'ActivityType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'order': ('django.db.models.fields.IntegerField', [], {}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_context_records.contextrecord': { -            'Meta': {'object_name': 'ContextRecord'}, -            'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), -            'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), -            'depth': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'has_furniture': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'identification': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.IdentificationType']", 'null': 'True', 'blank': 'True'}), -            'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), -            'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'location': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), -            'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'context_record'", 'to': "orm['archaeological_operations.Operation']"}), -            'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'context_record'", 'to': "orm['archaeological_operations.Parcel']"}), -            'taq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'taq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'thickness': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), -            'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_context_records.dating': { -            'Meta': {'object_name': 'Dating'}, -            'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}), -            'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}), -            'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}), -            'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_context_records.datingquality': { -            'Meta': {'object_name': 'DatingQuality'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_context_records.datingtype': { -            'Meta': {'object_name': 'DatingType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_context_records.identificationtype': { -            'Meta': {'object_name': 'IdentificationType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'order': ('django.db.models.fields.IntegerField', [], {}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_context_records.unit': { -            'Meta': {'object_name': 'Unit'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'order': ('django.db.models.fields.IntegerField', [], {}), -            'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.Unit']", 'null': 'True', 'blank': 'True'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_files.file': { -            'Meta': {'ordering': "['-year', '-numeric_reference']", 'object_name': 'File'}, -            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), -            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}), -            'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.Person']"}), -            'internal_reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '60'}), -            'numeric_reference': ('django.db.models.fields.IntegerField', [], {}), -            'permit_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), -            'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), -            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), -            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'reference_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}), -            'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}), -            'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), -            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), -            'year': ('django.db.models.fields.IntegerField', [], {'default': '2012'}) -        }, -        'archaeological_files.filetype': { -            'Meta': {'object_name': 'FileType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_files.permittype': { -            'Meta': {'object_name': 'PermitType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_files.saisinetype': { -            'Meta': {'object_name': 'SaisineType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'delay': ('django.db.models.fields.IntegerField', [], {}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_finds.basefind': { -            'Meta': {'object_name': 'BaseFind'}, -            'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'base_finds'", 'to': "orm['archaeological_context_records.ContextRecord']"}), -            'description': ('django.db.models.fields.TextField', [], {}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), -            'is_isolated': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '60'}), -            'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}) -        }, -        'archaeological_finds.find': { -            'Meta': {'object_name': 'Find'}, -            'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}), -            'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'to': "orm['archaeological_warehouse.Container']"}), -            'dating': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.Dating']"}), -            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream_treatment'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), -            'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '60'}), -            'material_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.MaterialType']"}), -            'order': ('django.db.models.fields.IntegerField', [], {}), -            'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream_treatment'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), -            'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), -            'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_finds.findsource': { -            'Meta': {'object_name': 'FindSource'}, -            'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), -            'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Author']", 'symmetrical': 'False'}), -            'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Find']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), -            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) -        }, -        'archaeological_finds.historicalbasefind': { -            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'}, -            'context_record_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'description': ('django.db.models.fields.TextField', [], {}), -            'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), -            'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), -            'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), -            'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), -            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), -            'is_isolated': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '60'}), -            'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}) -        }, -        'archaeological_finds.historicalfind': { -            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'}, -            'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'dating_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), -            'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), -            'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), -            'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '60'}), -            'material_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'order': ('django.db.models.fields.IntegerField', [], {}), -            'upstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), -            'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_finds.historicaltreatment': { -            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatment'}, -            'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), -            'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), -            'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), -            'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), -            'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'person_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), -            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'treatment_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_finds.materialtype': { -            'Meta': {'object_name': 'MaterialType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.MaterialType']", 'null': 'True', 'blank': 'True'}), -            'recommendation': ('django.db.models.fields.TextField', [], {}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_finds.property': { -            'Meta': {'object_name': 'Property'}, -            'administrative_act': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.AdministrativeAct']"}), -            'end_date': ('django.db.models.fields.DateField', [], {}), -            'find': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Find']"}), -            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Person']"}), -            'start_date': ('django.db.models.fields.DateField', [], {}) -        }, -        'archaeological_finds.treatment': { -            'Meta': {'object_name': 'Treatment'}, -            'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}), -            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), -            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Person']", 'null': 'True', 'blank': 'True'}), -            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'treatment_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']"}) -        }, -        'archaeological_finds.treatmentsource': { -            'Meta': {'object_name': 'TreatmentSource'}, -            'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), -            'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Author']", 'symmetrical': 'False'}), -            'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), -            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), -            'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"}) -        }, -        'archaeological_finds.treatmenttype': { -            'Meta': {'object_name': 'TreatmentType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), -            'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) -        }, -        'archaeological_operations.acttype': { -            'Meta': {'object_name': 'ActType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_operations.administrativeact': { -            'Meta': {'object_name': 'AdministrativeAct'}, -            'act_object': ('django.db.models.fields.CharField', [], {'max_length': '200'}), -            'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}), -            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), -            'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), -            'operator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Organization']", 'null': 'True', 'blank': 'True'}), -            'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15'}), -            'scientific': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), -            'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), -            'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_operations.operation': { -            'Meta': {'object_name': 'Operation'}, -            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), -            'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), -            'code_patriarche': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'common_name': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), -            'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), -            'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), -            'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), -            'operation_code': ('django.db.models.fields.IntegerField', [], {}), -            'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['archaeological_operations.OperationType']"}), -            'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), -            'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_operations.Period']", 'symmetrical': 'False'}), -            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_operations.RemainType']", 'symmetrical': 'False'}), -            'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), -            'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}), -            'year': ('django.db.models.fields.IntegerField', [], {}), -            'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_operations.operationtype': { -            'Meta': {'object_name': 'OperationType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_operations.parcel': { -            'Meta': {'object_name': 'Parcel'}, -            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), -            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), -            'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6'}), -            'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}), -            'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), -            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_operations.period': { -            'Meta': {'object_name': 'Period'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'end_date': ('django.db.models.fields.IntegerField', [], {}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'order': ('django.db.models.fields.IntegerField', [], {}), -            'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), -            'start_date': ('django.db.models.fields.IntegerField', [], {}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_operations.remaintype': { -            'Meta': {'object_name': 'RemainType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'archaeological_warehouse.container': { -            'Meta': {'object_name': 'Container'}, -            'comment': ('django.db.models.fields.TextField', [], {}), -            'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), -            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), -            'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) -        }, -        'archaeological_warehouse.containertype': { -            'Meta': {'object_name': 'ContainerType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), -            'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), -            'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'archaeological_warehouse.warehouse': { -            'Meta': {'object_name': 'Warehouse'}, -            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}), -            'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Person']", 'null': 'True', 'blank': 'True'}), -            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), -            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), -            'town': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), -            'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) -        }, -        'archaeological_warehouse.warehousetype': { -            'Meta': {'object_name': 'WarehouseType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'auth.group': { -            'Meta': {'object_name': 'Group'}, -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), -            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) -        }, -        'auth.permission': { -            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, -            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) -        }, -        'auth.user': { -            'Meta': {'object_name': 'User'}, -            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), -            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), -            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), -            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), -            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), -            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), -            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), -            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), -            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'contenttypes.contenttype': { -            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, -            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) -        }, -        'ishtar_common.arrondissement': { -            'Meta': {'object_name': 'Arrondissement'}, -            'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) -        }, -        'ishtar_common.author': { -            'Meta': {'object_name': 'Author'}, -            'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Person']"}) -        }, -        'ishtar_common.authortype': { -            'Meta': {'object_name': 'AuthorType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'ishtar_common.canton': { -            'Meta': {'object_name': 'Canton'}, -            'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) -        }, -        'ishtar_common.department': { -            'Meta': {'ordering': "['number']", 'object_name': 'Department'}, -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), -            'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) -        }, -        'ishtar_common.organization': { -            'Meta': {'object_name': 'Organization'}, -            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), -            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), -            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), -            'town': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}) -        }, -        'ishtar_common.organizationtype': { -            'Meta': {'object_name': 'OrganizationType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'ishtar_common.person': { -            'Meta': {'object_name': 'Person'}, -            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Organization']", 'null': 'True', 'blank': 'True'}), -            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), -            'email': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), -            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}), -            'person_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.PersonType']"}), -            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), -            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), -            'surname': ('django.db.models.fields.CharField', [], {'max_length': '20'}), -            'title': ('django.db.models.fields.CharField', [], {'max_length': '2'}), -            'town': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}) -        }, -        'ishtar_common.persontype': { -            'Meta': {'object_name': 'PersonType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'rights': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.WizardStep']", 'symmetrical': 'False'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'ishtar_common.sourcetype': { -            'Meta': {'object_name': 'SourceType'}, -            'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -        }, -        'ishtar_common.town': { -            'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, -            'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), -            'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), -            'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), -            'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), -            'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) -        }, -        'ishtar_common.wizard': { -            'Meta': {'ordering': "['url_name']", 'object_name': 'Wizard'}, -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'url_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}) -        }, -        'ishtar_common.wizardstep': { -            'Meta': {'ordering': "['wizard', 'order']", 'object_name': 'WizardStep'}, -            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -            'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}), -            'order': ('django.db.models.fields.IntegerField', [], {}), -            'url_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}), -            'wizard': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Wizard']"}) -        } -    } - -    complete_apps = ['archaeological_finds'] +from django.db import models, migrations +import datetime +import re +import django.contrib.gis.db.models.fields +import archaeological_operations.models +import ishtar_common.utils +import ishtar_common.models +import django.core.validators + + +class Migration(migrations.Migration): + +    dependencies = [ +    ] + +    operations = [ +        migrations.CreateModel( +            name='BaseFind', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.TextField(verbose_name='Free ID')), +                ('external_id', models.TextField(null=True, verbose_name='External ID', blank=True)), +                ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('special_interest', models.CharField(max_length=120, null=True, verbose_name='Special interest', blank=True)), +                ('discovery_date', models.DateField(null=True, verbose_name='Discovery date', blank=True)), +                ('index', models.IntegerField(default=0, verbose_name='Index')), +                ('material_index', models.IntegerField(default=0, verbose_name='Material index')), +                ('topographic_localisation', models.CharField(max_length=120, null=True, verbose_name='Point of topographic reference', blank=True)), +                ('x', models.FloatField(null=True, verbose_name='X', blank=True)), +                ('y', models.FloatField(null=True, verbose_name='Y', blank=True)), +                ('z', models.FloatField(null=True, verbose_name='Z', blank=True)), +                ('estimated_error_x', models.FloatField(null=True, verbose_name='Estimated error for X', blank=True)), +                ('estimated_error_y', models.FloatField(null=True, verbose_name='Estimated error for Y', blank=True)), +                ('estimated_error_z', models.FloatField(null=True, verbose_name='Estimated error for Z', blank=True)), +                ('point_2d', django.contrib.gis.db.models.fields.PointField(srid=4326, null=True, verbose_name='Point (2D)', blank=True)), +                ('point', django.contrib.gis.db.models.fields.PointField(srid=4326, dim=3, null=True, verbose_name='Point', blank=True)), +                ('line', django.contrib.gis.db.models.fields.LineStringField(srid=4326, null=True, verbose_name='Line', blank=True)), +                ('polygon', django.contrib.gis.db.models.fields.PolygonField(srid=4326, null=True, verbose_name='Polygon', blank=True)), +                ('cache_short_id', models.TextField(help_text='Cached value - do not edit', null=True, verbose_name='Short ID', blank=True)), +                ('cache_complete_id', models.TextField(help_text='Cached value - do not edit', null=True, verbose_name='Complete ID', blank=True)), +            ], +            options={ +                'verbose_name': 'Base find', +                'verbose_name_plural': 'Base finds', +                'permissions': (('view_basefind', 'Peut voir tout le Mobilier de base'), ('view_own_basefind', 'Peut voir son propre Mobilier de base'), ('add_own_basefind', 'Peut ajouter son propre Mobilier de base'), ('change_own_basefind', 'Peut modifier son propre Mobilier de base'), ('delete_own_basefind', 'Peut supprimer son propre Mobilier de base')), +            }, +            bases=(models.Model, ishtar_common.models.OwnPerms), +        ), +        migrations.CreateModel( +            name='BatchType', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +                ('order', models.IntegerField(default=10, verbose_name='Order')), +            ], +            options={ +                'ordering': ('order',), +                'verbose_name': 'Batch type', +                'verbose_name_plural': 'Batch types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='ConservatoryState', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'ordering': ('label',), +                'verbose_name': 'Conservatory state', +                'verbose_name_plural': 'Conservatory states', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='Find', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('image', models.ImageField(max_length=255, null=True, upload_to=b'upload/', blank=True)), +                ('thumbnail', models.ImageField(max_length=255, null=True, upload_to=b'upload/thumbs/', blank=True)), +                ('external_id', models.TextField(null=True, verbose_name='External ID', blank=True)), +                ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), +                ('order', models.IntegerField(default=1, verbose_name='Order')), +                ('label', models.TextField(verbose_name='Free ID')), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('conservatory_comment', models.TextField(null=True, verbose_name='Conservatory comment', blank=True)), +                ('volume', models.FloatField(null=True, verbose_name='Volume (l)', blank=True)), +                ('weight', models.FloatField(null=True, verbose_name='Weight (g)', blank=True)), +                ('weight_unit', models.CharField(blank=True, max_length=4, null=True, verbose_name='Weight unit', choices=[(b'g', 'g'), (b'kg', 'kg')])), +                ('find_number', models.IntegerField(null=True, verbose_name='Find number', blank=True)), +                ('is_complete', models.NullBooleanField(verbose_name='Is complete?')), +                ('min_number_of_individuals', models.IntegerField(null=True, verbose_name='Minimum number of individuals (MNI)', blank=True)), +                ('length', models.FloatField(null=True, verbose_name='Length (cm)', blank=True)), +                ('width', models.FloatField(null=True, verbose_name='Width (cm)', blank=True)), +                ('height', models.FloatField(null=True, verbose_name='Height (cm)', blank=True)), +                ('diameter', models.FloatField(null=True, verbose_name='Diameter (cm)', blank=True)), +                ('thickness', models.FloatField(null=True, verbose_name='Thickness (cm)', blank=True)), +                ('dimensions_comment', models.TextField(null=True, verbose_name='Dimensions comment', blank=True)), +                ('mark', models.TextField(null=True, verbose_name='Mark', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('dating_comment', models.TextField(null=True, verbose_name='Comment on dating', blank=True)), +                ('previous_id', models.TextField(null=True, verbose_name='Previous ID', blank=True)), +                ('index', models.IntegerField(default=0, verbose_name='Index')), +                ('checked', models.CharField(default=b'NC', max_length=2, verbose_name='Check', choices=[(b'NC', 'Not checked'), (b'CI', 'Checked but incorrect'), (b'CC', 'Checked and correct')])), +                ('check_date', models.DateField(default=datetime.date.today, verbose_name='Check date')), +                ('estimated_value', models.FloatField(null=True, verbose_name='Estimated value', blank=True)), +                ('cached_label', models.TextField(null=True, verbose_name='Cached name', blank=True)), +            ], +            options={ +                'ordering': ('cached_label',), +                'verbose_name': 'Find', +                'verbose_name_plural': 'Finds', +                'permissions': (('view_find', 'Peut voir tout le Mobilier'), ('view_own_find', 'Peut voir son propre Mobilier'), ('add_own_find', 'Peut ajouter son propre Mobilier'), ('change_own_find', 'Peut modifier son propre Mobilier'), ('delete_own_find', 'Peut supprimer son propre Mobilier')), +            }, +            bases=(ishtar_common.models.ValueGetter, models.Model, ishtar_common.models.OwnPerms, ishtar_common.models.ShortMenuItem), +        ), +        migrations.CreateModel( +            name='FindBasket', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=1000, verbose_name='Label')), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'abstract': False, +            }, +        ), +        migrations.CreateModel( +            name='FindSource', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('image', models.ImageField(max_length=255, null=True, upload_to=b'upload/', blank=True)), +                ('thumbnail', models.ImageField(max_length=255, null=True, upload_to=b'upload/thumbs/', blank=True)), +                ('title', models.CharField(max_length=300, verbose_name='Title')), +                ('external_id', models.CharField(max_length=12, null=True, verbose_name='External ID', blank=True)), +                ('scale', models.CharField(max_length=30, null=True, verbose_name='Scale', blank=True)), +                ('associated_url', models.URLField(null=True, verbose_name='Numerical ressource (web address)', blank=True)), +                ('receipt_date', models.DateField(null=True, verbose_name='Receipt date', blank=True)), +                ('creation_date', models.DateField(null=True, verbose_name='Creation date', blank=True)), +                ('receipt_date_in_documentation', models.DateField(null=True, verbose_name='Receipt date in documentation', blank=True)), +                ('item_number', models.IntegerField(default=1, verbose_name='Item number')), +                ('reference', models.CharField(max_length=100, null=True, verbose_name='Ref.', blank=True)), +                ('internal_reference', models.CharField(max_length=100, null=True, verbose_name='Internal ref.', blank=True)), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('additional_information', models.TextField(null=True, verbose_name='Additional information', blank=True)), +                ('duplicate', models.BooleanField(default=False, verbose_name='Has a duplicate')), +            ], +            options={ +                'verbose_name': 'Find documentation', +                'verbose_name_plural': 'Find documentations', +                'permissions': (('view_findsource', 'Can view all Find sources'), ('view_own_findsource', 'Can view own Find source'), ('add_own_findsource', 'Can add own Find source'), ('change_own_findsource', 'Can change own Find source'), ('delete_own_findsource', 'Can delete own Find source')), +            }, +            bases=(ishtar_common.models.OwnPerms, models.Model), +        ), +        migrations.CreateModel( +            name='HistoricalBaseFind', +            fields=[ +                ('id', models.IntegerField(verbose_name='ID', db_index=True, auto_created=True, blank=True)), +                ('label', models.TextField(verbose_name='Free ID')), +                ('external_id', models.TextField(null=True, verbose_name='External ID', blank=True)), +                ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('special_interest', models.CharField(max_length=120, null=True, verbose_name='Special interest', blank=True)), +                ('discovery_date', models.DateField(null=True, verbose_name='Discovery date', blank=True)), +                ('index', models.IntegerField(default=0, verbose_name='Index')), +                ('material_index', models.IntegerField(default=0, verbose_name='Material index')), +                ('topographic_localisation', models.CharField(max_length=120, null=True, verbose_name='Point of topographic reference', blank=True)), +                ('x', models.FloatField(null=True, verbose_name='X', blank=True)), +                ('y', models.FloatField(null=True, verbose_name='Y', blank=True)), +                ('z', models.FloatField(null=True, verbose_name='Z', blank=True)), +                ('estimated_error_x', models.FloatField(null=True, verbose_name='Estimated error for X', blank=True)), +                ('estimated_error_y', models.FloatField(null=True, verbose_name='Estimated error for Y', blank=True)), +                ('estimated_error_z', models.FloatField(null=True, verbose_name='Estimated error for Z', blank=True)), +                ('point_2d', django.contrib.gis.db.models.fields.PointField(srid=4326, null=True, verbose_name='Point (2D)', blank=True)), +                ('point', django.contrib.gis.db.models.fields.PointField(srid=4326, dim=3, null=True, verbose_name='Point', blank=True)), +                ('line', django.contrib.gis.db.models.fields.LineStringField(srid=4326, null=True, verbose_name='Line', blank=True)), +                ('polygon', django.contrib.gis.db.models.fields.PolygonField(srid=4326, null=True, verbose_name='Polygon', blank=True)), +                ('cache_short_id', models.TextField(help_text='Cached value - do not edit', null=True, verbose_name='Short ID', blank=True)), +                ('cache_complete_id', models.TextField(help_text='Cached value - do not edit', null=True, verbose_name='Complete ID', blank=True)), +                ('history_id', models.AutoField(serialize=False, primary_key=True)), +                ('history_date', models.DateTimeField()), +                ('history_type', models.CharField(max_length=1, choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')])), +            ], +            options={ +                'ordering': ('-history_date', '-history_id'), +                'get_latest_by': 'history_date', +                'verbose_name': 'historical Base find', +            }, +        ), +        migrations.CreateModel( +            name='HistoricalFind', +            fields=[ +                ('id', models.IntegerField(verbose_name='ID', db_index=True, auto_created=True, blank=True)), +                ('image', models.TextField(max_length=255, null=True, blank=True)), +                ('thumbnail', models.TextField(max_length=255, null=True, blank=True)), +                ('external_id', models.TextField(null=True, verbose_name='External ID', blank=True)), +                ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), +                ('order', models.IntegerField(default=1, verbose_name='Order')), +                ('label', models.TextField(verbose_name='Free ID')), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('conservatory_comment', models.TextField(null=True, verbose_name='Conservatory comment', blank=True)), +                ('volume', models.FloatField(null=True, verbose_name='Volume (l)', blank=True)), +                ('weight', models.FloatField(null=True, verbose_name='Weight (g)', blank=True)), +                ('weight_unit', models.CharField(blank=True, max_length=4, null=True, verbose_name='Weight unit', choices=[(b'g', 'g'), (b'kg', 'kg')])), +                ('find_number', models.IntegerField(null=True, verbose_name='Find number', blank=True)), +                ('is_complete', models.NullBooleanField(verbose_name='Is complete?')), +                ('min_number_of_individuals', models.IntegerField(null=True, verbose_name='Minimum number of individuals (MNI)', blank=True)), +                ('length', models.FloatField(null=True, verbose_name='Length (cm)', blank=True)), +                ('width', models.FloatField(null=True, verbose_name='Width (cm)', blank=True)), +                ('height', models.FloatField(null=True, verbose_name='Height (cm)', blank=True)), +                ('diameter', models.FloatField(null=True, verbose_name='Diameter (cm)', blank=True)), +                ('thickness', models.FloatField(null=True, verbose_name='Thickness (cm)', blank=True)), +                ('dimensions_comment', models.TextField(null=True, verbose_name='Dimensions comment', blank=True)), +                ('mark', models.TextField(null=True, verbose_name='Mark', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('dating_comment', models.TextField(null=True, verbose_name='Comment on dating', blank=True)), +                ('previous_id', models.TextField(null=True, verbose_name='Previous ID', blank=True)), +                ('index', models.IntegerField(default=0, verbose_name='Index')), +                ('checked', models.CharField(default=b'NC', max_length=2, verbose_name='Check', choices=[(b'NC', 'Not checked'), (b'CI', 'Checked but incorrect'), (b'CC', 'Checked and correct')])), +                ('check_date', models.DateField(default=datetime.date.today, verbose_name='Check date')), +                ('estimated_value', models.FloatField(null=True, verbose_name='Estimated value', blank=True)), +                ('cached_label', models.TextField(null=True, verbose_name='Cached name', blank=True)), +                ('history_id', models.AutoField(serialize=False, primary_key=True)), +                ('history_date', models.DateTimeField()), +                ('history_type', models.CharField(max_length=1, choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')])), +            ], +            options={ +                'ordering': ('-history_date', '-history_id'), +                'get_latest_by': 'history_date', +                'verbose_name': 'historical Find', +            }, +        ), +        migrations.CreateModel( +            name='HistoricalTreatment', +            fields=[ +                ('id', models.IntegerField(verbose_name='ID', db_index=True, auto_created=True, blank=True)), +                ('image', models.TextField(max_length=255, null=True, blank=True)), +                ('thumbnail', models.TextField(max_length=255, null=True, blank=True)), +                ('label', models.CharField(max_length=200, null=True, verbose_name='Label', blank=True)), +                ('other_reference', models.CharField(max_length=200, null=True, verbose_name='Other ref.', blank=True)), +                ('year', models.IntegerField(default=ishtar_common.utils.get_current_year, verbose_name='Year')), +                ('index', models.IntegerField(default=1, verbose_name='Index')), +                ('external_id', models.CharField(max_length=200, null=True, verbose_name='External ID', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('goal', models.TextField(null=True, verbose_name='Goal', blank=True)), +                ('start_date', models.DateField(null=True, verbose_name='Start date', blank=True)), +                ('end_date', models.DateField(null=True, verbose_name='Closing date', blank=True)), +                ('estimated_cost', models.FloatField(null=True, verbose_name='Estimated cost', blank=True)), +                ('quoted_cost', models.FloatField(null=True, verbose_name='Quoted cost', blank=True)), +                ('realized_cost', models.FloatField(null=True, verbose_name='Realized cost', blank=True)), +                ('insurance_cost', models.FloatField(null=True, verbose_name='Insurance cost', blank=True)), +                ('target_is_basket', models.BooleanField(default=False, verbose_name='Target a basket')), +                ('cached_label', models.TextField(null=True, verbose_name='Cached name', blank=True)), +                ('history_id', models.AutoField(serialize=False, primary_key=True)), +                ('history_date', models.DateTimeField()), +                ('history_type', models.CharField(max_length=1, choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')])), +            ], +            options={ +                'ordering': ('-history_date', '-history_id'), +                'get_latest_by': 'history_date', +                'verbose_name': 'historical Treatment', +            }, +        ), +        migrations.CreateModel( +            name='HistoricalTreatmentFile', +            fields=[ +                ('id', models.IntegerField(verbose_name='ID', db_index=True, auto_created=True, blank=True)), +                ('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(max_length=200, null=True, verbose_name='Internal reference', blank=True)), +                ('external_id', models.CharField(max_length=200, null=True, verbose_name='External ID', blank=True)), +                ('name', models.TextField(null=True, verbose_name='Name', blank=True)), +                ('end_date', models.DateField(null=True, verbose_name='Closing date', blank=True)), +                ('creation_date', models.DateField(default=datetime.date.today, null=True, verbose_name='Creation date', blank=True)), +                ('reception_date', models.DateField(null=True, verbose_name='Reception date', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('cached_label', models.TextField(null=True, verbose_name='Cached name', blank=True)), +                ('history_id', models.AutoField(serialize=False, primary_key=True)), +                ('history_date', models.DateTimeField()), +                ('history_type', models.CharField(max_length=1, choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')])), +            ], +            options={ +                'ordering': ('-history_date', '-history_id'), +                'get_latest_by': 'history_date', +                'verbose_name': 'historical Treatment request', +            }, +        ), +        migrations.CreateModel( +            name='IntegrityType', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'ordering': ('label',), +                'verbose_name': 'Integrity / interest type', +                'verbose_name_plural': 'Integrity / interest types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='MaterialType', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +                ('code', models.CharField(max_length=10, null=True, verbose_name='Code', blank=True)), +                ('recommendation', models.TextField(null=True, verbose_name='Recommendation', blank=True)), +            ], +            options={ +                'ordering': ('label',), +                'verbose_name': 'Material type', +                'verbose_name_plural': 'Material types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='ObjectType', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'ordering': ('parent__label', 'label'), +                'verbose_name': 'Object type', +                'verbose_name_plural': 'Object types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='PreservationType', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'ordering': ('label',), +                'verbose_name': 'Preservation type', +                'verbose_name_plural': 'Preservation types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='Property', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('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', +            }, +        ), +        migrations.CreateModel( +            name='RemarkabilityType', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'ordering': ('label',), +                'verbose_name': 'Remarkability type', +                'verbose_name_plural': 'Remarkability types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='Treatment', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('image', models.ImageField(max_length=255, null=True, upload_to=b'upload/', blank=True)), +                ('thumbnail', models.ImageField(max_length=255, null=True, upload_to=b'upload/thumbs/', blank=True)), +                ('label', models.CharField(max_length=200, null=True, verbose_name='Label', blank=True)), +                ('other_reference', models.CharField(max_length=200, null=True, verbose_name='Other ref.', blank=True)), +                ('year', models.IntegerField(default=ishtar_common.utils.get_current_year, verbose_name='Year')), +                ('index', models.IntegerField(default=1, verbose_name='Index')), +                ('external_id', models.CharField(max_length=200, null=True, verbose_name='External ID', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('goal', models.TextField(null=True, verbose_name='Goal', blank=True)), +                ('start_date', models.DateField(null=True, verbose_name='Start date', blank=True)), +                ('end_date', models.DateField(null=True, verbose_name='Closing date', blank=True)), +                ('estimated_cost', models.FloatField(null=True, verbose_name='Estimated cost', blank=True)), +                ('quoted_cost', models.FloatField(null=True, verbose_name='Quoted cost', blank=True)), +                ('realized_cost', models.FloatField(null=True, verbose_name='Realized cost', blank=True)), +                ('insurance_cost', models.FloatField(null=True, verbose_name='Insurance cost', blank=True)), +                ('target_is_basket', models.BooleanField(default=False, verbose_name='Target a basket')), +                ('cached_label', models.TextField(null=True, verbose_name='Cached name', blank=True)), +            ], +            options={ +                'verbose_name': 'Treatment', +                'verbose_name_plural': 'Treatments', +                'permissions': (('view_treatment', 'Peut voir tous les Traitements'), ('view_own_treatment', 'Peut voir son propre Traitement'), ('add_own_treatment', 'Peut ajouter son propre Traitement'), ('change_own_treatment', 'Peut modifier son propre Traitement'), ('delete_own_treatment', 'Peut supprimer son propre Traitement')), +            }, +            bases=(ishtar_common.models.DashboardFormItem, ishtar_common.models.ValueGetter, models.Model, ishtar_common.models.OwnPerms, ishtar_common.models.ShortMenuItem), +        ), +        migrations.CreateModel( +            name='TreatmentFile', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('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(max_length=200, null=True, verbose_name='Internal reference', blank=True)), +                ('external_id', models.CharField(max_length=200, null=True, verbose_name='External ID', blank=True)), +                ('name', models.TextField(null=True, verbose_name='Name', blank=True)), +                ('end_date', models.DateField(null=True, verbose_name='Closing date', blank=True)), +                ('creation_date', models.DateField(default=datetime.date.today, null=True, verbose_name='Creation date', blank=True)), +                ('reception_date', models.DateField(null=True, verbose_name='Reception date', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('cached_label', models.TextField(null=True, verbose_name='Cached name', blank=True)), +            ], +            options={ +                'ordering': ('cached_label',), +                'verbose_name': 'Treatment request', +                'verbose_name_plural': 'Treatment requests', +                'permissions': (('view_filetreatment', 'Peut voir toutes les Demandes de traitement'), ('add_filetreatment', 'Can add Treatment request'), ('change_filetreatment', 'Can change Treatment request'), ('delete_filetreatment', 'Can delete Treatment request'), ('view_own_filetreatment', 'Peut voir sa propre Demande de traitement'), ('add_own_filetreatment', 'Peut ajouter sa propre Demande de traitement'), ('change_own_filetreatment', 'Peut modifier sa propre Demande de traitement'), ('delete_own_filetreatment', 'Peut supprimer sa propre Demande de traitement')), +            }, +            bases=(ishtar_common.models.DashboardFormItem, archaeological_operations.models.ClosedItem, models.Model, ishtar_common.models.OwnPerms, ishtar_common.models.ValueGetter, ishtar_common.models.ShortMenuItem), +        ), +        migrations.CreateModel( +            name='TreatmentFileSource', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('image', models.ImageField(max_length=255, null=True, upload_to=b'upload/', blank=True)), +                ('thumbnail', models.ImageField(max_length=255, null=True, upload_to=b'upload/thumbs/', blank=True)), +                ('title', models.CharField(max_length=300, verbose_name='Title')), +                ('external_id', models.CharField(max_length=12, null=True, verbose_name='External ID', blank=True)), +                ('scale', models.CharField(max_length=30, null=True, verbose_name='Scale', blank=True)), +                ('associated_url', models.URLField(null=True, verbose_name='Numerical ressource (web address)', blank=True)), +                ('receipt_date', models.DateField(null=True, verbose_name='Receipt date', blank=True)), +                ('creation_date', models.DateField(null=True, verbose_name='Creation date', blank=True)), +                ('receipt_date_in_documentation', models.DateField(null=True, verbose_name='Receipt date in documentation', blank=True)), +                ('item_number', models.IntegerField(default=1, verbose_name='Item number')), +                ('reference', models.CharField(max_length=100, null=True, verbose_name='Ref.', blank=True)), +                ('internal_reference', models.CharField(max_length=100, null=True, verbose_name='Internal ref.', blank=True)), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('additional_information', models.TextField(null=True, verbose_name='Additional information', blank=True)), +                ('duplicate', models.BooleanField(default=False, verbose_name='Has a duplicate')), +            ], +            options={ +                'verbose_name': 'Treatment request documentation', +                'verbose_name_plural': 'Treatment request documentations', +                'permissions': (('view_filetreatmentsource', 'Can view Treatment request source'), ('view_own_filetreatmentsource', 'Can view own Treatment request source'), ('add_own_filetreatmentsource', 'Can add own Treatment request source'), ('change_own_filetreatmentsource', 'Can change own Treatment request source'), ('delete_own_filetreatmentsource', 'Can delete own Treatment request source')), +            }, +            bases=(ishtar_common.models.OwnPerms, models.Model), +        ), +        migrations.CreateModel( +            name='TreatmentFileType', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'ordering': ('label',), +                'verbose_name': 'Treatment request type', +                'verbose_name_plural': 'Treatment request types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='TreatmentSource', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('image', models.ImageField(max_length=255, null=True, upload_to=b'upload/', blank=True)), +                ('thumbnail', models.ImageField(max_length=255, null=True, upload_to=b'upload/thumbs/', blank=True)), +                ('title', models.CharField(max_length=300, verbose_name='Title')), +                ('external_id', models.CharField(max_length=12, null=True, verbose_name='External ID', blank=True)), +                ('scale', models.CharField(max_length=30, null=True, verbose_name='Scale', blank=True)), +                ('associated_url', models.URLField(null=True, verbose_name='Numerical ressource (web address)', blank=True)), +                ('receipt_date', models.DateField(null=True, verbose_name='Receipt date', blank=True)), +                ('creation_date', models.DateField(null=True, verbose_name='Creation date', blank=True)), +                ('receipt_date_in_documentation', models.DateField(null=True, verbose_name='Receipt date in documentation', blank=True)), +                ('item_number', models.IntegerField(default=1, verbose_name='Item number')), +                ('reference', models.CharField(max_length=100, null=True, verbose_name='Ref.', blank=True)), +                ('internal_reference', models.CharField(max_length=100, null=True, verbose_name='Internal ref.', blank=True)), +                ('description', models.TextField(null=True, verbose_name='Description', blank=True)), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('additional_information', models.TextField(null=True, verbose_name='Additional information', blank=True)), +                ('duplicate', models.BooleanField(default=False, verbose_name='Has a duplicate')), +            ], +            options={ +                'verbose_name': 'Treatment documentation', +                'verbose_name_plural': 'Treament documentations', +                'permissions': (('view_treatmentsource', 'Can view all Treatment sources'), ('view_own_treatmentsource', 'Can view own Treatment source'), ('add_own_treatmentsource', 'Can add own Treatment source'), ('change_own_treatmentsource', 'Can change own Treatment source'), ('delete_own_treatmentsource', 'Can delete own Treatment source')), +            }, +            bases=(ishtar_common.models.OwnPerms, models.Model), +        ), +        migrations.CreateModel( +            name='TreatmentState', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'ordering': ('label',), +                'verbose_name': 'Treatment state type', +                'verbose_name_plural': 'Treatment state types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='TreatmentType', +            fields=[ +                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), +                ('label', models.CharField(max_length=100, verbose_name='Label')), +                ('txt_idx', models.CharField(unique=True, max_length=100, verbose_name='Textual ID', validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+$'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')])), +                ('comment', models.TextField(null=True, verbose_name='Comment', blank=True)), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +                ('order', models.IntegerField(default=10, verbose_name='Order')), +                ('virtual', models.BooleanField(verbose_name='Virtual')), +                ('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')), +                ('parent', models.ForeignKey(verbose_name='Parent type', blank=True, to='archaeological_finds.TreatmentType', null=True)), +            ], +            options={ +                'ordering': ('label',), +                'verbose_name': 'Treatment type', +                'verbose_name_plural': 'Treatment types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='FindDownstreamTreatments', +            fields=[ +                ('treatment', models.OneToOneField(primary_key=True, serialize=False, to='archaeological_finds.Treatment', verbose_name='Treatment')), +                ('treatment_nb', models.IntegerField(verbose_name='Order')), +            ], +            options={ +                'ordering': ('find', '-treatment_nb'), +                'db_table': 'find_downtreatments', +                'managed': False, +            }, +        ), +        migrations.CreateModel( +            name='FindTreatments', +            fields=[ +                ('treatment', models.OneToOneField(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={ +                'ordering': ('find', 'upstream', '-treatment_nb'), +                'db_table': 'find_treatments', +                'managed': False, +            }, +        ), +        migrations.CreateModel( +            name='FindUpstreamTreatments', +            fields=[ +                ('treatment', models.OneToOneField(primary_key=True, serialize=False, to='archaeological_finds.Treatment', verbose_name='Treatment')), +                ('treatment_nb', models.IntegerField(verbose_name='Order')), +            ], +            options={ +                'ordering': ('find', '-treatment_nb'), +                'db_table': 'find_uptreatments', +                'managed': False, +            }, +        ), +    ] | 
