diff options
37 files changed, 6196 insertions, 1466 deletions
| diff --git a/CHANGES.md b/CHANGES.md index 967fa9d76..20a3113db 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,36 @@  Ishtar changelog  ================ +v0.99.22 (2017-06-30) +--------------------- +### Features ### +- Imports: explicit message (instead of crash) on misconfiguration of importers +- Sources: change external id type to TextField +- Sheet find: hover text on ID + +### Bug fixes ### +- Sources wizard: fix author deletion +- Fix container export - CSV + +v0.99.21 (2017-06-14) +--------------------- +### Features ### +- OA code is now a string + +### Bug fixes ### +- Context record wizard: fix related context record association on creation + +v0.99.20 (2017-06-01) +--------------------- +### Features ### +- Add the ability to scheduled administration task inside Django admin +- Alert when PROJECT_SLUG or profile slug is set to "default" +- Operation wizard: collaborators in a specific panel +- Autocomplete: on no result return an empty list instead of an empty string + +### Bug fixes ### +- Finds: fix full CSV export columns +  v0.99.19 (2017-05-16)  ---------------------  ### Features ### diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index 91effb397..77b42b609 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -59,7 +59,8 @@ class RecordSelect(TableSelect):      label = forms.CharField(label=_(u"ID"), max_length=100)      parcel__town = get_town_field()      if settings.COUNTRY == 'fr': -        operation__code_patriarche = forms.IntegerField( +        operation__code_patriarche = forms.CharField( +            max_length=500,              widget=OAWidget,              label=_(u"Code PATRIARCHE"))      operation__year = forms.IntegerField(label=_(u"Operation's year")) @@ -366,7 +367,8 @@ class RecordSourceSelect(SourceSelect):      context_record__operation__operation_code = forms.IntegerField(          label=_(u"Numeric reference"))      if settings.COUNTRY == 'fr': -        context_record__operation__code_patriarche = forms.IntegerField( +        context_record__operation__code_patriarche = forms.CharField( +            max_length=500,              widget=OAWidget,              label="Code PATRIARCHE")      context_record__parcel__town = get_town_field( diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index 1617d6692..3ca377971 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -12,228 +12,228 @@ msgstr ""  msgid "Operation"  msgstr "" -#: forms.py:59 forms.py:141 models.py:219 models.py:568 +#: forms.py:59 forms.py:142 models.py:219 models.py:568  msgid "ID"  msgstr "" -#: forms.py:64 +#: forms.py:65  msgid "Code PATRIARCHE"  msgstr "" -#: forms.py:65 +#: forms.py:66  msgid "Operation's year"  msgstr "" -#: forms.py:67 +#: forms.py:68  msgid "Operation's number (index by year)"  msgstr "" -#: forms.py:69 +#: forms.py:70  msgid "Archaeological site"  msgstr "" -#: forms.py:75 +#: forms.py:76  msgid "Search within related operations"  msgstr "" -#: forms.py:77 forms.py:254 models.py:56 +#: forms.py:78 forms.py:255 models.py:56  msgid "Period"  msgstr "" -#: forms.py:78 +#: forms.py:79  msgid "Unit type"  msgstr "" -#: forms.py:79 +#: forms.py:80  msgid "Parcel (section/number/public domain)"  msgstr "" -#: forms.py:81 +#: forms.py:82  msgid "Search within relations"  msgstr "" -#: forms.py:111 forms.py:358 views.py:92 +#: forms.py:112 forms.py:359 views.py:92  msgid "Context record search"  msgstr "" -#: forms.py:125 +#: forms.py:126  msgid "You should at least select one context record."  msgstr "" -#: forms.py:131 +#: forms.py:132  msgid "General"  msgstr "" -#: forms.py:140 models.py:181 models.py:215 models.py:570 +#: forms.py:141 models.py:181 models.py:215 models.py:570  msgid "Parcel"  msgstr "" -#: forms.py:143 models.py:220 models.py:571 +#: forms.py:144 models.py:220 models.py:571  #: templates/ishtar/sheet_contextrecord.html:30  msgid "Description"  msgstr "" -#: forms.py:145 models.py:221 +#: forms.py:146 models.py:221  msgid "General comment"  msgstr "" -#: forms.py:148 models.py:268 +#: forms.py:149 models.py:268  msgid "Excavation technique"  msgstr "" -#: forms.py:149 models.py:225 +#: forms.py:150 models.py:225  msgid "Length (m)"  msgstr "" -#: forms.py:150 models.py:226 +#: forms.py:151 models.py:226  msgid "Width (m)"  msgstr "" -#: forms.py:151 models.py:227 +#: forms.py:152 models.py:227  msgid "Thickness (m)"  msgstr "" -#: forms.py:152 models.py:229 +#: forms.py:153 models.py:229  msgid "Diameter (m)"  msgstr "" -#: forms.py:153 models.py:230 +#: forms.py:154 models.py:230  msgid "Depth (m)"  msgstr "" -#: forms.py:155 models.py:232 +#: forms.py:156 models.py:232  msgid "Depth of appearance (m)"  msgstr "" -#: forms.py:156 forms.py:377 models.py:242 models.py:569 +#: forms.py:157 forms.py:379 models.py:242 models.py:569  msgid "Context record type"  msgstr "" -#: forms.py:159 ishtar_menu.py:48 +#: forms.py:160 ishtar_menu.py:48  msgid "Documentation"  msgstr "" -#: forms.py:162 models.py:234 +#: forms.py:163 models.py:234  msgid "Location"  msgstr "" -#: forms.py:165 +#: forms.py:166  msgid "Image"  msgstr "" -#: forms.py:166 +#: forms.py:167  #, python-format  msgid ""  "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</"  "p>"  msgstr "" -#: forms.py:243 +#: forms.py:244  msgid "This ID already exists for this operation."  msgstr "" -#: forms.py:249 forms.py:276 models.py:67 +#: forms.py:250 forms.py:277 models.py:67  msgid "Dating"  msgstr "" -#: forms.py:255 models.py:57 +#: forms.py:256 models.py:57  msgid "Start date"  msgstr "" -#: forms.py:256 models.py:58 models.py:224 +#: forms.py:257 models.py:58 models.py:224  msgid "End date"  msgstr "" -#: forms.py:257 models.py:61 +#: forms.py:258 models.py:61  msgid "Quality"  msgstr "" -#: forms.py:258 models.py:39 models.py:59 +#: forms.py:259 models.py:39 models.py:59  msgid "Dating type"  msgstr "" -#: forms.py:285 ishtar_menu.py:29 models.py:642 +#: forms.py:286 ishtar_menu.py:29 models.py:642  msgid "Context record"  msgstr "" -#: forms.py:307 +#: forms.py:308  msgid "Relations"  msgstr "" -#: forms.py:311 forms.py:319 models.py:245 +#: forms.py:312 forms.py:320 models.py:245  #: templates/ishtar/sheet_contextrecord.html:44  msgid "Interpretation"  msgstr "" -#: forms.py:315 +#: forms.py:316  msgid "Comments on dating"  msgstr "" -#: forms.py:317 models.py:244 +#: forms.py:318 models.py:244  msgid "Filling"  msgstr "" -#: forms.py:321 models.py:265 +#: forms.py:322 models.py:265  msgid "Activity"  msgstr "" -#: forms.py:323 models.py:263 +#: forms.py:324 models.py:263  msgid "Identification"  msgstr "" -#: forms.py:325 models.py:248 +#: forms.py:326 models.py:248  msgid "TAQ"  msgstr "" -#: forms.py:326 models.py:252 +#: forms.py:327 models.py:252  msgid "Estimated TAQ"  msgstr "" -#: forms.py:328 models.py:255 +#: forms.py:329 models.py:255  msgid "TPQ"  msgstr "" -#: forms.py:329 models.py:259 +#: forms.py:330 models.py:259  msgid "Estimated TPQ"  msgstr "" -#: forms.py:344 +#: forms.py:345  msgid "Operation search"  msgstr "" -#: forms.py:346 +#: forms.py:347  msgid "You should select an operation."  msgstr "" -#: forms.py:351 +#: forms.py:352  msgid "Would you like to delete this context record?"  msgstr "" -#: forms.py:360 +#: forms.py:361  msgid "You should select a context record."  msgstr "" -#: forms.py:365 +#: forms.py:366  msgid "Year of the operation"  msgstr "" -#: forms.py:367 +#: forms.py:368  msgid "Numeric reference"  msgstr "" -#: forms.py:373 +#: forms.py:375  msgid "Town of the operation"  msgstr "" -#: forms.py:375 +#: forms.py:377  msgid "Period of the context record"  msgstr "" -#: forms.py:390 +#: forms.py:392  msgid "Documentation search"  msgstr "" -#: forms.py:392 +#: forms.py:394  msgid "You should select a document."  msgstr "" @@ -514,31 +514,31 @@ msgstr ""  msgid "Can delete own Context record source"  msgstr "" -#: views.py:102 +#: views.py:105  msgid "New context record"  msgstr "" -#: views.py:113 +#: views.py:116  msgid "Context record modification"  msgstr "" -#: views.py:127 +#: views.py:130  msgid "Context record deletion"  msgstr "" -#: views.py:132 +#: views.py:135  msgid "Context record: source search"  msgstr "" -#: views.py:140 +#: views.py:143  msgid "Context record: new source"  msgstr "" -#: views.py:148 +#: views.py:151  msgid "Context record: source modification"  msgstr "" -#: views.py:163 +#: views.py:166  msgid "Context record: source deletion"  msgstr "" diff --git a/archaeological_context_records/migrations/0034_auto__chg_field_contextrecordsource_external_id.py b/archaeological_context_records/migrations/0034_auto__chg_field_contextrecordsource_external_id.py new file mode 100644 index 000000000..1c8348bbd --- /dev/null +++ b/archaeological_context_records/migrations/0034_auto__chg_field_contextrecordsource_external_id.py @@ -0,0 +1,681 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + +    def forwards(self, orm): + +        # Changing field 'ContextRecordSource.external_id' +        db.alter_column('archaeological_context_records_contextrecordsource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True)) + +    def backwards(self, orm): + +        # Changing field 'ContextRecordSource.external_id' +        db.alter_column('archaeological_context_records_contextrecordsource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True)) + +    models = { +        'archaeological_context_records.activitytype': { +            'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.contextrecord': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'}, +            'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), +            'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'depth_of_appearance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'documentations': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.DocumentationType']", 'null': 'True', 'blank': 'True'}), +            'excavation_technic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ExcavationTechnicType']", 'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', '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'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'location': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'opening_date': ('django.db.models.fields.DateField', [], {'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']"}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), +            'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), +            'related_context_records': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.ContextRecord']", 'null': 'True', 'through': "orm['archaeological_context_records.RecordRelations']", 'blank': 'True'}), +            '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.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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.FloatField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_context_records.contextrecordsource': { +            'Meta': {'object_name': 'ContextRecordSource'}, +            'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contextrecordsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_context_records.ContextRecord']"}), +            'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), +            'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) +        }, +        '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']"}), +            'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            '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': {'ordering': "('label',)", 'object_name': 'DatingQuality'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.datingtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.documentationtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'DocumentationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.excavationtechnictype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ExcavationTechnicType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.historicalcontextrecord': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalContextRecord'}, +            'activity_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'depth_of_appearance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'excavation_technic_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'identification_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'location': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'opening_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'parcel_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), +            'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), +            '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.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_context_records.identificationtype': { +            'Meta': {'ordering': "('order', 'label')", 'object_name': 'IdentificationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.recordrelations': { +            'Meta': {'object_name': 'RecordRelations'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"}), +            'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']"}), +            'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"}) +        }, +        'archaeological_context_records.recordrelationview': { +            'Meta': {'unique_together': "(('id', 'right_record'),)", 'object_name': 'RecordRelationView', 'db_table': "'record_relations'", 'managed': 'False'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.DO_NOTHING', 'to': "orm['archaeological_context_records.ContextRecord']"}), +            'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.DO_NOTHING', 'to': "orm['archaeological_context_records.RelationType']"}), +            'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.DO_NOTHING', 'to': "orm['archaeological_context_records.ContextRecord']"}) +        }, +        'archaeological_context_records.relationtype': { +            'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']", 'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_context_records.unit': { +            'Meta': {'ordering': "('order', 'label')", 'object_name': 'Unit'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.file': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), +            'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), +            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), +            'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}), +            'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), +            'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}), +            'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}), +            'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_files.filetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'FileType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.permittype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.saisinetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}), +            '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': '100'}) +        }, +        'archaeological_operations.archaeologicalsite': { +            'Meta': {'object_name': 'ArchaeologicalSite'}, +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), +            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.operation': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, +            'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}), +            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'code_patriarche': ('django.db.models.fields.TextField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'collaborators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'operation_collaborator'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Person']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), +            'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', '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'}), +            'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'finds_received': ('django.db.models.fields.NullBooleanField', [], {'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_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), +            'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), +            'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            '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', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), +            'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), +            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), +            'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), +            'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), +            'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.parcel': { +            'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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', 'null': 'True', 'blank': 'True'}), +            'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), +            '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': {'ordering': "('order',)", 'object_name': 'Period'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_operations.remaintype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_operations.reportstate': { +            'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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': {'ordering': "('author_type__order', 'person__name')", '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', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) +        }, +        'ishtar_common.authortype': { +            'Meta': {'ordering': "['order', 'label']", 'object_name': 'AuthorType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.format': { +            'Meta': {'ordering': "['label']", 'object_name': 'Format'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.import': { +            'Meta': {'object_name': 'Import'}, +            'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), +            'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), +            'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), +            'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}), +            'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', 'null': 'True', 'blank': 'True'}), +            'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), +            'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), +            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) +        }, +        'ishtar_common.importermodel': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) +        }, +        'ishtar_common.importertype': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'}, +            'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}), +            'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}), +            'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.ishtaruser': { +            'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, +            'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), +            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) +        }, +        'ishtar_common.operationtype': { +            'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), +            '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'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.organizationtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.persontype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", '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': '100'}) +        }, +        'ishtar_common.sourcetype': { +            'Meta': {'ordering': "['label']", 'object_name': 'SourceType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.state': { +            'Meta': {'ordering': "['number']", 'object_name': 'State'}, +            '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.supporttype': { +            'Meta': {'object_name': 'SupportType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.titletype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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'}) +        } +    } + +    complete_apps = ['archaeological_context_records']
\ No newline at end of file diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 883433517..6f6e4c80b 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -397,7 +397,7 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, ImageModel, OwnPerms,      def _real_label(self):          if not self.operation.code_patriarche:              return -        return settings.JOINT.join((unicode(self.operation.code_patriarche), +        return settings.JOINT.join((self.operation.code_patriarche,                                      self.label))      def _temp_label(self): diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py index df05f4898..07360f73a 100644 --- a/archaeological_context_records/tests.py +++ b/archaeological_context_records/tests.py @@ -27,13 +27,16 @@ from django.core.urlresolvers import reverse  from django.test.client import Client  from ishtar_common.models import IshtarSiteProfile, ImporterModel -from ishtar_common.tests import create_superuser, TestCase  from archaeological_operations.tests import OperationInitTest, \      ImportTest, ImportOperationTest  from archaeological_operations import models as models_ope  from archaeological_context_records import models +from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \ +    create_superuser, TestCase + +from archaeological_context_records import views  class ImportContextRecordTest(ImportTest, TestCase): @@ -527,3 +530,66 @@ class RecordRelationsTest(ContextRecordInit, TestCase):          self.assertEqual(models.RecordRelations.objects.filter(              left_record=cr_2, right_record=cr_1,              relation_type=rel_type_2).count(), 1) + + +class ContextRecordWizardCreationTest(WizardTest, ContextRecordInit, TestCase): +    fixtures = ImportOperationTest.fixtures +    url_name = 'record_creation' +    wizard_name = 'record_wizard' +    steps = views.record_creation_steps +    form_datas = [ +        FormData( +            "Create a simple context record", +            form_datas={ +                'selec-record_creation': {}, +                'general-record_creation': { +                    'label': "First" +                }, +            }, +            ignored=('datings-record_creation', +                     'interpretation-record_creation', +                     'relations-record_creation',) +        ), +        FormData( +            "Create a context record with a relation", +            form_datas={ +                'selec-record_creation': {}, +                'general-record_creation': { +                    'label': "Second" +                }, +                'relations-record_creation': [] +            }, +            ignored=('datings-record_creation', +                     'interpretation-record_creation',) +        ), +    ] + +    def pre_wizard(self): +        profile, created = IshtarSiteProfile.objects.get_or_create( +            slug='default', active=True) +        profile.context_record = True +        profile.save() + +        ope = self.get_default_operation() +        parcel = self.get_default_parcel() +        for form_data in self.form_datas: +            form_data.form_datas['selec-record_creation']['operation_id'] = \ +                ope.pk +            form_data.form_datas['general-record_creation']['parcel'] = \ +                parcel.pk + +        self.related_cr = self.create_context_record(data={'operation': ope})[0] +        self.form_datas[1].form_datas['relations-record_creation'].append( +            {'right_record': self.related_cr.pk, +             'relation_type': models.RelationType.objects.create( +                 label="Test").pk} +        ) + +        self.cr_nb = models.ContextRecord.objects.count() +        super(ContextRecordWizardCreationTest, self).pre_wizard() + +    def post_wizard(self): +        self.assertEqual(models.ContextRecord.objects.count(), +                         self.cr_nb + 2) +        self.assertEqual(self.related_cr.left_relations.count(), +                         1) diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 1f5b46f63..3bfe544be 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -92,13 +92,16 @@ record_search_wizard = SearchWizard.as_view([      label=_(u"Context record search"),      url_name='record_search',) -record_creation_wizard = RecordWizard.as_view([ +record_creation_steps = [      ('selec-record_creation', OperationRecordFormSelection),      ('general-record_creation', RecordFormGeneral),      ('datings-record_creation', DatingFormSet),      ('interpretation-record_creation', RecordFormInterpretation),      ('relations-record_creation', RecordRelationsFormSet), -    ('final-record_creation', FinalForm)], +    ('final-record_creation', FinalForm) +] + +record_creation_wizard = RecordWizard.as_view(record_creation_steps,      label=_(u"New context record"),      url_name='record_creation',) diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index f3b087244..121d3d48a 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -20,7 +20,7 @@ msgid "Find"  msgstr ""  #: forms.py:142 forms.py:347 forms.py:629 models_finds.py:151 -#: models_finds.py:635 +#: models_finds.py:635 templates/ishtar/sheet_find.html:17  msgid "Free ID"  msgstr "" @@ -73,15 +73,15 @@ msgstr ""  msgid "Point of topographic reference"  msgstr "" -#: forms.py:176 models_finds.py:171 templates/ishtar/sheet_find.html:209 +#: forms.py:176 models_finds.py:171 templates/ishtar/sheet_find.html:208  msgid "X"  msgstr "" -#: forms.py:177 models_finds.py:172 templates/ishtar/sheet_find.html:210 +#: forms.py:177 models_finds.py:172 templates/ishtar/sheet_find.html:209  msgid "Y"  msgstr "" -#: forms.py:178 models_finds.py:173 templates/ishtar/sheet_find.html:211 +#: forms.py:178 models_finds.py:173 templates/ishtar/sheet_find.html:210  msgid "Z"  msgstr "" @@ -196,13 +196,13 @@ msgstr ""  #: forms.py:316 forms_treatments.py:138 forms_treatments.py:283  #: forms_treatments.py:481 models_finds.py:1186 models_treatments.py:130 -#: models_treatments.py:309 templates/ishtar/sheet_find.html:95 -#: templates/ishtar/sheet_find.html:137 +#: models_treatments.py:309 templates/ishtar/sheet_find.html:94 +#: templates/ishtar/sheet_find.html:136  msgid "Start date"  msgstr ""  #: forms.py:318 models_finds.py:1187 models_treatments.py:310 -#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:138 +#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:137  msgid "End date"  msgstr "" @@ -357,7 +357,7 @@ msgid "Basket"  msgstr ""  #: forms_treatments.py:52 forms_treatments.py:92 models_treatments.py:99 -#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:131 +#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:130  msgid "Label"  msgstr "" @@ -387,7 +387,7 @@ msgid "Base treatment"  msgstr ""  #: forms_treatments.py:103 models_treatments.py:93 models_treatments.py:112 -#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:133 +#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:132  msgid "State"  msgstr "" @@ -560,8 +560,8 @@ msgid "Internal ref."  msgstr ""  #: forms_treatments.py:403 forms_treatments.py:460 models_treatments.py:92 -#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:132 -#: templates/ishtar/sheet_find.html:232 +#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:131 +#: templates/ishtar/sheet_find.html:231  msgid "Type"  msgstr "" @@ -666,8 +666,8 @@ msgstr ""  msgid "Administrative act"  msgstr "" -#: ishtar_menu.py:151 ishtar_menu.py:233 templates/ishtar/sheet_find.html:226 -#: templates/ishtar/sheet_find.html:228 +#: ishtar_menu.py:151 ishtar_menu.py:233 templates/ishtar/sheet_find.html:225 +#: templates/ishtar/sheet_find.html:227  msgid "Documents"  msgstr "" @@ -839,11 +839,11 @@ msgstr ""  msgid "Checked and correct"  msgstr "" -#: models_finds.py:539 +#: models_finds.py:539 templates/ishtar/sheet_find.html:19  msgid "Base find - Short ID"  msgstr "" -#: models_finds.py:540 +#: models_finds.py:540 templates/ishtar/sheet_find.html:18  msgid "Base find - Complete ID"  msgstr "" @@ -888,8 +888,8 @@ msgid "Base find - Discovery date"  msgstr ""  #: models_finds.py:556 models_finds.py:662 models_treatments.py:132 -#: models_treatments.py:312 templates/ishtar/sheet_find.html:94 -#: templates/ishtar/sheet_find.html:136 +#: models_treatments.py:312 templates/ishtar/sheet_find.html:93 +#: templates/ishtar/sheet_find.html:135  msgid "Container"  msgstr "" @@ -905,11 +905,11 @@ msgstr ""  msgid "Weight unit"  msgstr "" -#: models_finds.py:655 templates/ishtar/sheet_find.html:82 +#: models_finds.py:655 templates/ishtar/sheet_find.html:81  msgid "Upstream treatment"  msgstr "" -#: models_finds.py:658 templates/ishtar/sheet_find.html:124 +#: models_finds.py:658 templates/ishtar/sheet_find.html:123  msgid "Downstream treatment"  msgstr "" @@ -1049,7 +1049,7 @@ msgstr ""  msgid "Target a basket"  msgstr "" -#: models_treatments.py:149 templates/ishtar/sheet_find.html:79 +#: models_treatments.py:149 templates/ishtar/sheet_find.html:78  #: templates/ishtar/sheet_treatmentfile.html:46  msgid "Treatments"  msgstr "" @@ -1078,8 +1078,8 @@ msgstr ""  msgid "TREATMENT"  msgstr "" -#: models_treatments.py:313 templates/ishtar/sheet_find.html:93 -#: templates/ishtar/sheet_find.html:135 +#: models_treatments.py:313 templates/ishtar/sheet_find.html:92 +#: templates/ishtar/sheet_find.html:134  msgid "Doer"  msgstr "" @@ -1329,55 +1329,59 @@ msgid ""  "the find."  msgstr "" -#: templates/ishtar/sheet_find.html:29 +#: templates/ishtar/sheet_find.html:20 +msgid "Find - Administrative ID" +msgstr "" + +#: templates/ishtar/sheet_find.html:28  msgid "Administrative index"  msgstr "" -#: templates/ishtar/sheet_find.html:71 +#: templates/ishtar/sheet_find.html:70  msgid "Warehouse"  msgstr "" -#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:130 +#: templates/ishtar/sheet_find.html:87 templates/ishtar/sheet_find.html:129  msgid "Year - index"  msgstr "" -#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:134 +#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:133  msgid "Related finds (max. 15 displayed)"  msgstr "" -#: templates/ishtar/sheet_find.html:120 +#: templates/ishtar/sheet_find.html:119  msgid "Export as CSV"  msgstr "" -#: templates/ishtar/sheet_find.html:120 templates/ishtar/sheet_find.html:163 +#: templates/ishtar/sheet_find.html:119 templates/ishtar/sheet_find.html:162  msgid "CSV"  msgstr "" -#: templates/ishtar/sheet_find.html:168 +#: templates/ishtar/sheet_find.html:167  msgid "Associated base finds"  msgstr "" -#: templates/ishtar/sheet_find.html:175 +#: templates/ishtar/sheet_find.html:174  msgid "Internal ID"  msgstr "" -#: templates/ishtar/sheet_find.html:207 +#: templates/ishtar/sheet_find.html:206  msgid "Coordinates"  msgstr "" -#: templates/ishtar/sheet_find.html:214 +#: templates/ishtar/sheet_find.html:213  msgid "SRID"  msgstr "" -#: templates/ishtar/sheet_find.html:231 +#: templates/ishtar/sheet_find.html:230  msgid "Title"  msgstr "" -#: templates/ishtar/sheet_find.html:233 +#: templates/ishtar/sheet_find.html:232  msgid "Authors"  msgstr "" -#: templates/ishtar/sheet_find.html:234 +#: templates/ishtar/sheet_find.html:233  msgid "Link"  msgstr "" diff --git a/archaeological_finds/migrations/0086_auto__chg_field_treatmentsource_external_id__chg_field_treatmentfileso.py b/archaeological_finds/migrations/0086_auto__chg_field_treatmentsource_external_id__chg_field_treatmentfileso.py new file mode 100644 index 000000000..32789a1ee --- /dev/null +++ b/archaeological_finds/migrations/0086_auto__chg_field_treatmentsource_external_id__chg_field_treatmentfileso.py @@ -0,0 +1,1251 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + +    def forwards(self, orm): + +        # Changing field 'TreatmentSource.external_id' +        db.alter_column('archaeological_finds_treatmentsource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True)) + +        # Changing field 'TreatmentFileSource.external_id' +        db.alter_column('archaeological_finds_treatmentfilesource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True)) + +        # Changing field 'FindSource.external_id' +        db.alter_column('archaeological_finds_findsource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True)) + +    def backwards(self, orm): + +        # Changing field 'TreatmentSource.external_id' +        db.alter_column('archaeological_finds_treatmentsource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True)) + +        # Changing field 'TreatmentFileSource.external_id' +        db.alter_column('archaeological_finds_treatmentfilesource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True)) + +        # Changing field 'FindSource.external_id' +        db.alter_column('archaeological_finds_findsource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True)) + +    models = { +        'archaeological_context_records.activitytype': { +            'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.contextrecord': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'}, +            'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), +            'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'depth_of_appearance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'documentations': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.DocumentationType']", 'null': 'True', 'blank': 'True'}), +            'excavation_technic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ExcavationTechnicType']", 'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', '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'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'location': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'opening_date': ('django.db.models.fields.DateField', [], {'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']"}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), +            'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), +            'related_context_records': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.ContextRecord']", 'null': 'True', 'through': "orm['archaeological_context_records.RecordRelations']", 'blank': 'True'}), +            '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.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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.FloatField', [], {'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']"}), +            'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            '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': {'ordering': "('label',)", 'object_name': 'DatingQuality'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.datingtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.documentationtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'DocumentationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.excavationtechnictype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ExcavationTechnicType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.identificationtype': { +            'Meta': {'ordering': "('order', 'label')", 'object_name': 'IdentificationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_context_records.recordrelations': { +            'Meta': {'object_name': 'RecordRelations'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"}), +            'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']"}), +            'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"}) +        }, +        'archaeological_context_records.relationtype': { +            'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']", 'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_context_records.unit': { +            'Meta': {'ordering': "('order', 'label')", 'object_name': 'Unit'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.file': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), +            'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), +            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), +            'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}), +            'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), +            'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}), +            'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}), +            'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_files.filetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'FileType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.permittype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.saisinetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}), +            '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': '100'}) +        }, +        'archaeological_finds.basefind': { +            'Meta': {'object_name': 'BaseFind'}, +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'batch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.BatchType']", 'null': 'True', 'blank': 'True'}), +            'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'base_finds'", 'to': "orm['archaeological_context_records.ContextRecord']"}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'estimated_error_x': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'estimated_error_y': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'estimated_error_z': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_basefind'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'label': ('django.db.models.fields.TextField', [], {}), +            'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), +            'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), +            'point_2d': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), +            'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), +            'spatial_reference_system': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SpatialReferenceSystem']", 'null': 'True', 'blank': 'True'}), +            'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), +            'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), +            'x': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'y': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'z': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_finds.batchtype': { +            'Meta': {'ordering': "('order',)", 'object_name': 'BatchType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '10'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_finds.conservatorystate': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ConservatoryState'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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.ConservatoryState']", 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_finds.find': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'Find'}, +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), +            'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), +            'collection': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['archaeological_warehouse.Collection']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'conservatory_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), +            'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['archaeological_warehouse.Container']"}), +            'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'datings': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_context_records.Dating']"}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['archaeological_finds.Treatment']"}), +            'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_find'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'integrities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.IntegrityType']"}), +            'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.TextField', [], {}), +            'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'material_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.MaterialType']"}), +            'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'object_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.ObjectType']"}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'preservation_to_considers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.PreservationType']"}), +            'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'remarkabilities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.RemarkabilityType']"}), +            'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', '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'}), +            'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), +            'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_finds.findbasket': { +            'Meta': {'unique_together': "(('label', 'user'),)", 'object_name': 'FindBasket'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'basket'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['archaeological_finds.Find']"}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), +            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_finds.finddownstreamtreatments': { +            'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindDownstreamTreatments', 'db_table': "'find_downtreatments'", 'managed': 'False'}, +            'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'finddownstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), +            'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), +            'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) +        }, +        'archaeological_finds.findsource': { +            'Meta': {'object_name': 'FindSource'}, +            'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'findsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Find']"}), +            'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), +            'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) +        }, +        'archaeological_finds.findtreatments': { +            'Meta': {'ordering': "('find', 'upstream', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindTreatments', 'db_table': "'find_treatments'", 'managed': 'False'}, +            'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), +            'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), +            'treatment_nb': ('django.db.models.fields.IntegerField', [], {}), +            'upstream': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) +        }, +        'archaeological_finds.findupstreamtreatments': { +            'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindUpstreamTreatments', 'db_table': "'find_uptreatments'", 'managed': 'False'}, +            'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findupstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), +            'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), +            'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) +        }, +        'archaeological_finds.historicalbasefind': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'}, +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'batch_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'context_record_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'estimated_error_x': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'estimated_error_y': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'estimated_error_z': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'label': ('django.db.models.fields.TextField', [], {}), +            'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), +            'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), +            'point_2d': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), +            'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), +            'spatial_reference_system_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), +            'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), +            'x': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'y': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'z': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_finds.historicalfind': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'}, +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), +            'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), +            'collection_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'conservatory_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.TextField', [], {}), +            'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            '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'}), +            'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), +            'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_finds.historicaltreatment': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatment'}, +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            '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'}), +            'estimated_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'insurance_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'organization_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'person_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'quoted_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'realized_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'treatment_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_finds.historicaltreatmentfile': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatmentFile'}, +            'applicant_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'applicant_organisation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'cached_label': ('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', 'null': 'True', 'blank': 'True'}), +            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_finds.integritytype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'IntegrityType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_finds.materialtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'MaterialType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            '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', [], {'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_finds.objecttype': { +            'Meta': {'ordering': "('parent__label', 'label')", 'object_name': 'ObjectType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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.ObjectType']", 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_finds.preservationtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PreservationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_property'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['ishtar_common.Person']"}), +            'start_date': ('django.db.models.fields.DateField', [], {}) +        }, +        'archaeological_finds.remarkabilitytype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'RemarkabilityType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatment': { +            'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            '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'}), +            'estimated_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), +            'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'insurance_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), +            'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'quoted_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'realized_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'treatment_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentState']", 'null': 'True', 'blank': 'True'}), +            'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_finds.treatmentfile': { +            'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'}, +            'applicant': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'applicant_organisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'cached_label': ('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', 'null': 'True', 'blank': 'True'}), +            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_finds.treatmentfilesource': { +            'Meta': {'object_name': 'TreatmentFileSource'}, +            'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'treatmentfilesource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), +            'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), +            'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.TreatmentFile']"}) +        }, +        'archaeological_finds.treatmentfiletype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatmentsource': { +            'Meta': {'object_name': 'TreatmentSource'}, +            'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'treatmentsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), +            'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), +            'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"}) +        }, +        'archaeological_finds.treatmentstate': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentState'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatmenttype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), +            'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']", 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), +            'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) +        }, +        'archaeological_operations.acttype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, +            'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '2'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_operations.administrativeact': { +            'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, +            'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            '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']"}), +            'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            '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', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), +            'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.archaeologicalsite': { +            'Meta': {'object_name': 'ArchaeologicalSite'}, +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), +            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.operation': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, +            'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}), +            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'code_patriarche': ('django.db.models.fields.TextField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'collaborators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'operation_collaborator'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Person']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), +            'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', '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'}), +            'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'finds_received': ('django.db.models.fields.NullBooleanField', [], {'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_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), +            'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), +            'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            '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', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), +            'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), +            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), +            'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), +            'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), +            'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.parcel': { +            'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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', 'null': 'True', 'blank': 'True'}), +            'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), +            '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': {'ordering': "('order',)", 'object_name': 'Period'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_operations.remaintype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_operations.reportstate': { +            'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_warehouse.collection': { +            'Meta': {'ordering': "('name',)", 'object_name': 'Collection'}, +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_collection'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'collections'", 'to': "orm['archaeological_warehouse.Warehouse']"}) +        }, +        'archaeological_warehouse.container': { +            'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('index', 'location'),)", 'object_name': 'Container'}, +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}), +            'responsible': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_warehouse.containertype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}), +            'volume': ('django.db.models.fields.FloatField', [], {'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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) +        }, +        'archaeological_warehouse.warehousedivision': { +            'Meta': {'object_name': 'WarehouseDivision'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_warehouse.warehousedivisionlink': { +            'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, +            'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), +            'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) +        }, +        'archaeological_warehouse.warehousetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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': {'ordering': "('author_type__order', 'person__name')", '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', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) +        }, +        'ishtar_common.authortype': { +            'Meta': {'ordering': "['order', 'label']", 'object_name': 'AuthorType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.documenttemplate': { +            'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, +            'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) +        }, +        'ishtar_common.format': { +            'Meta': {'ordering': "['label']", 'object_name': 'Format'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.import': { +            'Meta': {'object_name': 'Import'}, +            'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), +            'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), +            'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), +            'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}), +            'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', 'null': 'True', 'blank': 'True'}), +            'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), +            'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), +            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) +        }, +        'ishtar_common.importermodel': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) +        }, +        'ishtar_common.importertype': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'}, +            'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}), +            'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}), +            'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.ishtaruser': { +            'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, +            'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), +            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) +        }, +        'ishtar_common.operationtype': { +            'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), +            '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'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.organizationtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.persontype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", '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': '100'}) +        }, +        'ishtar_common.sourcetype': { +            'Meta': {'ordering': "['label']", 'object_name': 'SourceType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.spatialreferencesystem': { +            'Meta': {'ordering': "('label',)", 'object_name': 'SpatialReferenceSystem'}, +            'auth_name': ('django.db.models.fields.CharField', [], {'default': "'EPSG'", 'max_length': '256'}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '10'}), +            'srid': ('django.db.models.fields.IntegerField', [], {}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'ishtar_common.state': { +            'Meta': {'ordering': "['number']", 'object_name': 'State'}, +            '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.supporttype': { +            'Meta': {'object_name': 'SupportType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.titletype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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'}) +        } +    } + +    complete_apps = ['archaeological_finds']
\ No newline at end of file diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 632df91f5..aa79c2b32 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -247,7 +247,7 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, OwnPerms):          c_id = []          if ope.code_patriarche:              c_id.append(settings.ISHTAR_OPE_PREFIX + -                        unicode(ope.code_patriarche)) +                        ope.code_patriarche)          elif ope.year and ope.operation_code:              c_id.append(                  settings.ISHTAR_DEF_OPE_PREFIX + @@ -294,8 +294,8 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, OwnPerms):          find = self.get_last_find()          finds = [find and find.material_type.code or '']          ope = self.context_record.operation -        finds += [unicode(ope.code_patriarche) or -                  (unicode(ope.year) + "-" + unicode(ope.operation_code))] +        finds += [ope.code_patriarche or +                  (unicode(ope.year) + "-" + ope.operation_code)]          finds += [self.context_record.label, unicode(self.material_index)]          return settings.JOINT.join(finds) @@ -307,7 +307,7 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, OwnPerms):          find = self.get_last_find()          lbl = find.label or self.label          return settings.JOINT.join( -            [unicode(it) for it in ( +            [it for it in (                  self.context_record.operation.code_patriarche,                  self.context_record.label, lbl) if it]) diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html index 1604e2018..6187a300f 100644 --- a/archaeological_finds/templates/ishtar/sheet_find.html +++ b/archaeological_finds/templates/ishtar/sheet_find.html @@ -13,11 +13,10 @@    {% trans "This sheet has a downstream treatment: it is related to an old version of the find." %}</p>  {% endif %} -<p class="window-refs">{{ item.label|default:"" }}</p> -<p class='window-refs'>{% for base_find in item.base_finds.all %}{% if forloop.counter0 %} – {% endif %}{{base_find.complete_id}}{% endfor %}</p> -<p class='window-refs'>{% for base_find in item.base_finds.all %}{% if forloop.counter0 %} – {% endif %}{{base_find.short_id}}{% endfor %}</p> -<p class="window-refs">{{ item.administrative_index|default:"" }}</p> -<p class="window-refs">{{ item.contextrecord|default:"" }}</p> +<p class="window-refs" title="{% trans 'Free ID' %}">{{ item.label|default:"" }}</p> +<p class='window-refs' title="{% trans 'Base find - Complete ID' %}">{% for base_find in item.base_finds.all %}{% if forloop.counter0 %} – {% endif %}{{base_find.complete_id}}{% endfor %}</p> +<p class='window-refs' title="{% trans 'Base find - Short ID' %}">{% for base_find in item.base_finds.all %}{% if forloop.counter0 %} – {% endif %}{{base_find.short_id}}{% endfor %}</p> +<p class="window-refs" title="{% trans 'Find - Administrative ID' %}">{{ item.administrative_index|default:"" }}</p>  {% include "ishtar/blocks/sheet_external_id.html" %} diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 32b37e4c3..529a0c2fb 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -416,7 +416,9 @@ class RecordRelationsForm(ManageOldType, forms.Form):                  cleaned_data.get('right_record', None)):              raise forms.ValidationError(                  _(u"You should select a relation type.")) -        if str(cleaned_data.get('right_record')) == str(self.left_record.pk): +        if self.left_record and \ +                str(cleaned_data.get('right_record')) == str( +                    self.left_record.pk):              raise forms.ValidationError(                  _(u"An operation cannot be related to herself."))          return cleaned_data @@ -481,7 +483,8 @@ class OperationSelect(TableSelect):      year = forms.IntegerField(label=_("Year"))      operation_code = forms.IntegerField(label=_(u"Numeric reference"))      if settings.COUNTRY == 'fr': -        code_patriarche = forms.IntegerField( +        code_patriarche = forms.CharField( +            max_length=500,              widget=OAWidget,              label="Code PATRIARCHE")      towns = get_town_field() @@ -769,9 +772,10 @@ class OperationFormGeneral(ManageOldType, forms.Form):                           }      pk = forms.IntegerField(required=False, widget=forms.HiddenInput)      if settings.COUNTRY == 'fr': -        code_patriarche = forms.IntegerField(label=u"Code PATRIARCHE", -                                             widget=OAWidget, -                                             required=False) +        code_patriarche = forms.CharField(label=u"Code PATRIARCHE", +                                          max_length=500, +                                          widget=OAWidget, +                                          required=False)      common_name = forms.CharField(label=_(u"Generic name"), required=False,                                    max_length=500, widget=forms.Textarea)      address = forms.CharField(label=_(u"Address / Locality"), required=False, @@ -934,7 +938,7 @@ class OperationFormGeneral(ManageOldType, forms.Form):              if 'pk' in cleaned_data and cleaned_data['pk']:                  ops = ops.exclude(pk=cleaned_data['pk'])              if ops.count(): -                msg = u"Ce code Patriarche a déjà été affecté à une "\ +                msg = u"Ce code OA a déjà été affecté à une "\                        u"autre opération"                  raise forms.ValidationError(msg)          # manage unique operation ID @@ -1280,7 +1284,8 @@ class OperationSourceSelect(SourceSelect):      operation__operation_code = forms.IntegerField(          label=_(u"Numeric reference"))      if settings.COUNTRY == 'fr': -        operation__code_patriarche = forms.IntegerField( +        operation__code_patriarche = forms.CharField( +            max_length=500,              widget=OAWidget,              label="Code PATRIARCHE")      operation__towns = get_town_field(label=_(u"Operation's town")) @@ -1312,7 +1317,8 @@ class AdministrativeActOpeSelect(TableSelect):      if settings.COUNTRY == 'fr':          ref_sra = forms.CharField(label=u"Autre référence",                                    max_length=15) -        operation__code_patriarche = forms.IntegerField( +        operation__code_patriarche = forms.CharField( +            max_length=500,              widget=OAWidget,              label="Code PATRIARCHE")      act_type = forms.ChoiceField(label=_("Act type"), choices=[]) diff --git a/archaeological_operations/import_from_csv.py b/archaeological_operations/import_from_csv.py index 999ada690..5155e9fc6 100644 --- a/archaeological_operations/import_from_csv.py +++ b/archaeological_operations/import_from_csv.py @@ -79,7 +79,7 @@ DEFAULT_OPE_COLS = [   (('excavation_end_date',), parse_date),   (('year',), parse_year),   [], # identification - (('code_patriarche',), int), + (('code_patriarche',), unicode),   [], # X degré   [], # Y degré   [], # X saisi ? diff --git a/archaeological_operations/import_from_dbf.py b/archaeological_operations/import_from_dbf.py index fa452d605..1f6b041d2 100644 --- a/archaeological_operations/import_from_dbf.py +++ b/archaeological_operations/import_from_dbf.py @@ -119,7 +119,7 @@ PATRIARCHE_DBF_OPE_COLS = [      Column(('end_date',), parse_date),      Column(('year',), int, []),      [],  # 'identifica C(254)' -    Column(('code_patriarche',), int), +    Column(('code_patriarche',), unicode),      [],  # 'x_degre N(16,6)'),      [],  # 'y_degre N(16,6)'),      [],  # 'x_saisi C(12)'), diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index f8ba1f3a0..60d14f5a4 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -10,13 +10,13 @@  msgid ""  msgstr "" -#: forms.py:69 forms.py:371 forms.py:1055 forms.py:1077 forms.py:1081 -#: models.py:1252 templates/ishtar/sheet_operation.html:153 +#: forms.py:69 forms.py:371 forms.py:1059 forms.py:1081 forms.py:1085 +#: models.py:1254 templates/ishtar/sheet_operation.html:153  #: templates/ishtar/blocks/window_tables/parcels.html:10  msgid "Parcels"  msgstr "" -#: forms.py:72 forms.py:205 forms.py:1031 models.py:1238 +#: forms.py:72 forms.py:205 forms.py:1035 models.py:1240  #: templates/ishtar/blocks/window_tables/parcels.html:7  #: templates/ishtar/dashboards/dashboard_operation.html:432  #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -25,22 +25,22 @@ msgstr ""  msgid "Town"  msgstr "" -#: forms.py:74 forms.py:481 forms.py:781 forms.py:1301 models.py:276 -#: models.py:1044 models.py:1236 +#: forms.py:74 forms.py:483 forms.py:785 forms.py:1306 models.py:276 +#: models.py:1046 models.py:1238  #: templates/ishtar/blocks/window_tables/parcels.html:8  msgid "Year"  msgstr "" -#: forms.py:77 models.py:1239 +#: forms.py:77 models.py:1241  #: templates/ishtar/blocks/window_tables/parcels.html:9  msgid "Section"  msgstr "" -#: forms.py:80 models.py:1241 +#: forms.py:80 models.py:1243  msgid "Parcel number"  msgstr "" -#: forms.py:82 models.py:1243 models.py:1260 models.py:1309 +#: forms.py:82 models.py:1245 models.py:1262 models.py:1311  msgid "Public domain"  msgstr "" @@ -76,8 +76,8 @@ msgstr ""  msgid "Relation type"  msgstr "" -#: forms.py:383 ishtar_menu.py:30 models.py:372 models.py:847 models.py:882 -#: models.py:922 models.py:1026 models.py:1235 wizards.py:352 wizards.py:363 +#: forms.py:383 ishtar_menu.py:30 models.py:372 models.py:849 models.py:884 +#: models.py:924 models.py:1028 models.py:1237 wizards.py:352 wizards.py:363  #: templates/ishtar/sheet_operation.html:4  msgid "Operation"  msgstr "" @@ -86,7 +86,7 @@ msgstr ""  msgid ":"  msgstr "" -#: forms.py:414 forms.py:633 forms.py:1266 +#: forms.py:414 forms.py:636 forms.py:1270  msgid "You should select an operation."  msgstr "" @@ -94,31 +94,31 @@ msgstr ""  msgid "You should select a relation type."  msgstr "" -#: forms.py:421 +#: forms.py:423  msgid "An operation cannot be related to herself."  msgstr "" -#: forms.py:451 +#: forms.py:453  msgid "Current relations"  msgstr "" -#: forms.py:453 +#: forms.py:455  msgid "Deleted relations"  msgstr "" -#: forms.py:477 templates/ishtar/sheet_operation.html:86 +#: forms.py:479 templates/ishtar/sheet_operation.html:86  msgid "Relations"  msgstr "" -#: forms.py:482 forms.py:1272 models.py:277 +#: forms.py:484 forms.py:1276 models.py:277  msgid "Numeric reference"  msgstr "" -#: forms.py:488 forms.py:1312 +#: forms.py:491 forms.py:1318  msgid "Parcel (section/number/public domain)"  msgstr "" -#: forms.py:491 forms.py:1315 models.py:848 +#: forms.py:494 forms.py:1321 models.py:850  #: templates/ishtar/dashboards/dashboard_operation.html:390  #: templates/ishtar/dashboards/dashboard_operation.html:411  #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -127,458 +127,458 @@ msgstr ""  msgid "Department"  msgstr "" -#: forms.py:492 forms.py:1143 models.py:86 +#: forms.py:495 forms.py:1147 models.py:86  #: templates/ishtar/sheet_operation.html:22  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8  msgid "Name"  msgstr "" -#: forms.py:494 forms.py:777 models.py:338 +#: forms.py:497 forms.py:781 models.py:338  msgid "Address / Locality"  msgstr "" -#: forms.py:496 forms.py:700 forms.py:779 forms.py:1278 models.py:284 +#: forms.py:499 forms.py:703 forms.py:783 forms.py:1283 models.py:284  msgid "Operation type"  msgstr "" -#: forms.py:498 +#: forms.py:501  msgid "Is open?"  msgstr "" -#: forms.py:506 forms.py:811 models.py:269 +#: forms.py:509 forms.py:815 models.py:269  msgid "In charge"  msgstr "" -#: forms.py:513 models.py:1020 +#: forms.py:516 models.py:1022  msgid "Scientist in charge"  msgstr "" -#: forms.py:515 forms.py:702 forms.py:801 models.py:267 +#: forms.py:518 forms.py:705 forms.py:805 models.py:267  msgid "Operator"  msgstr "" -#: forms.py:524 forms.py:1148 models.py:90 models.py:286 +#: forms.py:527 forms.py:1152 models.py:90 models.py:286  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10  msgid "Remains"  msgstr "" -#: forms.py:525 forms.py:1126 forms.py:1145 models.py:88 models.py:292 +#: forms.py:528 forms.py:1130 forms.py:1149 models.py:88 models.py:292  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9  msgid "Periods"  msgstr "" -#: forms.py:526 +#: forms.py:529  msgid "Started before"  msgstr "" -#: forms.py:528 +#: forms.py:531  msgid "Started after"  msgstr "" -#: forms.py:530 +#: forms.py:533  msgid "Ended before"  msgstr "" -#: forms.py:532 +#: forms.py:535  msgid "Ended after"  msgstr "" -#: forms.py:535 +#: forms.py:538  msgid "Search within relations"  msgstr "" -#: forms.py:537 forms.py:863 +#: forms.py:540 forms.py:867  msgid "Comment"  msgstr "" -#: forms.py:538 +#: forms.py:541  msgid "Abstract (full text search)"  msgstr "" -#: forms.py:540 forms.py:866 models.py:341 +#: forms.py:543 forms.py:870 models.py:341  msgid "Comment about scientific documentation"  msgstr "" -#: forms.py:541 forms.py:868 models.py:353 +#: forms.py:544 forms.py:872 models.py:353  msgid "Record quality"  msgstr "" -#: forms.py:542 forms.py:833 models.py:304 +#: forms.py:545 forms.py:837 models.py:304  msgid "Report processing"  msgstr "" -#: forms.py:544 forms.py:871 models.py:348 +#: forms.py:547 forms.py:875 models.py:348  msgid "Virtual operation"  msgstr "" -#: forms.py:546 forms.py:1188 forms.py:1192 models.py:94 +#: forms.py:549 forms.py:1192 forms.py:1196 models.py:94  msgid "Archaeological site"  msgstr "" -#: forms.py:552 forms.py:1319 +#: forms.py:555 forms.py:1325  msgid "Created by"  msgstr "" -#: forms.py:558 forms.py:1325 +#: forms.py:561 forms.py:1331  msgid "Modified by"  msgstr "" -#: forms.py:565 +#: forms.py:568  msgid "Documentation deadline before"  msgstr "" -#: forms.py:567 +#: forms.py:570  msgid "Documentation deadline after"  msgstr "" -#: forms.py:569 forms.py:856 models.py:360 +#: forms.py:572 forms.py:860 models.py:360  msgid "Documentation received"  msgstr "" -#: forms.py:571 +#: forms.py:574  msgid "Finds deadline before"  msgstr "" -#: forms.py:573 +#: forms.py:576  msgid "Finds deadline after"  msgstr "" -#: forms.py:575 forms.py:861 models.py:364 +#: forms.py:578 forms.py:865 models.py:364  msgid "Finds received"  msgstr "" -#: forms.py:620 forms.py:1264 views.py:168 +#: forms.py:623 forms.py:1268 views.py:168  msgid "Operation search"  msgstr "" -#: forms.py:664 +#: forms.py:667  msgid "Associated file"  msgstr "" -#: forms.py:668 forms.py:967 models.py:520 models.py:921 models.py:1031 +#: forms.py:671 forms.py:971 models.py:520 models.py:923 models.py:1033  #: wizards.py:80  msgid "Archaeological file"  msgstr "" -#: forms.py:675 forms.py:677 models.py:355 +#: forms.py:678 forms.py:680 models.py:355  msgid "Abstract"  msgstr "" -#: forms.py:680 +#: forms.py:683  msgid "months"  msgstr "" -#: forms.py:680 +#: forms.py:683  msgid "years"  msgstr "" -#: forms.py:682 models.py:253 +#: forms.py:685 models.py:253  msgid "Creation date"  msgstr "" -#: forms.py:683 +#: forms.py:686  msgid "Start of field work"  msgstr "" -#: forms.py:685 +#: forms.py:688  msgid "All"  msgstr "" -#: forms.py:686 +#: forms.py:689  msgid "Preventive"  msgstr "" -#: forms.py:687 +#: forms.py:690  msgid "Research"  msgstr "" -#: forms.py:691 +#: forms.py:694  msgid "Slicing"  msgstr "" -#: forms.py:694 +#: forms.py:697  msgid "Department detail"  msgstr "" -#: forms.py:696 +#: forms.py:699  msgid "Date get from"  msgstr "" -#: forms.py:698 +#: forms.py:701  msgid "Preventive/Research"  msgstr "" -#: forms.py:704 +#: forms.py:707  msgid "Date after"  msgstr "" -#: forms.py:706 +#: forms.py:709  msgid "Date before"  msgstr "" -#: forms.py:708 +#: forms.py:711  msgid "With reports"  msgstr "" -#: forms.py:709 +#: forms.py:712  msgid "With finds"  msgstr "" -#: forms.py:761 forms.py:1373 templates/ishtar/sheet_administrativeact.html:20 +#: forms.py:764 forms.py:1379 templates/ishtar/sheet_administrativeact.html:20  #: templates/ishtar/sheet_operation.html:26  msgid "General"  msgstr "" -#: forms.py:775 models.py:337 +#: forms.py:779 models.py:337  msgid "Generic name"  msgstr "" -#: forms.py:786 models.py:306 +#: forms.py:790 models.py:306  msgid "Old code"  msgstr "" -#: forms.py:789 +#: forms.py:793  msgid "Head scientist"  msgstr "" -#: forms.py:808 models.py:336 +#: forms.py:812 models.py:336  msgid "Operator reference"  msgstr "" -#: forms.py:822 +#: forms.py:826  msgid "Total surface (m2)"  msgstr "" -#: forms.py:826 models.py:54 models.py:256 models.py:1448 +#: forms.py:830 models.py:54 models.py:256 models.py:1450  msgid "Start date"  msgstr "" -#: forms.py:828 models.py:258 +#: forms.py:832 models.py:258  msgid "Excavation end date"  msgstr "" -#: forms.py:831 models.py:259 +#: forms.py:835 models.py:259  msgid "Report delivery date"  msgstr "" -#: forms.py:853 models.py:357 +#: forms.py:857 models.py:357  msgid "Deadline for submission of the documentation"  msgstr "" -#: forms.py:858 models.py:362 +#: forms.py:862 models.py:362  msgid "Deadline for submission of the finds"  msgstr "" -#: forms.py:873 +#: forms.py:877  msgid "Image"  msgstr "" -#: forms.py:874 +#: forms.py:878  #, python-format  msgid ""  "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</"  "p>"  msgstr "" -#: forms.py:920 +#: forms.py:924  msgid ""  "If you want to set an excavation end date you have to provide a start date."  msgstr "" -#: forms.py:925 +#: forms.py:929  msgid "The excavation end date cannot be before the start date."  msgstr "" -#: forms.py:953 +#: forms.py:957  #, python-format  msgid ""  "Operation code already exists for year: %(year)d - use a value bigger than "  "%(last_val)d"  msgstr "" -#: forms.py:957 +#: forms.py:961  msgid "Bad operation code"  msgstr "" -#: forms.py:963 models.py:535 models.py:877 +#: forms.py:967 models.py:535 models.py:879  msgid "Operation code"  msgstr "" -#: forms.py:989 forms.py:993 models.py:273 +#: forms.py:993 forms.py:997 models.py:273  msgid "Collaborators"  msgstr "" -#: forms.py:1001 +#: forms.py:1005  msgid "Preventive informations - excavation"  msgstr "" -#: forms.py:1002 models.py:290 +#: forms.py:1006 models.py:290  #: templates/ishtar/dashboards/dashboard_operation.html:701  msgid "Cost (euros)"  msgstr "" -#: forms.py:1003 models.py:295 +#: forms.py:1007 models.py:295  msgid "Scheduled man-days"  msgstr "" -#: forms.py:1005 models.py:298 +#: forms.py:1009 models.py:298  msgid "Optional man-days"  msgstr "" -#: forms.py:1007 models.py:301 +#: forms.py:1011 models.py:301  msgid "Effective man-days"  msgstr "" -#: forms.py:1017 +#: forms.py:1021  msgid "Preventive informations - diagnostic"  msgstr "" -#: forms.py:1020 models.py:320 +#: forms.py:1024 models.py:320  msgid "Prescription on zoning"  msgstr "" -#: forms.py:1022 models.py:323 +#: forms.py:1026 models.py:323  msgid "Prescription on large area"  msgstr "" -#: forms.py:1025 models.py:325 +#: forms.py:1029 models.py:325  msgid "Prescription on geoarchaeological context"  msgstr "" -#: forms.py:1029 forms.py:1051 models.py:288 models.py:1054 +#: forms.py:1033 forms.py:1055 models.py:288 models.py:1056  msgid "Towns"  msgstr "" -#: forms.py:1058 models.py:1251 models.py:1446 +#: forms.py:1062 models.py:1253 models.py:1448  msgid "Parcel"  msgstr "" -#: forms.py:1110 models.py:46 +#: forms.py:1114 models.py:46  msgid "Remain types"  msgstr "" -#: forms.py:1114 models.py:45 +#: forms.py:1118 models.py:45  msgid "Remain type"  msgstr "" -#: forms.py:1130 templates/ishtar/sheet_operation.html:173 +#: forms.py:1134 templates/ishtar/sheet_operation.html:173  #: templates/ishtar/sheet_operation.html:204  msgid "Period"  msgstr "" -#: forms.py:1142 models.py:85 +#: forms.py:1146 models.py:85  msgid "Reference"  msgstr "" -#: forms.py:1171 +#: forms.py:1175  msgid "This reference already exists."  msgstr "" -#: forms.py:1203 models.py:95 models.py:345 +#: forms.py:1207 models.py:95 models.py:345  #: templates/ishtar/sheet_operation.html:97  msgid "Archaeological sites"  msgstr "" -#: forms.py:1207 +#: forms.py:1211  msgid "Associated archaeological sites"  msgstr "" -#: forms.py:1213 ishtar_menu.py:34 ishtar_menu.py:64 ishtar_menu.py:93 +#: forms.py:1217 ishtar_menu.py:34 ishtar_menu.py:64 ishtar_menu.py:93  msgid "Search"  msgstr "" -#: forms.py:1218 +#: forms.py:1222  msgid "Would you like to close this operation?"  msgstr "" -#: forms.py:1223 +#: forms.py:1227  msgid "Would you like to delete this operation?"  msgstr "" -#: forms.py:1232 forms.py:1302 forms.py:1438 models.py:884 models.py:1011 +#: forms.py:1236 forms.py:1307 forms.py:1444 models.py:886 models.py:1013  msgid "Index"  msgstr "" -#: forms.py:1258 +#: forms.py:1262  #, python-format  msgid ""  "Index already exists for operation: %(operation)s - use a value bigger than "  "%(last_val)d"  msgstr "" -#: forms.py:1270 +#: forms.py:1274  msgid "Operation's year"  msgstr "" -#: forms.py:1277 +#: forms.py:1282  msgid "Operation's town"  msgstr "" -#: forms.py:1290 +#: forms.py:1295  msgid "Documentation search"  msgstr "" -#: forms.py:1292 +#: forms.py:1297  msgid "You should select a document."  msgstr "" -#: forms.py:1309 forms.py:1376 models.py:935 models.py:1005 +#: forms.py:1315 forms.py:1382 models.py:937 models.py:1007  msgid "Act type"  msgstr "" -#: forms.py:1310 forms.py:1508 +#: forms.py:1316 forms.py:1514  msgid "Indexed?"  msgstr "" -#: forms.py:1316 forms.py:1381 models.py:1045 +#: forms.py:1322 forms.py:1387 models.py:1047  #: templates/ishtar/blocks/window_tables/administrativacts.html:10  msgid "Object"  msgstr "" -#: forms.py:1353 views.py:350 +#: forms.py:1359 views.py:350  msgid "Administrative act search"  msgstr "" -#: forms.py:1368 forms.py:1466 forms.py:1533 +#: forms.py:1374 forms.py:1472 forms.py:1539  msgid "You should select an administrative act."  msgstr "" -#: forms.py:1384 models.py:1042 +#: forms.py:1390 models.py:1044  msgid "Signature date"  msgstr "" -#: forms.py:1426 +#: forms.py:1432  #, python-format  msgid ""  "This index already exists for year: %(year)d - use a value bigger than "  "%(last_val)d"  msgstr "" -#: forms.py:1430 +#: forms.py:1436  msgid "Bad index"  msgstr "" -#: forms.py:1443 +#: forms.py:1449  msgid "Would you like to delete this administrative act?"  msgstr "" -#: forms.py:1448 +#: forms.py:1454  msgid "Template"  msgstr "" -#: forms.py:1472 forms.py:1476 +#: forms.py:1478 forms.py:1482  msgid "This document is not intended for this type of act."  msgstr "" -#: forms.py:1494 +#: forms.py:1500  msgid "Doc generation"  msgstr "" -#: forms.py:1496 +#: forms.py:1502  msgid "Generate the associated doc?"  msgstr "" -#: forms.py:1517 ishtar_menu.py:123 views.py:403 +#: forms.py:1523 ishtar_menu.py:123 views.py:403  msgctxt "admin act register"  msgid "Register"  msgstr "" @@ -599,7 +599,7 @@ msgstr ""  msgid "Deletion"  msgstr "" -#: ishtar_menu.py:59 models.py:1061 +#: ishtar_menu.py:59 models.py:1063  #: templates/ishtar/sheet_administrativeact.html:4  msgid "Administrative act"  msgstr "" @@ -629,11 +629,11 @@ msgstr ""  msgid "Operations"  msgstr "" -#: models.py:53 models.py:71 models.py:1918 +#: models.py:53 models.py:71 models.py:1920  msgid "Order"  msgstr "" -#: models.py:55 models.py:1449 +#: models.py:55 models.py:1451  msgid "End date"  msgstr "" @@ -749,7 +749,7 @@ msgstr ""  msgid "In charge scientist"  msgstr "" -#: models.py:281 models.py:1231 +#: models.py:281 models.py:1233  msgid "File"  msgstr "" @@ -852,210 +852,210 @@ msgstr ""  msgid "Mean"  msgstr "" -#: models.py:818 +#: models.py:820  msgid "Inverse relation"  msgstr "" -#: models.py:822 +#: models.py:824  msgid "Operation relation type"  msgstr "" -#: models.py:823 +#: models.py:825  msgid "Operation relation types"  msgstr "" -#: models.py:836 +#: models.py:838  msgid "Operation record relation"  msgstr "" -#: models.py:837 +#: models.py:839  msgid "Operation record relations"  msgstr "" -#: models.py:876 +#: models.py:878  msgid "Operation year"  msgstr "" -#: models.py:878 +#: models.py:880  msgid "Document code"  msgstr "" -#: models.py:888 +#: models.py:890  msgid "Operation documentation"  msgstr "" -#: models.py:889 +#: models.py:891  msgid "Operation documentations"  msgstr "" -#: models.py:892 +#: models.py:894  msgid "Can view all Operation sources"  msgstr "" -#: models.py:894 +#: models.py:896  msgid "Can view own Operation source"  msgstr "" -#: models.py:896 +#: models.py:898  msgid "Can add own Operation source"  msgstr "" -#: models.py:898 +#: models.py:900  msgid "Can change own Operation source"  msgstr "" -#: models.py:900 +#: models.py:902  msgid "Can delete own Operation source"  msgstr "" -#: models.py:923 models.py:1036 +#: models.py:925 models.py:1038  msgid "Treatment request"  msgstr "" -#: models.py:924 models.py:1041 +#: models.py:926 models.py:1043  msgid "Treatment"  msgstr "" -#: models.py:926 +#: models.py:928  msgid "Intended to"  msgstr "" -#: models.py:928 +#: models.py:930  msgid "Code"  msgstr "" -#: models.py:931 +#: models.py:933  msgid "Associated template"  msgstr "" -#: models.py:932 +#: models.py:934  msgid "Indexed"  msgstr "" -#: models.py:936 +#: models.py:938  msgid "Act types"  msgstr "" -#: models.py:1002 models.py:1082 +#: models.py:1004 models.py:1084  #: templates/ishtar/blocks/window_tables/administrativacts.html:7  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7  msgid "Ref."  msgstr "" -#: models.py:1009 +#: models.py:1011  msgid "Person in charge of the operation"  msgstr "" -#: models.py:1015 +#: models.py:1017  msgid "Archaeological preventive operator"  msgstr "" -#: models.py:1023 +#: models.py:1025  msgid "Signatory"  msgstr "" -#: models.py:1051 +#: models.py:1053  msgid "Departments"  msgstr "" -#: models.py:1052 +#: models.py:1054  msgid "Cached values get from associated departments"  msgstr "" -#: models.py:1055 +#: models.py:1057  msgid "Cached values get from associated towns"  msgstr "" -#: models.py:1062 templates/ishtar/sheet_operation.html:105 +#: models.py:1064 templates/ishtar/sheet_operation.html:105  #: templates/ishtar/sheet_operation.html:147  msgid "Administrative acts"  msgstr "" -#: models.py:1065 +#: models.py:1067  msgid "Can view all Administrative acts"  msgstr "" -#: models.py:1067 +#: models.py:1069  msgid "Can view own Administrative act"  msgstr "" -#: models.py:1069 +#: models.py:1071  msgid "Can add own Administrative act"  msgstr "" -#: models.py:1071 +#: models.py:1073  msgid "Can change own Administrative act"  msgstr "" -#: models.py:1073 +#: models.py:1075  msgid "Can delete own Administrative act"  msgstr "" -#: models.py:1176 +#: models.py:1178  msgid "This index already exists for this year"  msgstr "" -#: models.py:1244 +#: models.py:1246  msgid "External ID"  msgstr "" -#: models.py:1247 +#: models.py:1249  msgid "External ID is set automatically"  msgstr "" -#: models.py:1248 +#: models.py:1250  msgid "Address - Locality"  msgstr "" -#: models.py:1444 +#: models.py:1446  msgid "Owner"  msgstr "" -#: models.py:1452 +#: models.py:1454  msgid "Parcel owner"  msgstr "" -#: models.py:1453 +#: models.py:1455  msgid "Parcel owners"  msgstr "" -#: models.py:1479 +#: models.py:1481  msgid "Recorded"  msgstr "" -#: models.py:1480 +#: models.py:1482  msgid "Effective"  msgstr "" -#: models.py:1481 +#: models.py:1483  msgid "Active"  msgstr "" -#: models.py:1482 +#: models.py:1484  msgid "Field completed"  msgstr "" -#: models.py:1483 +#: models.py:1485  msgid "Associated report"  msgstr "" -#: models.py:1484 +#: models.py:1486  msgid "Closed"  msgstr "" -#: models.py:1485 +#: models.py:1487  msgid "Documented and closed"  msgstr "" -#: models.py:1919 +#: models.py:1921  msgid "Is preventive"  msgstr "" -#: models.py:1922 +#: models.py:1924  msgid "Operation type old"  msgstr "" -#: models.py:1923 +#: models.py:1925  msgid "Operation types old"  msgstr "" diff --git a/archaeological_operations/migrations/0068_auto__chg_field_historicaloperation_code_patriarche__chg_field_operati.py b/archaeological_operations/migrations/0068_auto__chg_field_historicaloperation_code_patriarche__chg_field_operati.py new file mode 100644 index 000000000..02ccdcd59 --- /dev/null +++ b/archaeological_operations/migrations/0068_auto__chg_field_historicaloperation_code_patriarche__chg_field_operati.py @@ -0,0 +1,873 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +from archaeological_context_records.models import CRBulkView +from archaeological_finds.models import BFBulkView, FBulkView, FirstBaseFindView + +class Migration(SchemaMigration): + +    depends_on = ( +        ('archaeological_context_records', '0029_create_bulk_update_view.py'), +        ('archaeological_finds', '0085_create_bulk_update_view.py'), +    ) + +    def forwards(self, orm): +        for view in [FBulkView, BFBulkView, FirstBaseFindView, CRBulkView]: +            sql = view.DELETE_SQL +            db.execute(sql) + +        # Changing field 'HistoricalOperation.code_patriarche' +        db.alter_column('archaeological_operations_historicaloperation', 'code_patriarche', self.gf('django.db.models.fields.TextField')(null=True)) + +        # Changing field 'Operation.code_patriarche' +        db.alter_column('archaeological_operations_operation', 'code_patriarche', self.gf('django.db.models.fields.TextField')(unique=True, null=True)) + +        for view in [CRBulkView, FirstBaseFindView, BFBulkView, FBulkView]: +            sql = view.CREATE_SQL +            db.execute(sql) + +    def backwards(self, orm): +        for view in [FBulkView, BFBulkView, FirstBaseFindView, CRBulkView]: +            sql = view.DELETE_SQL +            db.execute(sql) + +        # Changing field 'HistoricalOperation.code_patriarche' +        db.alter_column('archaeological_operations_historicaloperation', 'code_patriarche', self.gf('django.db.models.fields.IntegerField')(null=True)) + +        # Changing field 'Operation.code_patriarche' +        db.alter_column('archaeological_operations_operation', 'code_patriarche', self.gf('django.db.models.fields.IntegerField')(unique=True, null=True)) + +        for view in [CRBulkView, FirstBaseFindView, BFBulkView, FBulkView]: +            sql = view.CREATE_SQL +            db.execute(sql) + +    models = { +        'archaeological_files.file': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), +            'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), +            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), +            'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}), +            'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), +            'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}), +            'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}), +            'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_files.filetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'FileType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.permittype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.saisinetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatment': { +            'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            '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'}), +            'estimated_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), +            'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'insurance_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), +            'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'quoted_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'realized_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'treatment_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentState']", 'null': 'True', 'blank': 'True'}), +            'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_finds.treatmentfile': { +            'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'}, +            'applicant': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'applicant_organisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'cached_label': ('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', 'null': 'True', 'blank': 'True'}), +            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_finds.treatmentfiletype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatmentstate': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentState'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatmenttype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), +            'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']", 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), +            'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) +        }, +        'archaeological_operations.acttype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, +            'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '2'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_operations.administrativeact': { +            'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, +            'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            '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']"}), +            'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            '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', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), +            'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.archaeologicalsite': { +            'Meta': {'object_name': 'ArchaeologicalSite'}, +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), +            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.historicaladministrativeact': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalAdministrativeAct'}, +            'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'act_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), +            'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'signatory_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'treatment_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.historicaloperation': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'}, +            'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'code_patriarche': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), +            'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', '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'}), +            'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'finds_received': ('django.db.models.fields.NullBooleanField', [], {'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_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), +            'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            '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'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), +            'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), +            'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'report_processing_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.operation': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, +            'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}), +            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'code_patriarche': ('django.db.models.fields.TextField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'collaborators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'operation_collaborator'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Person']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), +            'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', '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'}), +            'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'finds_received': ('django.db.models.fields.NullBooleanField', [], {'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_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), +            'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), +            'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            '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', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), +            'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), +            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), +            'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), +            'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), +            'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.operationbydepartment': { +            'Meta': {'object_name': 'OperationByDepartment', 'db_table': "'operation_department'", 'managed': 'False'}, +            'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'operation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Operation']"}) +        }, +        'archaeological_operations.operationsource': { +            'Meta': {'object_name': 'OperationSource'}, +            'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operationsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), +            'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_operations.Operation']"}), +            'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), +            'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) +        }, +        'archaeological_operations.operationtypeold': { +            'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_operations.parcel': { +            'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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', 'null': 'True', 'blank': 'True'}), +            'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), +            '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.parcelowner': { +            'Meta': {'object_name': 'ParcelOwner'}, +            'end_date': ('django.db.models.fields.DateField', [], {}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}), +            'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}), +            'start_date': ('django.db.models.fields.DateField', [], {}) +        }, +        'archaeological_operations.period': { +            'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_operations.recordrelations': { +            'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}), +            'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}), +            'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"}) +        }, +        'archaeological_operations.relationtype': { +            'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_operations.remaintype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_operations.reportstate': { +            'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_warehouse.container': { +            'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('index', 'location'),)", 'object_name': 'Container'}, +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}), +            'responsible': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_warehouse.containertype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}), +            'volume': ('django.db.models.fields.FloatField', [], {'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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) +        }, +        'archaeological_warehouse.warehousedivision': { +            'Meta': {'object_name': 'WarehouseDivision'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_warehouse.warehousedivisionlink': { +            'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, +            'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), +            'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) +        }, +        'archaeological_warehouse.warehousetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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': {'ordering': "('author_type__order', 'person__name')", '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', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) +        }, +        'ishtar_common.authortype': { +            'Meta': {'ordering': "['order', 'label']", 'object_name': 'AuthorType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.documenttemplate': { +            'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, +            'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) +        }, +        'ishtar_common.format': { +            'Meta': {'ordering': "['label']", 'object_name': 'Format'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.import': { +            'Meta': {'object_name': 'Import'}, +            'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), +            'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), +            'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), +            'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}), +            'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', 'null': 'True', 'blank': 'True'}), +            'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), +            'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), +            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) +        }, +        'ishtar_common.importermodel': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) +        }, +        'ishtar_common.importertype': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'}, +            'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}), +            'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}), +            'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.ishtaruser': { +            'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, +            'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), +            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) +        }, +        'ishtar_common.operationtype': { +            'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), +            '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'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.organizationtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.persontype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", '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': '100'}) +        }, +        'ishtar_common.sourcetype': { +            'Meta': {'ordering': "['label']", 'object_name': 'SourceType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.state': { +            'Meta': {'ordering': "['number']", 'object_name': 'State'}, +            '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.supporttype': { +            'Meta': {'object_name': 'SupportType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.titletype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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'}) +        } +    } + +    complete_apps = ['archaeological_operations']
\ No newline at end of file diff --git a/archaeological_operations/migrations/0069_auto__chg_field_operationsource_external_id.py b/archaeological_operations/migrations/0069_auto__chg_field_operationsource_external_id.py new file mode 100644 index 000000000..3ad5be00b --- /dev/null +++ b/archaeological_operations/migrations/0069_auto__chg_field_operationsource_external_id.py @@ -0,0 +1,846 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + +    def forwards(self, orm): + +        # Changing field 'OperationSource.external_id' +        db.alter_column('archaeological_operations_operationsource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True)) + +    def backwards(self, orm): + +        # Changing field 'OperationSource.external_id' +        db.alter_column('archaeological_operations_operationsource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True)) + +    models = { +        'archaeological_files.file': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), +            'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), +            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), +            'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}), +            'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), +            'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}), +            'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}), +            'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_files.filetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'FileType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.permittype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_files.saisinetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatment': { +            'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, +            'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            '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'}), +            'estimated_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), +            'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'insurance_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), +            'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'quoted_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'realized_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), +            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'treatment_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentState']", 'null': 'True', 'blank': 'True'}), +            'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_finds.treatmentfile': { +            'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'}, +            'applicant': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'applicant_organisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'cached_label': ('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', 'null': 'True', 'blank': 'True'}), +            'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'}) +        }, +        'archaeological_finds.treatmentfiletype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatmentstate': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentState'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_finds.treatmenttype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), +            'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']", 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), +            'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) +        }, +        'archaeological_operations.acttype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, +            'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '2'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_operations.administrativeact': { +            'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, +            'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            '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']"}), +            'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            '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', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), +            'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.archaeologicalsite': { +            'Meta': {'object_name': 'ArchaeologicalSite'}, +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), +            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.historicaladministrativeact': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalAdministrativeAct'}, +            'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'act_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), +            'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'signatory_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'treatment_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.historicaloperation': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'}, +            'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'code_patriarche': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), +            'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', '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'}), +            'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'finds_received': ('django.db.models.fields.NullBooleanField', [], {'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_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), +            'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            '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'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), +            'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), +            'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'report_processing_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.operation': { +            'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, +            'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}), +            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'code_patriarche': ('django.db.models.fields.TextField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'collaborators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'operation_collaborator'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Person']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), +            'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', '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'}), +            'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'finds_received': ('django.db.models.fields.NullBooleanField', [], {'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_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), +            'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), +            'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), +            'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            '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', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), +            'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), +            'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), +            'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), +            'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), +            'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), +            'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_operations.operationbydepartment': { +            'Meta': {'object_name': 'OperationByDepartment', 'db_table': "'operation_department'", 'managed': 'False'}, +            'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'operation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Operation']"}) +        }, +        'archaeological_operations.operationsource': { +            'Meta': {'object_name': 'OperationSource'}, +            'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operationsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_operations.Operation']"}), +            'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), +            'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) +        }, +        'archaeological_operations.operationtypeold': { +            'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_operations.parcel': { +            'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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', 'null': 'True', 'blank': 'True'}), +            'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), +            '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.parcelowner': { +            'Meta': {'object_name': 'ParcelOwner'}, +            'end_date': ('django.db.models.fields.DateField', [], {}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}), +            'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}), +            'start_date': ('django.db.models.fields.DateField', [], {}) +        }, +        'archaeological_operations.period': { +            'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_operations.recordrelations': { +            'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}), +            'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}), +            'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"}) +        }, +        'archaeological_operations.relationtype': { +            'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'archaeological_operations.remaintype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_operations.reportstate': { +            'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_warehouse.container': { +            'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('index', 'location'),)", 'object_name': 'Container'}, +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), +            'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), +            'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}), +            'responsible': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), +            'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) +        }, +        'archaeological_warehouse.containertype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}), +            'volume': ('django.db.models.fields.FloatField', [], {'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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), +            'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) +        }, +        'archaeological_warehouse.warehousedivision': { +            'Meta': {'object_name': 'WarehouseDivision'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'archaeological_warehouse.warehousedivisionlink': { +            'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, +            'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), +            'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) +        }, +        'archaeological_warehouse.warehousetype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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': {'ordering': "('author_type__order', 'person__name')", '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', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) +        }, +        'ishtar_common.authortype': { +            'Meta': {'ordering': "['order', 'label']", 'object_name': 'AuthorType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.documenttemplate': { +            'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, +            'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) +        }, +        'ishtar_common.format': { +            'Meta': {'ordering': "['label']", 'object_name': 'Format'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.import': { +            'Meta': {'object_name': 'Import'}, +            'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), +            'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), +            'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), +            'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}), +            'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', 'null': 'True', 'blank': 'True'}), +            'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), +            'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), +            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) +        }, +        'ishtar_common.importermodel': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) +        }, +        'ishtar_common.importertype': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'}, +            'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}), +            'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}), +            'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.ishtaruser': { +            'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, +            'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), +            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) +        }, +        'ishtar_common.operationtype': { +            'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), +            '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'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.organizationtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.persontype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", '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': '100'}) +        }, +        'ishtar_common.sourcetype': { +            'Meta': {'ordering': "['label']", 'object_name': 'SourceType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.state': { +            'Meta': {'ordering': "['number']", 'object_name': 'State'}, +            '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.supporttype': { +            'Meta': {'object_name': 'SupportType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.titletype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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'}) +        } +    } + +    complete_apps = ['archaeological_operations']
\ No newline at end of file diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 1ebf462a3..b982e7d45 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -306,8 +306,8 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,      old_code = models.CharField(_(u"Old code"), max_length=200, null=True,                                  blank=True)      if settings.COUNTRY == 'fr': -        code_patriarche = models.IntegerField(u"Code PATRIARCHE", null=True, -                                              blank=True, unique=True) +        code_patriarche = models.TextField(u"Code PATRIARCHE", null=True, +                                           blank=True, unique=True)          TABLE_COLS = ['full_code_patriarche'] + TABLE_COLS          # preventive          fnap_financing = models.FloatField(u"Financement FNAP (%)", @@ -548,7 +548,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,      def full_code_patriarche(self):          if not self.code_patriarche:              return '' -        return settings.ISHTAR_OPE_PREFIX + unicode(self.code_patriarche) +        return settings.ISHTAR_OPE_PREFIX + self.code_patriarche      def clean(self):          if not self.operation_code: @@ -783,6 +783,8 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,              self.year = self.start_date.year          if self.operation_code is None:              self.operation_code = self.get_available_operation_code(self.year) +        if hasattr(self, 'code_patriarche'): +            self.code_patriarche = self.code_patriarche or None          return super(Operation, self).save(*args, **kwargs) diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index a1c0781fc..230a66beb 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -35,7 +35,7 @@ from archaeological_operations import views  from ishtar_common.models import OrganizationType, Organization, ItemKey, \      ImporterType, IshtarUser, TargetKey, ImporterModel, IshtarSiteProfile, \ -    Town, ImporterColumn, Person, DocumentTemplate +    Town, ImporterColumn, Person, Author, SourceType, AuthorType, DocumentTemplate  from archaeological_context_records.models import Unit  from ishtar_common import forms_common @@ -196,7 +196,7 @@ class ImportOperationTest(ImportTest, TestCase):          # and well imported          last_ope = models.Operation.objects.order_by('-pk').all()[0]          self.assertEqual(last_ope.name, u"Oppìdum de Paris") -        self.assertEqual(last_ope.code_patriarche, 4200) +        self.assertEqual(last_ope.code_patriarche, '4200')          self.assertEqual(last_ope.operation_type.txt_idx, 'prog_excavation')          self.assertEqual(last_ope.periods.count(), 2)          periods = [period.txt_idx for period in last_ope.periods.all()] @@ -319,7 +319,7 @@ class ImportOperationTest(ImportTest, TestCase):                           sorted([p.parcel_number for p in last_parcels]))          self.assertEqual(sections,                           sorted([p.section for p in last_parcels])) -        ope1 = models.Operation.objects.filter(code_patriarche=4200).all()[0] +        ope1 = models.Operation.objects.filter(code_patriarche='4200').all()[0]          towns_ope = ope1.towns.all()          imported = [imp for acc, imp in impt.get_all_imported()]          for p in last_parcels: @@ -332,7 +332,7 @@ class ImportOperationTest(ImportTest, TestCase):                  operation_id=ope1.pk).external_id,              '4200-59350-YY55')          # cached_label update -        ope2 = models.Operation.objects.filter(code_patriarche=4201).all()[0] +        ope2 = models.Operation.objects.filter(code_patriarche='4201').all()[0]          self.assertIn('LILLE', ope2.cached_label.upper())          # delete associated parcel with the import deletion          parcel_count = models.Parcel.objects.count() @@ -1395,3 +1395,51 @@ class OperationAdminActWizardCreationTest(WizardTest, OperationInitTest,      def post_wizard(self):          self.assertEqual(models.AdministrativeAct.objects.count(),                           self.number + 1) + + +class OperationSourceWizardModificationTest(WizardTest, OperationInitTest, +                                            TestCase): +    fixtures = OperationWizardCreationTest.fixtures +    url_name = 'operation_source_modification' +    wizard_name = 'operation_source_wizard' +    steps = views.operation_source_modification_steps +    form_datas = [ +        FormData( +            "Test remove all authors", +            form_datas={ +                'selec-operation_source_modification': {}, +                'source-operation_source_modification': { +                    'title': "New title", +                    'source_type': None, +                    'index': 42 +                }, +                'authors-operation_source_modification': [] +            }, +        ) +    ] + +    def pre_wizard(self): +        ope = self.get_default_operation() +        self.source = models.OperationSource.objects.create( +            title="Old title", source_type=SourceType.objects.all()[0], +            operation=ope +        ) +        author = Author.objects.create( +            author_type=AuthorType.objects.all()[0], +            person=Person.objects.all()[0] +        ) + +        self.source.authors.add(author) + +        data = self.form_datas[0].form_datas +        data['selec-operation_source_modification']['pk'] = self.source.pk + +        data['source-operation_source_modification']['hidden_operation_id'] = \ +            self.source.pk +        data['source-operation_source_modification'][ +            'source_type'] = SourceType.objects.all()[1].pk +        super(OperationSourceWizardModificationTest, self).pre_wizard() + +    def post_wizard(self): +        source = models.OperationSource.objects.get(pk=self.source.pk) +        self.assertEqual(source.authors.count(), 0) diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 7f77eb694..13b9a4767 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -321,11 +321,15 @@ operation_source_creation_wizard = OperationSourceWizard.as_view([      label=_(u"Operation: source creation"),      url_name='operation_source_creation',) -operation_source_modification_wizard = OperationSourceWizard.as_view([ +operation_source_modification_steps = [      ('selec-operation_source_modification', OperationSourceFormSelection),      ('source-operation_source_modification', OperationSourceForm),      ('authors-operation_source_modification', AuthorFormset), -    ('final-operation_source_modification', FinalForm)], +    ('final-operation_source_modification', FinalForm) +] + +operation_source_modification_wizard = OperationSourceWizard.as_view( +    operation_source_modification_steps,      label=_(u"Operation: source modification"),      url_name='operation_source_modification',) diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py index 40dedc801..2ef3c8e58 100644 --- a/archaeological_warehouse/urls.py +++ b/archaeological_warehouse/urls.py @@ -42,7 +42,7 @@ urlpatterns += patterns(          name='autocomplete-warehouse'),      url(r'new-container/(?P<parent_name>.+)?/$',          'new_container', name='new-container'), -    url(r'get-container/$', 'get_container', +    url(r'get-container/(?P<type>.+)?$', 'get_container',          name='get-container'),      url(r'get-warehouse/(?P<type>.+)?$', 'get_warehouse',          name='get-warehouse'), diff --git a/example_project/settings.py b/example_project/settings.py index 2e91cb73f..dceeff0be 100644 --- a/example_project/settings.py +++ b/example_project/settings.py @@ -212,6 +212,10 @@ APP_NAME = "SRA - Pays de la Loire"  SURFACE_UNIT = 'square-metre'  SURFACE_UNIT_LABEL = u'm²'  JOINT = u" | " +# dir for ishtar maintenance script - as it can be a serious security issue if +# not managed cautiously the dir contening theses scripts is not set by default +ISHTAR_SCRIPT_DIR = "" +  ISHTAR_FILE_PREFIX = u""  ISHTAR_OPE_PREFIX = u"OA"  ISHTAR_DEF_OPE_PREFIX = u"OP" diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index cba10ea0d..9f8265033 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2010-2016 Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2017 Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet>  # This program is free software: you can redistribute it and/or modify  # it under the terms of the GNU Affero General Public License as @@ -306,6 +306,32 @@ class ItemKeyAdmin(admin.ModelAdmin):  admin.site.register(models.ItemKey, ItemKeyAdmin) +class AdministrationScriptAdmin(admin.ModelAdmin): +    list_display = ['name', 'path'] + +    def get_readonly_fields(self, request, obj=None): +        if obj: +            return ('path',) +        return [] + +admin.site.register(models.AdministrationScript, AdministrationScriptAdmin) + + +class AdministrationTaskAdmin(admin.ModelAdmin): +    readonly_fields = ('state', 'creation_date', 'launch_date', +                       'finished_date', "result", ) +    list_display = ['script', 'state', 'creation_date', 'launch_date', +                    'finished_date', "result"] +    list_filter = ['script', 'state'] + +    def get_readonly_fields(self, request, obj=None): +        if obj: +            return ("script", ) + self.readonly_fields +        return self.readonly_fields + +admin.site.register(models.AdministrationTask, AdministrationTaskAdmin) + +  basic_models = [models.DocumentTemplate, models.IshtarUser]  if settings.COUNTRY == 'fr':      basic_models += [models.Arrondissement, models.Canton] diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 1fe4ef45c..76b186038 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -1400,20 +1400,35 @@ class Importer(object):          # get all related fields          new_created = {} -        for attribute in list(data.keys()): -            c_c_path = c_path[:] -            if not attribute: -                data.pop(attribute) -                continue -            if not data[attribute]: -                field_object, model, direct, m2m = \ -                    cls._meta.get_field_by_name(attribute) -                if m2m: +        try: +            for attribute in list(data.keys()): +                c_c_path = c_path[:] +                if not attribute:                      data.pop(attribute) -                continue -            if attribute != '__force_new': -                self.get_field(cls, attribute, data, m2ms, c_c_path, -                               new_created) +                    continue +                if not data[attribute]: +                    field_object, model, direct, m2m = \ +                        cls._meta.get_field_by_name(attribute) +                    if m2m: +                        data.pop(attribute) +                    continue +                if attribute != '__force_new': +                    self.get_field(cls, attribute, data, m2ms, c_c_path, +                                   new_created) +        except (ValueError, IntegrityError) as e: +            message = e.message +            try: +                message = e.message.decode('utf-8') +            except (UnicodeDecodeError, UnicodeDecodeError): +                message = '' +            try: +                data = unicode(data) +            except UnicodeDecodeError: +                data = '' +            raise ImporterError( +                "Erreur d'import %s %s, contexte : %s, erreur : %s" +                % (unicode(cls), unicode("__".join(path)), +                   unicode(data), message))          create_dict = copy.deepcopy(data)          for k in create_dict.keys(): diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index b317f77e3..61e9f1a88 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -884,6 +884,7 @@ class AuthorFormSelection(forms.Form):      base_model = 'author'      associated_models = {'author': models.Author}      author = forms.IntegerField( +        required=False,          widget=widgets.JQueryAutoComplete(              "/" + settings.URL_PATH + 'autocomplete-author',              associated_model=models.Author, new=True), diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 26a06d0b8..4a7e66801 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -120,31 +120,31 @@ msgstr ""  msgid "Importer configuration error: field \"{}\" does not exist for {}."  msgstr "" -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "line"  msgstr "" -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "col"  msgstr "" -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "error"  msgstr "" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "field"  msgstr "" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "source"  msgstr "" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "result"  msgstr "" -#: data_importer.py:1581 +#: data_importer.py:1596  #, python-format  msgid "\"%(value)s\" not in %(values)s"  msgstr "" @@ -177,12 +177,12 @@ msgstr ""  msgid "Add a new item"  msgstr "" -#: forms.py:297 models.py:1556 +#: forms.py:297 models.py:1558  msgid "Template"  msgstr ""  #: forms_common.py:41 forms_common.py:59 forms_common.py:184 -#: forms_common.py:408 models.py:1622 models.py:3085 +#: forms_common.py:408 models.py:1624 models.py:3087  #: templates/blocks/JQueryAdvancedTown.html:19  #: templates/ishtar/sheet_organization.html:13  msgid "Town" @@ -198,8 +198,8 @@ msgid ""  "french town Saint-Denis in the Seine-Saint-Denis department.</p>"  msgstr "" -#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2685 -#: models.py:2878 models.py:2940 templates/ishtar/sheet_person.html:4 +#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2687 +#: models.py:2880 models.py:2942 templates/ishtar/sheet_person.html:4  msgid "Person"  msgstr "" @@ -210,64 +210,65 @@ msgid ""  msgstr ""  #: forms_common.py:172 forms_common.py:329 forms_common.py:453 -#: ishtar_menu.py:75 models.py:2568 models.py:2659 +#: ishtar_menu.py:75 models.py:2570 models.py:2661  #: templates/ishtar/sheet_organization.html:4  msgid "Organization"  msgstr ""  #: forms_common.py:175 forms_common.py:212 forms_common.py:324 -#: forms_common.py:378 forms_common.py:448 models.py:1159 models.py:1555 -#: models.py:1824 models.py:1840 models.py:2078 models.py:2356 models.py:2562 -#: models.py:2671 models.py:3071 templates/ishtar/import_list.html:13 +#: forms_common.py:378 forms_common.py:448 models.py:1161 models.py:1557 +#: models.py:1826 models.py:1842 models.py:2080 models.py:2358 models.py:2564 +#: models.py:2673 models.py:3073 models.py:3170 +#: templates/ishtar/import_list.html:13  #: templates/ishtar/sheet_organization.html:8  #: templates/ishtar/sheet_organization.html:21  msgid "Name"  msgstr "" -#: forms_common.py:176 models.py:1777 models.py:2209 +#: forms_common.py:176 models.py:1779 models.py:2211  msgid "Organization type"  msgstr "" -#: forms_common.py:178 forms_common.py:402 models.py:1617 +#: forms_common.py:178 forms_common.py:402 models.py:1619  #: templates/ishtar/sheet_organization.html:10  msgid "Address"  msgstr "" -#: forms_common.py:180 forms_common.py:405 models.py:1618 +#: forms_common.py:180 forms_common.py:405 models.py:1620  #: templates/ishtar/sheet_organization.html:11  msgid "Address complement"  msgstr "" -#: forms_common.py:182 forms_common.py:406 models.py:1620 +#: forms_common.py:182 forms_common.py:406 models.py:1622  #: templates/ishtar/sheet_organization.html:12  msgid "Postal code"  msgstr "" -#: forms_common.py:185 forms_common.py:409 models.py:1623 +#: forms_common.py:185 forms_common.py:409 models.py:1625  msgid "Country"  msgstr ""  #: forms_common.py:187 forms_common.py:326 forms_common.py:382 -#: forms_common.py:450 forms_common.py:574 models.py:1650 +#: forms_common.py:450 forms_common.py:574 models.py:1652  msgid "Email"  msgstr "" -#: forms_common.py:188 forms_common.py:385 models.py:1635 +#: forms_common.py:188 forms_common.py:385 models.py:1637  #: templates/ishtar/sheet_organization.html:14  #: templates/ishtar/sheet_person.html:21  #: templates/ishtar/wizard/wizard_person.html:17  msgid "Phone"  msgstr "" -#: forms_common.py:189 forms_common.py:394 models.py:1647 +#: forms_common.py:189 forms_common.py:394 models.py:1649  #: templates/ishtar/sheet_organization.html:15  #: templates/ishtar/sheet_person.html:39  #: templates/ishtar/wizard/wizard_person.html:35  msgid "Mobile phone"  msgstr "" -#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2247 -#: models.py:2564 models.py:3006 templates/sheet_ope.html:85 +#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2249 +#: models.py:2566 models.py:3008 templates/sheet_ope.html:85  #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126  #: templates/ishtar/import_list.html:14  #: templates/ishtar/sheet_organization.html:23 @@ -291,7 +292,7 @@ msgstr ""  msgid "Organization to merge"  msgstr "" -#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2669 +#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2671  #: templates/ishtar/sheet_organization.html:22  msgid "Surname"  msgstr "" @@ -309,25 +310,25 @@ msgstr ""  msgid "Identity"  msgstr "" -#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2210 -#: models.py:2663 models.py:2665 models.py:3003 templates/sheet_ope.html:104 +#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2212 +#: models.py:2665 models.py:2667 models.py:3005 templates/sheet_ope.html:104  #: templates/ishtar/blocks/window_tables/documents.html:7  msgid "Title"  msgstr "" -#: forms_common.py:374 models.py:2667 +#: forms_common.py:374 models.py:2669  msgid "Salutation"  msgstr "" -#: forms_common.py:380 models.py:2673 +#: forms_common.py:380 models.py:2675  msgid "Raw name"  msgstr "" -#: forms_common.py:383 models.py:1636 +#: forms_common.py:383 models.py:1638  msgid "Phone description"  msgstr "" -#: forms_common.py:386 models.py:1638 models.py:1640 +#: forms_common.py:386 models.py:1640 models.py:1642  msgid "Phone description 2"  msgstr "" @@ -335,11 +336,11 @@ msgstr ""  msgid "Phone 2"  msgstr "" -#: forms_common.py:390 models.py:1644 +#: forms_common.py:390 models.py:1646  msgid "Phone description 3"  msgstr "" -#: forms_common.py:392 models.py:1642 +#: forms_common.py:392 models.py:1644  msgid "Phone 3"  msgstr "" @@ -347,23 +348,23 @@ msgstr ""  msgid "Current organization"  msgstr "" -#: forms_common.py:411 models.py:1625 +#: forms_common.py:411 models.py:1627  msgid "Other address: address"  msgstr "" -#: forms_common.py:414 models.py:1628 +#: forms_common.py:414 models.py:1630  msgid "Other address: address complement"  msgstr "" -#: forms_common.py:416 models.py:1629 +#: forms_common.py:416 models.py:1631  msgid "Other address: postal code"  msgstr "" -#: forms_common.py:418 models.py:1631 +#: forms_common.py:418 models.py:1633  msgid "Other address: town"  msgstr "" -#: forms_common.py:420 models.py:1633 +#: forms_common.py:420 models.py:1635  msgid "Other address: country"  msgstr "" @@ -379,7 +380,7 @@ msgstr ""  msgid "Account search"  msgstr "" -#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2616 +#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2618  msgid "Person type"  msgstr "" @@ -411,7 +412,7 @@ msgstr ""  msgid "Send the new password by email?"  msgstr "" -#: forms_common.py:636 forms_common.py:649 models.py:3086 +#: forms_common.py:636 forms_common.py:649 models.py:3088  msgid "Towns"  msgstr "" @@ -427,7 +428,7 @@ msgstr ""  msgid "Documentation informations"  msgstr "" -#: forms_common.py:783 forms_common.py:831 models.py:2211 models.py:2978 +#: forms_common.py:783 forms_common.py:831 models.py:2213 models.py:2980  msgid "Source type"  msgstr "" @@ -439,37 +440,37 @@ msgstr ""  msgid "Internal reference"  msgstr "" -#: forms_common.py:791 models.py:3017 +#: forms_common.py:791 models.py:3019  msgid "Numerical ressource (web address)"  msgstr "" -#: forms_common.py:792 models.py:3019 +#: forms_common.py:792 models.py:3021  msgid "Receipt date"  msgstr "" -#: forms_common.py:794 models.py:2382 models.py:3021 +#: forms_common.py:794 models.py:2384 models.py:3023  msgid "Creation date"  msgstr "" -#: forms_common.py:797 models.py:3024 +#: forms_common.py:797 models.py:3026  msgid "Receipt date in documentation"  msgstr "" -#: forms_common.py:799 forms_common.py:835 models.py:419 models.py:746 -#: models.py:2105 models.py:2677 models.py:3031 +#: forms_common.py:799 forms_common.py:835 models.py:421 models.py:748 +#: models.py:2107 models.py:2679 models.py:3033  msgid "Comment"  msgstr "" -#: forms_common.py:801 forms_common.py:834 models.py:1161 models.py:1844 -#: models.py:2032 models.py:2079 models.py:3030 templates/sheet_ope.html:128 +#: forms_common.py:801 forms_common.py:834 models.py:1163 models.py:1846 +#: models.py:2034 models.py:2081 models.py:3032 templates/sheet_ope.html:128  msgid "Description"  msgstr "" -#: forms_common.py:804 models.py:3032 +#: forms_common.py:804 models.py:3034  msgid "Additional information"  msgstr "" -#: forms_common.py:806 forms_common.py:838 models.py:3034 +#: forms_common.py:806 forms_common.py:838 models.py:3036  msgid "Has a duplicate"  msgstr "" @@ -484,7 +485,7 @@ msgid ""  "p>"  msgstr "" -#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2945 +#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2947  #: templates/ishtar/wizard/wizard_person_deletion.html:124  msgid "Author"  msgstr "" @@ -497,7 +498,7 @@ msgstr ""  msgid "Would you like to delete this documentation?"  msgstr "" -#: forms_common.py:864 models.py:2212 models.py:2932 models.py:2942 +#: forms_common.py:864 models.py:2214 models.py:2934 models.py:2944  msgid "Author type"  msgstr "" @@ -509,7 +510,7 @@ msgstr ""  msgid "There are identical authors."  msgstr "" -#: forms_common.py:901 models.py:2946 models.py:3013 +#: forms_common.py:901 models.py:2948 models.py:3015  #: templates/sheet_ope.html:106  #: templates/ishtar/blocks/window_tables/documents.html:9  msgid "Authors" @@ -527,7 +528,7 @@ msgstr ""  msgid "Deletion"  msgstr "" -#: ishtar_menu.py:39 models.py:1338 views.py:1648 +#: ishtar_menu.py:39 models.py:1340 views.py:1648  msgid "Global variables"  msgstr "" @@ -555,7 +556,7 @@ msgstr ""  msgid "Manual merge"  msgstr "" -#: ishtar_menu.py:109 models.py:2390 +#: ishtar_menu.py:109 models.py:2392  msgid "Imports"  msgstr "" @@ -571,280 +572,280 @@ msgstr ""  msgid "Old imports"  msgstr "" -#: models.py:224 +#: models.py:226  msgid "Not a valid item."  msgstr "" -#: models.py:239 +#: models.py:241  msgid "A selected item is not a valid item."  msgstr "" -#: models.py:250 +#: models.py:252  msgid "This item already exists."  msgstr "" -#: models.py:415 models.py:745 models.py:1590 models.py:1602 models.py:2028 +#: models.py:417 models.py:747 models.py:1592 models.py:1604 models.py:2030  msgid "Label"  msgstr "" -#: models.py:417 +#: models.py:419  msgid "Textual ID"  msgstr "" -#: models.py:420 models.py:748 models.py:1559 +#: models.py:422 models.py:750 models.py:1561  msgid "Available"  msgstr "" -#: models.py:772 models.py:2151 +#: models.py:774 models.py:2153  msgid "Key"  msgstr "" -#: models.py:778 +#: models.py:780  msgid "Specific key to an import"  msgstr "" -#: models.py:874 +#: models.py:876  msgid "Last editor"  msgstr "" -#: models.py:877 +#: models.py:879  msgid "Creator"  msgstr "" -#: models.py:1019 models.py:2929 models.py:3097 models.py:3153 +#: models.py:1021 models.py:2931 models.py:3099 models.py:3155  msgid "Order"  msgstr "" -#: models.py:1020 +#: models.py:1022  msgid "Symmetrical"  msgstr "" -#: models.py:1021 +#: models.py:1023  msgid "Tiny label"  msgstr "" -#: models.py:1035 +#: models.py:1037  msgid "Cannot have symmetrical and an inverse_relation"  msgstr "" -#: models.py:1151 +#: models.py:1153  msgid "Euro"  msgstr "" -#: models.py:1152 +#: models.py:1154  msgid "US dollar"  msgstr "" -#: models.py:1153 views.py:1446 views.py:1508 +#: models.py:1155 views.py:1446 views.py:1508  msgid "Operations"  msgstr "" -#: models.py:1154 views.py:1448 views.py:1512 +#: models.py:1156 views.py:1448 views.py:1512  msgid "Context records"  msgstr "" -#: models.py:1160 models.py:1842 +#: models.py:1162 models.py:1844  msgid "Slug"  msgstr "" -#: models.py:1163 +#: models.py:1165  msgid "CSS color code for base module"  msgstr "" -#: models.py:1165 +#: models.py:1167  msgid "Files module"  msgstr "" -#: models.py:1167 +#: models.py:1169  msgid "CSS color code for files module"  msgstr "" -#: models.py:1169 +#: models.py:1171  msgid "Context records module"  msgstr "" -#: models.py:1172 +#: models.py:1174  msgid "CSS color code for context record module"  msgstr "" -#: models.py:1174 +#: models.py:1176  msgid "Finds module"  msgstr "" -#: models.py:1175 +#: models.py:1177  msgid "Need context records module"  msgstr "" -#: models.py:1177 +#: models.py:1179  msgid "Find index is based on"  msgstr "" -#: models.py:1179 +#: models.py:1181  msgid ""  "To prevent irrelevant indexes, change this parameter only if there is no "  "find in the database"  msgstr "" -#: models.py:1182 +#: models.py:1184  msgid "CSS color code for find module"  msgstr "" -#: models.py:1185 +#: models.py:1187  msgid "Warehouses module"  msgstr "" -#: models.py:1186 +#: models.py:1188  msgid "Need finds module"  msgstr "" -#: models.py:1188 +#: models.py:1190  msgid "CSS code for warehouse module"  msgstr "" -#: models.py:1190 +#: models.py:1192  msgid "Mapping module"  msgstr "" -#: models.py:1192 +#: models.py:1194  msgid "CSS code for mapping module"  msgstr "" -#: models.py:1195 +#: models.py:1197  msgid "Home page"  msgstr "" -#: models.py:1196 +#: models.py:1198  #, python-brace-format  msgid ""  "Homepage of Ishtar - if not defined a default homepage will appear. Use the "  "markdown syntax. {random_image} can be used to display a random image."  msgstr "" -#: models.py:1200 +#: models.py:1202  msgid "File external id"  msgstr "" -#: models.py:1202 +#: models.py:1204  msgid ""  "Formula to manage file external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can "  "be destructive."  msgstr "" -#: models.py:1207 +#: models.py:1209  msgid "Parcel external id"  msgstr "" -#: models.py:1210 +#: models.py:1212  msgid ""  "Formula to manage parcel external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can "  "be destructive."  msgstr "" -#: models.py:1215 +#: models.py:1217  msgid "Context record external id"  msgstr "" -#: models.py:1217 +#: models.py:1219  msgid ""  "Formula to manage context record external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external "  "data can be destructive."  msgstr "" -#: models.py:1222 +#: models.py:1224  msgid "Base find external id"  msgstr "" -#: models.py:1224 +#: models.py:1226  msgid ""  "Formula to manage base find external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external "  "data can be destructive."  msgstr "" -#: models.py:1229 +#: models.py:1231  msgid "Find external id"  msgstr "" -#: models.py:1231 +#: models.py:1233  msgid ""  "Formula to manage find external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can "  "be destructive."  msgstr "" -#: models.py:1236 +#: models.py:1238  msgid "Container external id"  msgstr "" -#: models.py:1238 +#: models.py:1240  msgid ""  "Formula to manage container external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external "  "data can be destructive."  msgstr "" -#: models.py:1243 +#: models.py:1245  msgid "Warehouse external id"  msgstr "" -#: models.py:1245 +#: models.py:1247  msgid ""  "Formula to manage warehouse external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external "  "data can be destructive."  msgstr "" -#: models.py:1250 +#: models.py:1252  msgid "Raw name for person"  msgstr "" -#: models.py:1252 +#: models.py:1254  msgid ""  "Formula to manage person raw_name. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can "  "be destructive."  msgstr "" -#: models.py:1256 +#: models.py:1258  msgid "Current active"  msgstr "" -#: models.py:1257 +#: models.py:1259  msgid "Currency"  msgstr "" -#: models.py:1261 +#: models.py:1263  msgid "Ishtar site profile"  msgstr "" -#: models.py:1262 +#: models.py:1264  msgid "Ishtar site profiles"  msgstr "" -#: models.py:1331 +#: models.py:1333  msgid "Variable name"  msgstr "" -#: models.py:1332 +#: models.py:1334  msgid "Description of the variable"  msgstr "" -#: models.py:1334 models.py:2152 +#: models.py:1336 models.py:2154  msgid "Value"  msgstr "" -#: models.py:1337 +#: models.py:1339  msgid "Global variable"  msgstr "" -#: models.py:1460 models.py:1490 +#: models.py:1462 models.py:1492  msgid "Total"  msgstr "" -#: models.py:1467 models.py:1591 models.py:1603 +#: models.py:1469 models.py:1593 models.py:1605  #: templates/ishtar/sheet_person.html:24  #: templates/ishtar/dashboards/dashboard_main_detail.html:141  #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -852,666 +853,725 @@ msgstr ""  msgid "Number"  msgstr "" -#: models.py:1554 +#: models.py:1556  msgid "Administrative Act"  msgstr "" -#: models.py:1558 +#: models.py:1560  msgid "Associated object"  msgstr "" -#: models.py:1562 +#: models.py:1564  msgid "Document template"  msgstr "" -#: models.py:1563 +#: models.py:1565  msgid "Document templates"  msgstr "" -#: models.py:1594 models.py:1604 models.py:2376 +#: models.py:1596 models.py:1606 models.py:2378 models.py:3193  msgid "State"  msgstr "" -#: models.py:1608 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1610 templates/blocks/JQueryAdvancedTown.html:12  msgid "Department"  msgstr "" -#: models.py:1609 +#: models.py:1611  msgid "Departments"  msgstr "" -#: models.py:1646 +#: models.py:1648  msgid "Raw phone"  msgstr "" -#: models.py:1652 +#: models.py:1654  msgid "Alternative address is prefered"  msgstr "" -#: models.py:1691 +#: models.py:1693  msgid "Tel: "  msgstr "" -#: models.py:1695 +#: models.py:1697  msgid "Mobile: "  msgstr "" -#: models.py:1699 +#: models.py:1701  msgid "Email: "  msgstr "" -#: models.py:1704 +#: models.py:1706  msgid "Merge key"  msgstr "" -#: models.py:1778 +#: models.py:1780  msgid "Organization types"  msgstr "" -#: models.py:1825 +#: models.py:1827  msgid "Class name"  msgstr "" -#: models.py:1828 +#: models.py:1830  msgid "Importer - Model"  msgstr "" -#: models.py:1829 +#: models.py:1831  msgid "Importer - Models"  msgstr "" -#: models.py:1846 templates/ishtar/dashboards/dashboard_main.html:34 +#: models.py:1848 templates/ishtar/dashboards/dashboard_main.html:34  msgid "Users"  msgstr "" -#: models.py:1849 +#: models.py:1851  msgid "Associated model"  msgstr "" -#: models.py:1852 +#: models.py:1854  msgid "Models that can accept new items"  msgstr "" -#: models.py:1853 +#: models.py:1855  msgid "Leave blank for no restrictions"  msgstr "" -#: models.py:1855 +#: models.py:1857  msgid "Is template"  msgstr "" -#: models.py:1856 +#: models.py:1858  msgid "Unicity keys (separator \";\")"  msgstr "" -#: models.py:1860 +#: models.py:1862  msgid "Importer - Type"  msgstr "" -#: models.py:1861 +#: models.py:1863  msgid "Importer - Types"  msgstr "" -#: models.py:1960 +#: models.py:1962  msgid "Importer - Default"  msgstr "" -#: models.py:1961 +#: models.py:1963  msgid "Importer - Defaults"  msgstr "" -#: models.py:1996 +#: models.py:1998  msgid "Importer - Default value"  msgstr "" -#: models.py:1997 +#: models.py:1999  msgid "Importer - Default values"  msgstr "" -#: models.py:2031 +#: models.py:2033  msgid "Column number"  msgstr "" -#: models.py:2034 +#: models.py:2036  msgid "Required"  msgstr "" -#: models.py:2036 +#: models.py:2038  msgid "Export field name"  msgstr "" -#: models.py:2037 +#: models.py:2039  msgid ""  "Fill this field if the field name is ambiguous for export. For instance: "  "concatenated fields."  msgstr "" -#: models.py:2042 +#: models.py:2044  msgid "Importer - Column"  msgstr "" -#: models.py:2043 +#: models.py:2045  msgid "Importer - Columns"  msgstr "" -#: models.py:2063 +#: models.py:2065  msgid "Field name"  msgstr "" -#: models.py:2065 models.py:2099 +#: models.py:2067 models.py:2101  msgid "Force creation of new items"  msgstr "" -#: models.py:2067 models.py:2101 +#: models.py:2069 models.py:2103  msgid "Concatenate with existing"  msgstr "" -#: models.py:2069 models.py:2103 +#: models.py:2071 models.py:2105  msgid "Concatenate character"  msgstr "" -#: models.py:2073 +#: models.py:2075  msgid "Importer - Duplicate field"  msgstr "" -#: models.py:2074 +#: models.py:2076  msgid "Importer - Duplicate fields"  msgstr "" -#: models.py:2081 +#: models.py:2083  msgid "Regular expression"  msgstr "" -#: models.py:2084 +#: models.py:2086  msgid "Importer - Regular expression"  msgstr "" -#: models.py:2085 +#: models.py:2087  msgid "Importer - Regular expressions"  msgstr "" -#: models.py:2108 +#: models.py:2110  msgid "Importer - Target"  msgstr "" -#: models.py:2109 +#: models.py:2111  msgid "Importer - Targets"  msgstr "" -#: models.py:2133 views.py:578 +#: models.py:2135 views.py:578  msgid "True"  msgstr "" -#: models.py:2134 views.py:580 +#: models.py:2136 views.py:580  msgid "False"  msgstr "" -#: models.py:2153 +#: models.py:2155  msgid "Is set"  msgstr "" -#: models.py:2160 +#: models.py:2162  msgid "Importer - Target key"  msgstr "" -#: models.py:2161 +#: models.py:2163  msgid "Importer - Targets keys"  msgstr "" -#: models.py:2213 models.py:3009 +#: models.py:2215 models.py:3011  msgid "Format"  msgstr "" -#: models.py:2214 models.py:3101 +#: models.py:2216 models.py:3103  msgid "Operation type"  msgstr "" -#: models.py:2215 +#: models.py:2217  msgid "Period"  msgstr "" -#: models.py:2216 +#: models.py:2218  msgid "Report state"  msgstr "" -#: models.py:2217 +#: models.py:2219  msgid "Remain type"  msgstr "" -#: models.py:2218 +#: models.py:2220  msgid "Unit"  msgstr "" -#: models.py:2220 +#: models.py:2222  msgid "Activity type"  msgstr "" -#: models.py:2221 +#: models.py:2223  msgid "Material"  msgstr "" -#: models.py:2223 +#: models.py:2225  msgid "Conservatory state"  msgstr "" -#: models.py:2224 +#: models.py:2226  msgid "Container type"  msgstr "" -#: models.py:2225 +#: models.py:2227  msgid "Preservation type"  msgstr "" -#: models.py:2226 +#: models.py:2228  msgid "Object type"  msgstr "" -#: models.py:2227 +#: models.py:2229  msgid "Integrity type"  msgstr "" -#: models.py:2229 +#: models.py:2231  msgid "Remarkability type"  msgstr "" -#: models.py:2230 +#: models.py:2232  msgid "Batch type"  msgstr "" -#: models.py:2232 +#: models.py:2234  msgid "Identification type"  msgstr "" -#: models.py:2234 +#: models.py:2236  msgid "Context record relation type"  msgstr "" -#: models.py:2235 models.py:3159 +#: models.py:2237 models.py:3161  msgid "Spatial reference system"  msgstr "" -#: models.py:2236 models.py:2987 +#: models.py:2238 models.py:2989  msgid "Support type"  msgstr "" -#: models.py:2237 models.py:2628 +#: models.py:2239 models.py:2630  msgid "Title type"  msgstr "" -#: models.py:2243 +#: models.py:2245  msgid "Integer"  msgstr "" -#: models.py:2244 +#: models.py:2246  msgid "Float"  msgstr "" -#: models.py:2245 +#: models.py:2247  msgid "String"  msgstr "" -#: models.py:2246 templates/sheet_ope.html:86 +#: models.py:2248 templates/sheet_ope.html:86  msgid "Date"  msgstr "" -#: models.py:2248 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2250 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83  #: templates/ishtar/dashboards/dashboard_main_detail.html:126  msgid "Year"  msgstr "" -#: models.py:2249 +#: models.py:2251  msgid "String to boolean"  msgstr "" -#: models.py:2250 +#: models.py:2252  msgctxt "filesystem"  msgid "File"  msgstr "" -#: models.py:2251 +#: models.py:2253  msgid "Unknow type"  msgstr "" -#: models.py:2267 +#: models.py:2269  msgid "4 digit year. e.g.: \"2015\""  msgstr "" -#: models.py:2268 +#: models.py:2270  msgid "4 digit year/month/day. e.g.: \"2015/02/04\""  msgstr "" -#: models.py:2269 +#: models.py:2271  msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""  msgstr "" -#: models.py:2279 +#: models.py:2281  msgid "Options"  msgstr "" -#: models.py:2281 +#: models.py:2283  msgid "Split character(s)"  msgstr "" -#: models.py:2285 +#: models.py:2287  msgid "Importer - Formater type"  msgstr "" -#: models.py:2286 +#: models.py:2288  msgid "Importer - Formater types"  msgstr "" -#: models.py:2338 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2340 templates/ishtar/dashboards/dashboard_main_detail.html:63  msgid "Created"  msgstr "" -#: models.py:2339 +#: models.py:2341  msgid "Analyse in progress"  msgstr "" -#: models.py:2340 +#: models.py:2342  msgid "Analysed"  msgstr "" -#: models.py:2341 +#: models.py:2343  msgid "Import pending"  msgstr "" -#: models.py:2342 +#: models.py:2344  msgid "Import in progress"  msgstr "" -#: models.py:2343 +#: models.py:2345 models.py:3184  msgid "Finished with errors"  msgstr "" -#: models.py:2344 +#: models.py:2346 models.py:3185  msgid "Finished"  msgstr "" -#: models.py:2345 +#: models.py:2347  msgid "Archived"  msgstr "" -#: models.py:2360 +#: models.py:2362  msgid "Imported file"  msgstr "" -#: models.py:2362 +#: models.py:2364  msgid "Associated images (zip file)"  msgstr "" -#: models.py:2364 +#: models.py:2366  msgid "Encoding"  msgstr "" -#: models.py:2366 +#: models.py:2368  msgid "Skip lines"  msgstr "" -#: models.py:2367 templates/ishtar/import_list.html:51 +#: models.py:2369 templates/ishtar/import_list.html:51  msgid "Error file"  msgstr "" -#: models.py:2370 +#: models.py:2372  msgid "Result file"  msgstr "" -#: models.py:2373 templates/ishtar/import_list.html:57 +#: models.py:2375 templates/ishtar/import_list.html:57  msgid "Match file"  msgstr "" -#: models.py:2379 +#: models.py:2381  msgid "Conservative import"  msgstr "" -#: models.py:2383 +#: models.py:2385  msgid "End date"  msgstr "" -#: models.py:2386 +#: models.py:2388  msgid "Remaining seconds"  msgstr "" -#: models.py:2389 +#: models.py:2391  msgid "Import"  msgstr "" -#: models.py:2418 +#: models.py:2420  msgid "Analyse"  msgstr "" -#: models.py:2420 models.py:2423 +#: models.py:2422 models.py:2425  msgid "Re-analyse"  msgstr "" -#: models.py:2421 +#: models.py:2423  msgid "Launch import"  msgstr "" -#: models.py:2424 +#: models.py:2426  msgid "Re-import"  msgstr "" -#: models.py:2425 +#: models.py:2427  msgid "Archive"  msgstr "" -#: models.py:2427 +#: models.py:2429  msgid "Unarchive"  msgstr "" -#: models.py:2428 widgets.py:198 templates/ishtar/form_delete.html:11 +#: models.py:2430 widgets.py:198 templates/ishtar/form_delete.html:11  msgid "Delete"  msgstr "" -#: models.py:2569 +#: models.py:2571  msgid "Organizations"  msgstr "" -#: models.py:2571 +#: models.py:2573  msgid "Can view all Organizations"  msgstr "" -#: models.py:2572 +#: models.py:2574  msgid "Can view own Organization"  msgstr "" -#: models.py:2573 +#: models.py:2575  msgid "Can add own Organization"  msgstr "" -#: models.py:2575 +#: models.py:2577  msgid "Can change own Organization"  msgstr "" -#: models.py:2577 +#: models.py:2579  msgid "Can delete own Organization"  msgstr "" -#: models.py:2612 +#: models.py:2614  msgid "Groups"  msgstr "" -#: models.py:2617 +#: models.py:2619  msgid "Person types"  msgstr "" -#: models.py:2629 +#: models.py:2631  msgid "Title types"  msgstr "" -#: models.py:2638 +#: models.py:2640  msgid "Mr"  msgstr "" -#: models.py:2639 +#: models.py:2641  msgid "Miss"  msgstr "" -#: models.py:2640 +#: models.py:2642  msgid "Mr and Mrs"  msgstr "" -#: models.py:2641 +#: models.py:2643  msgid "Mrs"  msgstr "" -#: models.py:2642 +#: models.py:2644  msgid "Doctor"  msgstr "" -#: models.py:2675 +#: models.py:2677  msgid "Contact type"  msgstr "" -#: models.py:2678 models.py:2742 +#: models.py:2680 models.py:2744  msgid "Types"  msgstr "" -#: models.py:2681 +#: models.py:2683  msgid "Is attached to"  msgstr "" -#: models.py:2686 +#: models.py:2688  msgid "Persons"  msgstr "" -#: models.py:2688 +#: models.py:2690  msgid "Can view all Persons"  msgstr "" -#: models.py:2689 +#: models.py:2691  msgid "Can view own Person"  msgstr "" -#: models.py:2690 +#: models.py:2692  msgid "Can add own Person"  msgstr "" -#: models.py:2691 +#: models.py:2693  msgid "Can change own Person"  msgstr "" -#: models.py:2692 +#: models.py:2694  msgid "Can delete own Person"  msgstr "" -#: models.py:2881 +#: models.py:2883  msgid "Advanced shortcut menu"  msgstr "" -#: models.py:2884 +#: models.py:2886  msgid "Ishtar user"  msgstr "" -#: models.py:2885 +#: models.py:2887  msgid "Ishtar users"  msgstr "" -#: models.py:2925 +#: models.py:2927  msgid "To modify the password use the form in Auth > User"  msgstr "" -#: models.py:2933 +#: models.py:2935  msgid "Author types"  msgstr "" -#: models.py:2950 +#: models.py:2952  msgid "Can view all Authors"  msgstr "" -#: models.py:2952 +#: models.py:2954  msgid "Can view own Author"  msgstr "" -#: models.py:2954 +#: models.py:2956  msgid "Can add own Author"  msgstr "" -#: models.py:2956 +#: models.py:2958  msgid "Can change own Author"  msgstr "" -#: models.py:2958 +#: models.py:2960  msgid "Can delete own Author"  msgstr "" -#: models.py:2979 +#: models.py:2981  msgid "Source types"  msgstr "" -#: models.py:2988 +#: models.py:2990  msgid "Support types"  msgstr "" -#: models.py:2995 +#: models.py:2997  msgid "Format type"  msgstr "" -#: models.py:2996 +#: models.py:2998  msgid "Format types"  msgstr "" -#: models.py:3004 +#: models.py:3006  msgid "External ID"  msgstr "" -#: models.py:3007 +#: models.py:3009  msgid "Support"  msgstr "" -#: models.py:3011 +#: models.py:3013  msgid "Scale"  msgstr "" -#: models.py:3025 +#: models.py:3027  msgid "Item number"  msgstr "" -#: models.py:3026 +#: models.py:3028  msgid "Ref."  msgstr "" -#: models.py:3029 +#: models.py:3031  msgid "Internal ref."  msgstr "" -#: models.py:3072 +#: models.py:3074  msgid "Surface (m2)"  msgstr "" -#: models.py:3073 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:3075 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107  msgid "Localisation"  msgstr "" -#: models.py:3098 +#: models.py:3100  msgid "Is preventive"  msgstr "" -#: models.py:3102 +#: models.py:3104  msgid "Operation types"  msgstr "" -#: models.py:3131 +#: models.py:3133  msgid "Preventive"  msgstr "" -#: models.py:3132 +#: models.py:3134  msgid "Research"  msgstr "" -#: models.py:3155 +#: models.py:3157  msgid "Authority name"  msgstr "" -#: models.py:3156 +#: models.py:3158  msgid "Authority SRID"  msgstr "" -#: models.py:3160 +#: models.py:3162  msgid "Spatial reference systems"  msgstr "" +#: models.py:3169 +msgid "Filename" +msgstr "" + +#: models.py:3174 +msgid "Administration script" +msgstr "" + +#: models.py:3175 +msgid "Administration scripts" +msgstr "" + +#: models.py:3182 +msgid "Scheduled" +msgstr "" + +#: models.py:3183 +msgid "In progress" +msgstr "" + +#: models.py:3198 +msgid "Result" +msgstr "" + +#: models.py:3201 +msgid "Administration task" +msgstr "" + +#: models.py:3202 +msgid "Administration tasks" +msgstr "" + +#: models.py:3206 +msgid "Unknown" +msgstr "" + +#: models.py:3221 +msgid "" +"ISHTAR_SCRIPT_DIR is not set in your local_settings. Contact your " +"administrator." +msgstr "" + +#: models.py:3230 +msgid "" +"Your ISHTAR_SCRIPT_DIR is containing dots \"..\". As it can refer to " +"relative paths, it can be a security issue and this is not allowed. Only put " +"a full path." +msgstr "" + +#: models.py:3241 +msgid "Your ISHTAR_SCRIPT_DIR: \"{}\" is not a valid directory." +msgstr "" + +#: models.py:3257 +msgid "" +"Script \"{}\" is not available in your script directory. Check your " +"configuration." +msgstr "" +  #: utils.py:100  msgid " (...)"  msgstr "" diff --git a/ishtar_common/management/commands/ishtar_excute_admin_tasks.py b/ishtar_common/management/commands/ishtar_excute_admin_tasks.py new file mode 100644 index 000000000..3fe66ad3b --- /dev/null +++ b/ishtar_common/management/commands/ishtar_excute_admin_tasks.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from django.core.management.base import BaseCommand, CommandError + +from ishtar_common import models + + +class Command(BaseCommand): +    help = "./manage.py ishtar_execute_admin_tasks\n\n"\ +           "Launch pending administration tasks." + +    def handle(self, *args, **options): +        for task in models.AdministrationTask.objects.filter(state='S').all(): +            task.execute() diff --git a/ishtar_common/migrations/0077_auto__add_administrationscript__add_administrationtask.py b/ishtar_common/migrations/0077_auto__add_administrationscript__add_administrationtask.py new file mode 100644 index 000000000..b6f2680e6 --- /dev/null +++ b/ishtar_common/migrations/0077_auto__add_administrationscript__add_administrationtask.py @@ -0,0 +1,530 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + +    def forwards(self, orm): +        # Adding model 'AdministrationScript' +        db.create_table('ishtar_common_administrationscript', ( +            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), +            ('path', self.gf('django.db.models.fields.CharField')(max_length=30)), +            ('name', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), +        )) +        db.send_create_signal('ishtar_common', ['AdministrationScript']) + +        # Adding model 'AdministrationTask' +        db.create_table('ishtar_common_administrationtask', ( +            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), +            ('script', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ishtar_common.AdministrationScript'])), +            ('state', self.gf('django.db.models.fields.CharField')(default='S', max_length=2)), +            ('creation_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), +            ('launch_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), +            ('finished_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), +            ('result', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), +        )) +        db.send_create_signal('ishtar_common', ['AdministrationTask']) + + +    def backwards(self, orm): +        # Deleting model 'AdministrationScript' +        db.delete_table('ishtar_common_administrationscript') + +        # Deleting model 'AdministrationTask' +        db.delete_table('ishtar_common_administrationtask') + + +    models = { +        '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.administrationscript': { +            'Meta': {'ordering': "['name']", 'object_name': 'AdministrationScript'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'path': ('django.db.models.fields.CharField', [], {'max_length': '30'}) +        }, +        'ishtar_common.administrationtask': { +            'Meta': {'ordering': "['script']", 'object_name': 'AdministrationTask'}, +            'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), +            'finished_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'launch_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), +            'result': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'script': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AdministrationScript']"}), +            'state': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '2'}) +        }, +        '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': {'ordering': "('author_type__order', 'person__name')", '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', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) +        }, +        'ishtar_common.authortype': { +            'Meta': {'ordering': "['order', 'label']", 'object_name': 'AuthorType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.documenttemplate': { +            'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, +            'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) +        }, +        'ishtar_common.format': { +            'Meta': {'ordering': "['label']", 'object_name': 'Format'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.formatertype': { +            'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'}, +            'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.globalvar': { +            'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'}, +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), +            'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.historicalorganization': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), +            'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.historicalperson': { +            'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalPerson'}, +            'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'attached_to_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'title_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.import': { +            'Meta': {'object_name': 'Import'}, +            'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), +            'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), +            'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), +            'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}), +            'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', 'null': 'True', 'blank': 'True'}), +            'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), +            'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), +            'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), +            'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), +            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) +        }, +        'ishtar_common.importercolumn': { +            'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'}, +            'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'export_field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), +            'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) +        }, +        'ishtar_common.importerdefault': { +            'Meta': {'object_name': 'ImporterDefault'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}), +            'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) +        }, +        'ishtar_common.importerdefaultvalues': { +            'Meta': {'object_name': 'ImporterDefaultValues'}, +            'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}), +            'value': ('django.db.models.fields.CharField', [], {'max_length': '500'}) +        }, +        'ishtar_common.importerduplicatefield': { +            'Meta': {'object_name': 'ImporterDuplicateField'}, +            'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}), +            'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), +            'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) +        }, +        'ishtar_common.importermodel': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) +        }, +        'ishtar_common.importertype': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'}, +            'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}), +            'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}), +            'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), +            'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.importtarget': { +            'Meta': {'object_name': 'ImportTarget'}, +            'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), +            'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), +            'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) +        }, +        'ishtar_common.ishtarsiteprofile': { +            'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'}, +            'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'base_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(0, 0, 0, 0)'", 'max_length': '200'}), +            'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}), +            'container_external_id': ('django.db.models.fields.TextField', [], {'default': "'{responsible__external_id}-{index}'"}), +            'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'context_record_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(210,200,0,0.2)'", 'max_length': '200'}), +            'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}), +            'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}), +            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{year}-{numeric_reference}'"}), +            'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'files_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(0, 32, 210, 0.1)'", 'max_length': '200'}), +            'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'find_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(210,0,0,0.15)'", 'max_length': '200'}), +            'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}), +            'find_index': ('django.db.models.fields.CharField', [], {'default': "'O'", 'max_length': '2'}), +            'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'label': ('django.db.models.fields.TextField', [], {}), +            'mapping': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'mapping_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(72, 236, 0, 0.15)'", 'max_length': '200'}), +            'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}), +            'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}), +            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), +            'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'warehouse_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(10,20,200,0.15)'", 'max_length': '200'}), +            'warehouse_external_id': ('django.db.models.fields.TextField', [], {'default': "'{name|slug}'"}) +        }, +        'ishtar_common.ishtaruser': { +            'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, +            'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), +            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) +        }, +        'ishtar_common.itemkey': { +            'Meta': {'object_name': 'ItemKey'}, +            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), +            'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}) +        }, +        'ishtar_common.operationtype': { +            'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '1'}), +            'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), +            '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'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.organizationtype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), +            'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), +            'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), +            'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), +            'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), +            'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), +            'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), +            'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), +            'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), +            'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), +            'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), +            'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.persontype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), +            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", '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': '100'}) +        }, +        'ishtar_common.regexp': { +            'Meta': {'object_name': 'Regexp'}, +            'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), +            'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'}) +        }, +        'ishtar_common.sourcetype': { +            'Meta': {'ordering': "['label']", 'object_name': 'SourceType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.spatialreferencesystem': { +            'Meta': {'ordering': "('label',)", 'object_name': 'SpatialReferenceSystem'}, +            'auth_name': ('django.db.models.fields.CharField', [], {'default': "'EPSG'", 'max_length': '256'}), +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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', [], {'default': '10'}), +            'srid': ('django.db.models.fields.IntegerField', [], {}), +            'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) +        }, +        'ishtar_common.state': { +            'Meta': {'ordering': "['number']", 'object_name': 'State'}, +            '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.supporttype': { +            'Meta': {'object_name': 'SupportType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        'ishtar_common.targetkey': { +            'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'}, +            'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), +            'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'key': ('django.db.models.fields.TextField', [], {}), +            'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}), +            'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) +        }, +        'ishtar_common.titletype': { +            'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, +            'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), +            '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': '100'}) +        }, +        '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'}), +            'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), +            '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'}) +        } +    } + +    complete_apps = ['ishtar_common']
\ No newline at end of file diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 83127f2f0..0277ddefb 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -28,9 +28,11 @@ from PIL import Image  from importlib import import_module  import logging  import os +from os.path import isfile, join  import re  from secretary import Renderer as SecretaryRenderer  import shutil +from subprocess import Popen, PIPE  import tempfile  import time  import unicodecsv @@ -3036,7 +3038,7 @@ post_delete.connect(post_save_cache, sender=Format)  class Source(OwnPerms, ImageModel, models.Model):      title = models.CharField(_(u"Title"), max_length=300) -    external_id = models.CharField(_(u"External ID"), max_length=12, null=True, +    external_id = models.TextField(_(u"External ID"), max_length=300, null=True,                                     blank=True)      source_type = models.ForeignKey(SourceType, verbose_name=_(u"Type"))      support_type = models.ForeignKey(SupportType, verbose_name=_(u"Support"), @@ -3196,3 +3198,123 @@ class SpatialReferenceSystem(GeneralType):          ordering = ('label',)  post_save.connect(post_save_cache, sender=SpatialReferenceSystem)  post_delete.connect(post_save_cache, sender=SpatialReferenceSystem) + + +class AdministrationScript(models.Model): +    path = models.CharField(_(u"Filename"), max_length=30) +    name = models.TextField(_(u"Name"), +                            null=True, blank=True) + +    class Meta: +        verbose_name = _(u"Administration script") +        verbose_name_plural = _(u"Administration scripts") +        ordering = ['name'] + +    def __unicode__(self): +        return unicode(self.name) + + +SCRIPT_STATE = (("S", _(u"Scheduled")), +                ("P", _(u"In progress")), +                ("FE", _(u"Finished with errors")), +                ("F", _(u"Finished")), +                ) + +SCRIPT_STATE_DCT = dict(SCRIPT_STATE) + + +class AdministrationTask(models.Model): +    script = models.ForeignKey(AdministrationScript) +    state = models.CharField(_(u"State"), max_length=2, choices=SCRIPT_STATE, +                             default='S') +    creation_date = models.DateTimeField(default=datetime.datetime.now) +    launch_date = models.DateTimeField(null=True, blank=True) +    finished_date = models.DateTimeField(null=True, blank=True) +    result = models.TextField(_(u"Result"), null=True, blank=True) + +    class Meta: +        verbose_name = _(u"Administration task") +        verbose_name_plural = _(u"Administration tasks") +        ordering = ['script'] + +    def __unicode__(self): +        state = _(u"Unknown") +        if self.state in SCRIPT_STATE_DCT: +            state = unicode(SCRIPT_STATE_DCT[self.state]) +        return u"{} - {} - {}".format(self.script, self.creation_date, +                                      state) + +    def execute(self): +        if self.state != 'S': +            return +        self.launch_date = datetime.datetime.now() + +        script_dir = settings.ISHTAR_SCRIPT_DIR + +        if not script_dir: +            self.result = unicode( +                _(u"ISHTAR_SCRIPT_DIR is not set in your " +                  u"local_settings. Contact your administrator.")) +            self.state = 'FE' +            self.finished_date = datetime.datetime.now() +            self.save() +            return + +        if '..' in script_dir: +            self.result = unicode( +                _(u"Your ISHTAR_SCRIPT_DIR is containing " +                  u"dots \"..\". As it can refer to relative " +                  u"paths, it can be a security issue and this is " +                  u"not allowed. Only put a full path.")) +            self.state = 'FE' +            self.finished_date = datetime.datetime.now() +            self.save() +            return + +        if not os.path.isdir(script_dir): +            self.result = unicode( +                _(u"Your ISHTAR_SCRIPT_DIR: \"{}\" is not a valid directory.") +            ).format(script_dir) +            self.state = 'FE' +            self.finished_date = datetime.datetime.now() +            self.save() +            return + +        script_name = None +        # only script inside the script directory can be executed +        for name in os.listdir(script_dir): +            if name == self.script.path: +                if isfile(join(script_dir, name)): +                    script_name = join(script_dir, name) +                break +        if not script_name: +            self.result = unicode( +                _(u"Script \"{}\" is not available in your script directory. " +                  u"Check your configuration.") +            ).format(self.script.path) +            self.state = 'FE' +            self.finished_date = datetime.datetime.now() +            self.save() +            return +        self.state = 'P' +        self.save() + +        self.finished_date = datetime.datetime.now() +        try: +            session = Popen([script_name], stdout=PIPE, stderr=PIPE) +            stdout, stderr = session.communicate() +        except OSError as e: +            self.state = 'FE' +            self.result = u"Error executing \"{}\" script: {}".format( +                self.script.path, e) +            self.save() +            return + +        self.finished_date = datetime.datetime.now() +        if stderr: +            self.state = 'FE' +            self.result = u"Error: {}".format(stderr) +        else: +            self.state = 'F' +            self.result = u"{}".format(stdout) +        self.save() diff --git a/ishtar_common/templates/blocks/form_snippet.html b/ishtar_common/templates/blocks/form_snippet.html index 2f841e078..5ee88e25f 100644 --- a/ishtar_common/templates/blocks/form_snippet.html +++ b/ishtar_common/templates/blocks/form_snippet.html @@ -10,4 +10,7 @@    </tr>    <tr class="help_text" id="{{field.auto_id}}_help">      <td colspan="3"><div>{{field.help_text}}</div></td> -  {%endif%}</tr>{% else %}{{field}}{% endif %}{% endfor %} +  {%endif%}</tr>{% else %}{{field}}{% if field.errors %} + <tr class='errors'> +    <td colspan='3'>{{field.name}} - {{ field.errors }}</td> +  </tr>{% endif %}{{field|safe}}{% endif %}{% endfor %} diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 63b46c40c..d89c8546c 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -192,9 +192,11 @@ class WizardTest(object):                                                 self.wizard_name):                      [current_step],                  } + +                # reconstruct a POST request                  if current_step in form_data:                      d = form_data[current_step] -                    if type(d) in (list, tuple):  # formset +                    if type(d) in (list, tuple):  # is a formset                          for d_idx, item in enumerate(d):                              for k in item:                                  data['{}-{}-{}'.format( @@ -209,16 +211,21 @@ class WizardTest(object):                      response = self.client.post(                          url, data, follow=not next_form_is_checked)                  except ValidationError as e: -                    # on ManagementForm data is missing or has been tampered -                    # error verify the wizard_name or step name -                    raise ValidationError(u"Errors: {} on {}.".format( -                        u" - ".join(e.messages), current_step)) +                    msg = u"Errors: {} on {}. On \"ManagementForm data is " \ +                          u"missing or...\" error verify the wizard_name or " \ +                          u"step name".format(u" - ".join(e.messages), +                                              current_step) +                    raise ValidationError(msg)                  self.check_response(response, current_step)                  if next_form_is_checked:                      next_form = self.steps[idx + 1][0]                      self.assertRedirects(                          response, -                        '/{}/{}'.format(self.url_name, next_form)) +                        '/{}/{}'.format(self.url_name, next_form), +                        msg_prefix="Redirection to {} has failed - " +                                   "Error on previous form ({})?".format( +                            next_form, current_step) +                    )                  if idx == len(self.steps) - 1:                      #  last form                      self.assertRedirects( diff --git a/translations/de/ishtar_common.po b/translations/de/ishtar_common.po index 90908f2a6..b925c52da 100644 --- a/translations/de/ishtar_common.po +++ b/translations/de/ishtar_common.po @@ -122,31 +122,31 @@ msgstr ""  msgid "Importer configuration error: field \"{}\" does not exist for {}."  msgstr "" -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "line"  msgstr "" -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "col"  msgstr "" -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "error"  msgstr "" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "field"  msgstr "" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "source"  msgstr "" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "result"  msgstr "" -#: data_importer.py:1581 +#: data_importer.py:1596  #, python-format  msgid "\"%(value)s\" not in %(values)s"  msgstr "" @@ -179,12 +179,12 @@ msgstr ""  msgid "Add a new item"  msgstr "" -#: forms.py:297 models.py:1556 +#: forms.py:297 models.py:1558  msgid "Template"  msgstr ""  #: forms_common.py:41 forms_common.py:59 forms_common.py:184 -#: forms_common.py:408 models.py:1622 models.py:3085 +#: forms_common.py:408 models.py:1624 models.py:3087  #: templates/blocks/JQueryAdvancedTown.html:19  #: templates/ishtar/sheet_organization.html:13  msgid "Town" @@ -200,8 +200,8 @@ msgid ""  "french town Saint-Denis in the Seine-Saint-Denis department.</p>"  msgstr "" -#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2685 -#: models.py:2878 models.py:2940 templates/ishtar/sheet_person.html:4 +#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2687 +#: models.py:2880 models.py:2942 templates/ishtar/sheet_person.html:4  msgid "Person"  msgstr "" @@ -212,64 +212,65 @@ msgid ""  msgstr ""  #: forms_common.py:172 forms_common.py:329 forms_common.py:453 -#: ishtar_menu.py:75 models.py:2568 models.py:2659 +#: ishtar_menu.py:75 models.py:2570 models.py:2661  #: templates/ishtar/sheet_organization.html:4  msgid "Organization"  msgstr ""  #: forms_common.py:175 forms_common.py:212 forms_common.py:324 -#: forms_common.py:378 forms_common.py:448 models.py:1159 models.py:1555 -#: models.py:1824 models.py:1840 models.py:2078 models.py:2356 models.py:2562 -#: models.py:2671 models.py:3071 templates/ishtar/import_list.html:13 +#: forms_common.py:378 forms_common.py:448 models.py:1161 models.py:1557 +#: models.py:1826 models.py:1842 models.py:2080 models.py:2358 models.py:2564 +#: models.py:2673 models.py:3073 models.py:3170 +#: templates/ishtar/import_list.html:13  #: templates/ishtar/sheet_organization.html:8  #: templates/ishtar/sheet_organization.html:21  msgid "Name"  msgstr "Name" -#: forms_common.py:176 models.py:1777 models.py:2209 +#: forms_common.py:176 models.py:1779 models.py:2211  msgid "Organization type"  msgstr "" -#: forms_common.py:178 forms_common.py:402 models.py:1617 +#: forms_common.py:178 forms_common.py:402 models.py:1619  #: templates/ishtar/sheet_organization.html:10  msgid "Address"  msgstr "" -#: forms_common.py:180 forms_common.py:405 models.py:1618 +#: forms_common.py:180 forms_common.py:405 models.py:1620  #: templates/ishtar/sheet_organization.html:11  msgid "Address complement"  msgstr "" -#: forms_common.py:182 forms_common.py:406 models.py:1620 +#: forms_common.py:182 forms_common.py:406 models.py:1622  #: templates/ishtar/sheet_organization.html:12  msgid "Postal code"  msgstr "Postleitzahl" -#: forms_common.py:185 forms_common.py:409 models.py:1623 +#: forms_common.py:185 forms_common.py:409 models.py:1625  msgid "Country"  msgstr ""  #: forms_common.py:187 forms_common.py:326 forms_common.py:382 -#: forms_common.py:450 forms_common.py:574 models.py:1650 +#: forms_common.py:450 forms_common.py:574 models.py:1652  msgid "Email"  msgstr "E-Mail-Adresse" -#: forms_common.py:188 forms_common.py:385 models.py:1635 +#: forms_common.py:188 forms_common.py:385 models.py:1637  #: templates/ishtar/sheet_organization.html:14  #: templates/ishtar/sheet_person.html:21  #: templates/ishtar/wizard/wizard_person.html:17  msgid "Phone"  msgstr "" -#: forms_common.py:189 forms_common.py:394 models.py:1647 +#: forms_common.py:189 forms_common.py:394 models.py:1649  #: templates/ishtar/sheet_organization.html:15  #: templates/ishtar/sheet_person.html:39  #: templates/ishtar/wizard/wizard_person.html:35  msgid "Mobile phone"  msgstr "" -#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2247 -#: models.py:2564 models.py:3006 templates/sheet_ope.html:85 +#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2249 +#: models.py:2566 models.py:3008 templates/sheet_ope.html:85  #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126  #: templates/ishtar/import_list.html:14  #: templates/ishtar/sheet_organization.html:23 @@ -293,7 +294,7 @@ msgstr ""  msgid "Organization to merge"  msgstr "" -#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2669 +#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2671  #: templates/ishtar/sheet_organization.html:22  msgid "Surname"  msgstr "" @@ -311,25 +312,25 @@ msgstr ""  msgid "Identity"  msgstr "" -#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2210 -#: models.py:2663 models.py:2665 models.py:3003 templates/sheet_ope.html:104 +#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2212 +#: models.py:2665 models.py:2667 models.py:3005 templates/sheet_ope.html:104  #: templates/ishtar/blocks/window_tables/documents.html:7  msgid "Title"  msgstr "" -#: forms_common.py:374 models.py:2667 +#: forms_common.py:374 models.py:2669  msgid "Salutation"  msgstr "" -#: forms_common.py:380 models.py:2673 +#: forms_common.py:380 models.py:2675  msgid "Raw name"  msgstr "" -#: forms_common.py:383 models.py:1636 +#: forms_common.py:383 models.py:1638  msgid "Phone description"  msgstr "" -#: forms_common.py:386 models.py:1638 models.py:1640 +#: forms_common.py:386 models.py:1640 models.py:1642  msgid "Phone description 2"  msgstr "" @@ -337,11 +338,11 @@ msgstr ""  msgid "Phone 2"  msgstr "" -#: forms_common.py:390 models.py:1644 +#: forms_common.py:390 models.py:1646  msgid "Phone description 3"  msgstr "" -#: forms_common.py:392 models.py:1642 +#: forms_common.py:392 models.py:1644  msgid "Phone 3"  msgstr "" @@ -349,23 +350,23 @@ msgstr ""  msgid "Current organization"  msgstr "" -#: forms_common.py:411 models.py:1625 +#: forms_common.py:411 models.py:1627  msgid "Other address: address"  msgstr "" -#: forms_common.py:414 models.py:1628 +#: forms_common.py:414 models.py:1630  msgid "Other address: address complement"  msgstr "" -#: forms_common.py:416 models.py:1629 +#: forms_common.py:416 models.py:1631  msgid "Other address: postal code"  msgstr "" -#: forms_common.py:418 models.py:1631 +#: forms_common.py:418 models.py:1633  msgid "Other address: town"  msgstr "" -#: forms_common.py:420 models.py:1633 +#: forms_common.py:420 models.py:1635  msgid "Other address: country"  msgstr "" @@ -381,7 +382,7 @@ msgstr "Benutzername"  msgid "Account search"  msgstr "" -#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2616 +#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2618  msgid "Person type"  msgstr "" @@ -413,7 +414,7 @@ msgstr ""  msgid "Send the new password by email?"  msgstr "" -#: forms_common.py:636 forms_common.py:649 models.py:3086 +#: forms_common.py:636 forms_common.py:649 models.py:3088  msgid "Towns"  msgstr "" @@ -429,7 +430,7 @@ msgstr ""  msgid "Documentation informations"  msgstr "" -#: forms_common.py:783 forms_common.py:831 models.py:2211 models.py:2978 +#: forms_common.py:783 forms_common.py:831 models.py:2213 models.py:2980  msgid "Source type"  msgstr "" @@ -441,37 +442,37 @@ msgstr ""  msgid "Internal reference"  msgstr "" -#: forms_common.py:791 models.py:3017 +#: forms_common.py:791 models.py:3019  msgid "Numerical ressource (web address)"  msgstr "" -#: forms_common.py:792 models.py:3019 +#: forms_common.py:792 models.py:3021  msgid "Receipt date"  msgstr "" -#: forms_common.py:794 models.py:2382 models.py:3021 +#: forms_common.py:794 models.py:2384 models.py:3023  msgid "Creation date"  msgstr "Gründungsdatum" -#: forms_common.py:797 models.py:3024 +#: forms_common.py:797 models.py:3026  msgid "Receipt date in documentation"  msgstr "" -#: forms_common.py:799 forms_common.py:835 models.py:419 models.py:746 -#: models.py:2105 models.py:2677 models.py:3031 +#: forms_common.py:799 forms_common.py:835 models.py:421 models.py:748 +#: models.py:2107 models.py:2679 models.py:3033  msgid "Comment"  msgstr "" -#: forms_common.py:801 forms_common.py:834 models.py:1161 models.py:1844 -#: models.py:2032 models.py:2079 models.py:3030 templates/sheet_ope.html:128 +#: forms_common.py:801 forms_common.py:834 models.py:1163 models.py:1846 +#: models.py:2034 models.py:2081 models.py:3032 templates/sheet_ope.html:128  msgid "Description"  msgstr "Beschreibung" -#: forms_common.py:804 models.py:3032 +#: forms_common.py:804 models.py:3034  msgid "Additional information"  msgstr "" -#: forms_common.py:806 forms_common.py:838 models.py:3034 +#: forms_common.py:806 forms_common.py:838 models.py:3036  msgid "Has a duplicate"  msgstr "" @@ -486,7 +487,7 @@ msgid ""  "p>"  msgstr "" -#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2945 +#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2947  #: templates/ishtar/wizard/wizard_person_deletion.html:124  msgid "Author"  msgstr "" @@ -499,7 +500,7 @@ msgstr ""  msgid "Would you like to delete this documentation?"  msgstr "" -#: forms_common.py:864 models.py:2212 models.py:2932 models.py:2942 +#: forms_common.py:864 models.py:2214 models.py:2934 models.py:2944  msgid "Author type"  msgstr "" @@ -511,7 +512,7 @@ msgstr ""  msgid "There are identical authors."  msgstr "" -#: forms_common.py:901 models.py:2946 models.py:3013 +#: forms_common.py:901 models.py:2948 models.py:3015  #: templates/sheet_ope.html:106  #: templates/ishtar/blocks/window_tables/documents.html:9  msgid "Authors" @@ -529,7 +530,7 @@ msgstr ""  msgid "Deletion"  msgstr "" -#: ishtar_menu.py:39 models.py:1338 views.py:1648 +#: ishtar_menu.py:39 models.py:1340 views.py:1648  msgid "Global variables"  msgstr "" @@ -557,7 +558,7 @@ msgstr ""  msgid "Manual merge"  msgstr "" -#: ishtar_menu.py:109 models.py:2390 +#: ishtar_menu.py:109 models.py:2392  msgid "Imports"  msgstr "" @@ -573,280 +574,280 @@ msgstr ""  msgid "Old imports"  msgstr "" -#: models.py:224 +#: models.py:226  msgid "Not a valid item."  msgstr "" -#: models.py:239 +#: models.py:241  msgid "A selected item is not a valid item."  msgstr "" -#: models.py:250 +#: models.py:252  msgid "This item already exists."  msgstr "" -#: models.py:415 models.py:745 models.py:1590 models.py:1602 models.py:2028 +#: models.py:417 models.py:747 models.py:1592 models.py:1604 models.py:2030  msgid "Label"  msgstr "" -#: models.py:417 +#: models.py:419  msgid "Textual ID"  msgstr "" -#: models.py:420 models.py:748 models.py:1559 +#: models.py:422 models.py:750 models.py:1561  msgid "Available"  msgstr "" -#: models.py:772 models.py:2151 +#: models.py:774 models.py:2153  msgid "Key"  msgstr "" -#: models.py:778 +#: models.py:780  msgid "Specific key to an import"  msgstr "" -#: models.py:874 +#: models.py:876  msgid "Last editor"  msgstr "" -#: models.py:877 +#: models.py:879  msgid "Creator"  msgstr "" -#: models.py:1019 models.py:2929 models.py:3097 models.py:3153 +#: models.py:1021 models.py:2931 models.py:3099 models.py:3155  msgid "Order"  msgstr "" -#: models.py:1020 +#: models.py:1022  msgid "Symmetrical"  msgstr "" -#: models.py:1021 +#: models.py:1023  msgid "Tiny label"  msgstr "" -#: models.py:1035 +#: models.py:1037  msgid "Cannot have symmetrical and an inverse_relation"  msgstr "" -#: models.py:1151 +#: models.py:1153  msgid "Euro"  msgstr "" -#: models.py:1152 +#: models.py:1154  msgid "US dollar"  msgstr "" -#: models.py:1153 views.py:1446 views.py:1508 +#: models.py:1155 views.py:1446 views.py:1508  msgid "Operations"  msgstr "" -#: models.py:1154 views.py:1448 views.py:1512 +#: models.py:1156 views.py:1448 views.py:1512  msgid "Context records"  msgstr "" -#: models.py:1160 models.py:1842 +#: models.py:1162 models.py:1844  msgid "Slug"  msgstr "" -#: models.py:1163 +#: models.py:1165  msgid "CSS color code for base module"  msgstr "" -#: models.py:1165 +#: models.py:1167  msgid "Files module"  msgstr "" -#: models.py:1167 +#: models.py:1169  msgid "CSS color code for files module"  msgstr "" -#: models.py:1169 +#: models.py:1171  msgid "Context records module"  msgstr "" -#: models.py:1172 +#: models.py:1174  msgid "CSS color code for context record module"  msgstr "" -#: models.py:1174 +#: models.py:1176  msgid "Finds module"  msgstr "" -#: models.py:1175 +#: models.py:1177  msgid "Need context records module"  msgstr "" -#: models.py:1177 +#: models.py:1179  msgid "Find index is based on"  msgstr "" -#: models.py:1179 +#: models.py:1181  msgid ""  "To prevent irrelevant indexes, change this parameter only if there is no "  "find in the database"  msgstr "" -#: models.py:1182 +#: models.py:1184  msgid "CSS color code for find module"  msgstr "" -#: models.py:1185 +#: models.py:1187  msgid "Warehouses module"  msgstr "" -#: models.py:1186 +#: models.py:1188  msgid "Need finds module"  msgstr "" -#: models.py:1188 +#: models.py:1190  msgid "CSS code for warehouse module"  msgstr "" -#: models.py:1190 +#: models.py:1192  msgid "Mapping module"  msgstr "" -#: models.py:1192 +#: models.py:1194  msgid "CSS code for mapping module"  msgstr "" -#: models.py:1195 +#: models.py:1197  msgid "Home page"  msgstr "" -#: models.py:1196 +#: models.py:1198  #, python-brace-format  msgid ""  "Homepage of Ishtar - if not defined a default homepage will appear. Use the "  "markdown syntax. {random_image} can be used to display a random image."  msgstr "" -#: models.py:1200 +#: models.py:1202  msgid "File external id"  msgstr "" -#: models.py:1202 +#: models.py:1204  msgid ""  "Formula to manage file external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can "  "be destructive."  msgstr "" -#: models.py:1207 +#: models.py:1209  msgid "Parcel external id"  msgstr "" -#: models.py:1210 +#: models.py:1212  msgid ""  "Formula to manage parcel external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can "  "be destructive."  msgstr "" -#: models.py:1215 +#: models.py:1217  msgid "Context record external id"  msgstr "" -#: models.py:1217 +#: models.py:1219  msgid ""  "Formula to manage context record external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external "  "data can be destructive."  msgstr "" -#: models.py:1222 +#: models.py:1224  msgid "Base find external id"  msgstr "" -#: models.py:1224 +#: models.py:1226  msgid ""  "Formula to manage base find external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external "  "data can be destructive."  msgstr "" -#: models.py:1229 +#: models.py:1231  msgid "Find external id"  msgstr "" -#: models.py:1231 +#: models.py:1233  msgid ""  "Formula to manage find external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can "  "be destructive."  msgstr "" -#: models.py:1236 +#: models.py:1238  msgid "Container external id"  msgstr "" -#: models.py:1238 +#: models.py:1240  msgid ""  "Formula to manage container external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external "  "data can be destructive."  msgstr "" -#: models.py:1243 +#: models.py:1245  msgid "Warehouse external id"  msgstr "" -#: models.py:1245 +#: models.py:1247  msgid ""  "Formula to manage warehouse external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external "  "data can be destructive."  msgstr "" -#: models.py:1250 +#: models.py:1252  msgid "Raw name for person"  msgstr "" -#: models.py:1252 +#: models.py:1254  msgid ""  "Formula to manage person raw_name. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can "  "be destructive."  msgstr "" -#: models.py:1256 +#: models.py:1258  msgid "Current active"  msgstr "" -#: models.py:1257 +#: models.py:1259  msgid "Currency"  msgstr "" -#: models.py:1261 +#: models.py:1263  msgid "Ishtar site profile"  msgstr "" -#: models.py:1262 +#: models.py:1264  msgid "Ishtar site profiles"  msgstr "" -#: models.py:1331 +#: models.py:1333  msgid "Variable name"  msgstr "" -#: models.py:1332 +#: models.py:1334  msgid "Description of the variable"  msgstr "" -#: models.py:1334 models.py:2152 +#: models.py:1336 models.py:2154  msgid "Value"  msgstr "" -#: models.py:1337 +#: models.py:1339  msgid "Global variable"  msgstr "" -#: models.py:1460 models.py:1490 +#: models.py:1462 models.py:1492  msgid "Total"  msgstr "" -#: models.py:1467 models.py:1591 models.py:1603 +#: models.py:1469 models.py:1593 models.py:1605  #: templates/ishtar/sheet_person.html:24  #: templates/ishtar/dashboards/dashboard_main_detail.html:141  #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -854,666 +855,725 @@ msgstr ""  msgid "Number"  msgstr "" -#: models.py:1554 +#: models.py:1556  msgid "Administrative Act"  msgstr "" -#: models.py:1558 +#: models.py:1560  msgid "Associated object"  msgstr "" -#: models.py:1562 +#: models.py:1564  msgid "Document template"  msgstr "" -#: models.py:1563 +#: models.py:1565  msgid "Document templates"  msgstr "" -#: models.py:1594 models.py:1604 models.py:2376 +#: models.py:1596 models.py:1606 models.py:2378 models.py:3193  msgid "State"  msgstr "" -#: models.py:1608 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1610 templates/blocks/JQueryAdvancedTown.html:12  msgid "Department"  msgstr "" -#: models.py:1609 +#: models.py:1611  msgid "Departments"  msgstr "" -#: models.py:1646 +#: models.py:1648  msgid "Raw phone"  msgstr "" -#: models.py:1652 +#: models.py:1654  msgid "Alternative address is prefered"  msgstr "" -#: models.py:1691 +#: models.py:1693  msgid "Tel: "  msgstr "" -#: models.py:1695 +#: models.py:1697  msgid "Mobile: "  msgstr "" -#: models.py:1699 +#: models.py:1701  msgid "Email: "  msgstr "E-Mail-Adresse:" -#: models.py:1704 +#: models.py:1706  msgid "Merge key"  msgstr "" -#: models.py:1778 +#: models.py:1780  msgid "Organization types"  msgstr "" -#: models.py:1825 +#: models.py:1827  msgid "Class name"  msgstr "" -#: models.py:1828 +#: models.py:1830  msgid "Importer - Model"  msgstr "" -#: models.py:1829 +#: models.py:1831  msgid "Importer - Models"  msgstr "" -#: models.py:1846 templates/ishtar/dashboards/dashboard_main.html:34 +#: models.py:1848 templates/ishtar/dashboards/dashboard_main.html:34  msgid "Users"  msgstr "" -#: models.py:1849 +#: models.py:1851  msgid "Associated model"  msgstr "" -#: models.py:1852 +#: models.py:1854  msgid "Models that can accept new items"  msgstr "" -#: models.py:1853 +#: models.py:1855  msgid "Leave blank for no restrictions"  msgstr "" -#: models.py:1855 +#: models.py:1857  msgid "Is template"  msgstr "" -#: models.py:1856 +#: models.py:1858  msgid "Unicity keys (separator \";\")"  msgstr "" -#: models.py:1860 +#: models.py:1862  msgid "Importer - Type"  msgstr "" -#: models.py:1861 +#: models.py:1863  msgid "Importer - Types"  msgstr "" -#: models.py:1960 +#: models.py:1962  msgid "Importer - Default"  msgstr "" -#: models.py:1961 +#: models.py:1963  msgid "Importer - Defaults"  msgstr "" -#: models.py:1996 +#: models.py:1998  msgid "Importer - Default value"  msgstr "" -#: models.py:1997 +#: models.py:1999  msgid "Importer - Default values"  msgstr "" -#: models.py:2031 +#: models.py:2033  msgid "Column number"  msgstr "" -#: models.py:2034 +#: models.py:2036  msgid "Required"  msgstr "" -#: models.py:2036 +#: models.py:2038  msgid "Export field name"  msgstr "" -#: models.py:2037 +#: models.py:2039  msgid ""  "Fill this field if the field name is ambiguous for export. For instance: "  "concatenated fields."  msgstr "" -#: models.py:2042 +#: models.py:2044  msgid "Importer - Column"  msgstr "" -#: models.py:2043 +#: models.py:2045  msgid "Importer - Columns"  msgstr "" -#: models.py:2063 +#: models.py:2065  msgid "Field name"  msgstr "" -#: models.py:2065 models.py:2099 +#: models.py:2067 models.py:2101  msgid "Force creation of new items"  msgstr "" -#: models.py:2067 models.py:2101 +#: models.py:2069 models.py:2103  msgid "Concatenate with existing"  msgstr "" -#: models.py:2069 models.py:2103 +#: models.py:2071 models.py:2105  msgid "Concatenate character"  msgstr "" -#: models.py:2073 +#: models.py:2075  msgid "Importer - Duplicate field"  msgstr "" -#: models.py:2074 +#: models.py:2076  msgid "Importer - Duplicate fields"  msgstr "" -#: models.py:2081 +#: models.py:2083  msgid "Regular expression"  msgstr "" -#: models.py:2084 +#: models.py:2086  msgid "Importer - Regular expression"  msgstr "" -#: models.py:2085 +#: models.py:2087  msgid "Importer - Regular expressions"  msgstr "" -#: models.py:2108 +#: models.py:2110  msgid "Importer - Target"  msgstr "" -#: models.py:2109 +#: models.py:2111  msgid "Importer - Targets"  msgstr "" -#: models.py:2133 views.py:578 +#: models.py:2135 views.py:578  msgid "True"  msgstr "" -#: models.py:2134 views.py:580 +#: models.py:2136 views.py:580  msgid "False"  msgstr "" -#: models.py:2153 +#: models.py:2155  msgid "Is set"  msgstr "" -#: models.py:2160 +#: models.py:2162  msgid "Importer - Target key"  msgstr "" -#: models.py:2161 +#: models.py:2163  msgid "Importer - Targets keys"  msgstr "" -#: models.py:2213 models.py:3009 +#: models.py:2215 models.py:3011  msgid "Format"  msgstr "" -#: models.py:2214 models.py:3101 +#: models.py:2216 models.py:3103  msgid "Operation type"  msgstr "" -#: models.py:2215 +#: models.py:2217  msgid "Period"  msgstr "" -#: models.py:2216 +#: models.py:2218  msgid "Report state"  msgstr "" -#: models.py:2217 +#: models.py:2219  msgid "Remain type"  msgstr "" -#: models.py:2218 +#: models.py:2220  msgid "Unit"  msgstr "" -#: models.py:2220 +#: models.py:2222  msgid "Activity type"  msgstr "" -#: models.py:2221 +#: models.py:2223  msgid "Material"  msgstr "" -#: models.py:2223 +#: models.py:2225  msgid "Conservatory state"  msgstr "" -#: models.py:2224 +#: models.py:2226  msgid "Container type"  msgstr "" -#: models.py:2225 +#: models.py:2227  msgid "Preservation type"  msgstr "" -#: models.py:2226 +#: models.py:2228  msgid "Object type"  msgstr "" -#: models.py:2227 +#: models.py:2229  msgid "Integrity type"  msgstr "" -#: models.py:2229 +#: models.py:2231  msgid "Remarkability type"  msgstr "" -#: models.py:2230 +#: models.py:2232  msgid "Batch type"  msgstr "" -#: models.py:2232 +#: models.py:2234  msgid "Identification type"  msgstr "" -#: models.py:2234 +#: models.py:2236  msgid "Context record relation type"  msgstr "" -#: models.py:2235 models.py:3159 +#: models.py:2237 models.py:3161  msgid "Spatial reference system"  msgstr "" -#: models.py:2236 models.py:2987 +#: models.py:2238 models.py:2989  msgid "Support type"  msgstr "" -#: models.py:2237 models.py:2628 +#: models.py:2239 models.py:2630  msgid "Title type"  msgstr "" -#: models.py:2243 +#: models.py:2245  msgid "Integer"  msgstr "" -#: models.py:2244 +#: models.py:2246  msgid "Float"  msgstr "" -#: models.py:2245 +#: models.py:2247  msgid "String"  msgstr "" -#: models.py:2246 templates/sheet_ope.html:86 +#: models.py:2248 templates/sheet_ope.html:86  msgid "Date"  msgstr "" -#: models.py:2248 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2250 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83  #: templates/ishtar/dashboards/dashboard_main_detail.html:126  msgid "Year"  msgstr "" -#: models.py:2249 +#: models.py:2251  msgid "String to boolean"  msgstr "" -#: models.py:2250 +#: models.py:2252  msgctxt "filesystem"  msgid "File"  msgstr "" -#: models.py:2251 +#: models.py:2253  msgid "Unknow type"  msgstr "" -#: models.py:2267 +#: models.py:2269  msgid "4 digit year. e.g.: \"2015\""  msgstr "" -#: models.py:2268 +#: models.py:2270  msgid "4 digit year/month/day. e.g.: \"2015/02/04\""  msgstr "" -#: models.py:2269 +#: models.py:2271  msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""  msgstr "" -#: models.py:2279 +#: models.py:2281  msgid "Options"  msgstr "" -#: models.py:2281 +#: models.py:2283  msgid "Split character(s)"  msgstr "" -#: models.py:2285 +#: models.py:2287  msgid "Importer - Formater type"  msgstr "" -#: models.py:2286 +#: models.py:2288  msgid "Importer - Formater types"  msgstr "" -#: models.py:2338 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2340 templates/ishtar/dashboards/dashboard_main_detail.html:63  msgid "Created"  msgstr "" -#: models.py:2339 +#: models.py:2341  msgid "Analyse in progress"  msgstr "" -#: models.py:2340 +#: models.py:2342  msgid "Analysed"  msgstr "" -#: models.py:2341 +#: models.py:2343  msgid "Import pending"  msgstr "" -#: models.py:2342 +#: models.py:2344  msgid "Import in progress"  msgstr "" -#: models.py:2343 +#: models.py:2345 models.py:3184  msgid "Finished with errors"  msgstr "" -#: models.py:2344 +#: models.py:2346 models.py:3185  msgid "Finished"  msgstr "" -#: models.py:2345 +#: models.py:2347  msgid "Archived"  msgstr "" -#: models.py:2360 +#: models.py:2362  msgid "Imported file"  msgstr "" -#: models.py:2362 +#: models.py:2364  msgid "Associated images (zip file)"  msgstr "" -#: models.py:2364 +#: models.py:2366  msgid "Encoding"  msgstr "" -#: models.py:2366 +#: models.py:2368  msgid "Skip lines"  msgstr "" -#: models.py:2367 templates/ishtar/import_list.html:51 +#: models.py:2369 templates/ishtar/import_list.html:51  msgid "Error file"  msgstr "" -#: models.py:2370 +#: models.py:2372  msgid "Result file"  msgstr "" -#: models.py:2373 templates/ishtar/import_list.html:57 +#: models.py:2375 templates/ishtar/import_list.html:57  msgid "Match file"  msgstr "" -#: models.py:2379 +#: models.py:2381  msgid "Conservative import"  msgstr "" -#: models.py:2383 +#: models.py:2385  msgid "End date"  msgstr "" -#: models.py:2386 +#: models.py:2388  msgid "Remaining seconds"  msgstr "" -#: models.py:2389 +#: models.py:2391  msgid "Import"  msgstr "" -#: models.py:2418 +#: models.py:2420  msgid "Analyse"  msgstr "" -#: models.py:2420 models.py:2423 +#: models.py:2422 models.py:2425  msgid "Re-analyse"  msgstr "" -#: models.py:2421 +#: models.py:2423  msgid "Launch import"  msgstr "" -#: models.py:2424 +#: models.py:2426  msgid "Re-import"  msgstr "" -#: models.py:2425 +#: models.py:2427  msgid "Archive"  msgstr "" -#: models.py:2427 +#: models.py:2429  msgid "Unarchive"  msgstr "" -#: models.py:2428 widgets.py:198 templates/ishtar/form_delete.html:11 +#: models.py:2430 widgets.py:198 templates/ishtar/form_delete.html:11  msgid "Delete"  msgstr "" -#: models.py:2569 +#: models.py:2571  msgid "Organizations"  msgstr "" -#: models.py:2571 +#: models.py:2573  msgid "Can view all Organizations"  msgstr "" -#: models.py:2572 +#: models.py:2574  msgid "Can view own Organization"  msgstr "" -#: models.py:2573 +#: models.py:2575  msgid "Can add own Organization"  msgstr "" -#: models.py:2575 +#: models.py:2577  msgid "Can change own Organization"  msgstr "" -#: models.py:2577 +#: models.py:2579  msgid "Can delete own Organization"  msgstr "" -#: models.py:2612 +#: models.py:2614  msgid "Groups"  msgstr "" -#: models.py:2617 +#: models.py:2619  msgid "Person types"  msgstr "" -#: models.py:2629 +#: models.py:2631  msgid "Title types"  msgstr "" -#: models.py:2638 +#: models.py:2640  msgid "Mr"  msgstr "" -#: models.py:2639 +#: models.py:2641  msgid "Miss"  msgstr "" -#: models.py:2640 +#: models.py:2642  msgid "Mr and Mrs"  msgstr "" -#: models.py:2641 +#: models.py:2643  msgid "Mrs"  msgstr "" -#: models.py:2642 +#: models.py:2644  msgid "Doctor"  msgstr "" -#: models.py:2675 +#: models.py:2677  msgid "Contact type"  msgstr "" -#: models.py:2678 models.py:2742 +#: models.py:2680 models.py:2744  msgid "Types"  msgstr "" -#: models.py:2681 +#: models.py:2683  msgid "Is attached to"  msgstr "" -#: models.py:2686 +#: models.py:2688  msgid "Persons"  msgstr "" -#: models.py:2688 +#: models.py:2690  msgid "Can view all Persons"  msgstr "" -#: models.py:2689 +#: models.py:2691  msgid "Can view own Person"  msgstr "" -#: models.py:2690 +#: models.py:2692  msgid "Can add own Person"  msgstr "" -#: models.py:2691 +#: models.py:2693  msgid "Can change own Person"  msgstr "" -#: models.py:2692 +#: models.py:2694  msgid "Can delete own Person"  msgstr "" -#: models.py:2881 +#: models.py:2883  msgid "Advanced shortcut menu"  msgstr "" -#: models.py:2884 +#: models.py:2886  msgid "Ishtar user"  msgstr "" -#: models.py:2885 +#: models.py:2887  msgid "Ishtar users"  msgstr "" -#: models.py:2925 +#: models.py:2927  msgid "To modify the password use the form in Auth > User"  msgstr "" -#: models.py:2933 +#: models.py:2935  msgid "Author types"  msgstr "" -#: models.py:2950 +#: models.py:2952  msgid "Can view all Authors"  msgstr "" -#: models.py:2952 +#: models.py:2954  msgid "Can view own Author"  msgstr "" -#: models.py:2954 +#: models.py:2956  msgid "Can add own Author"  msgstr "" -#: models.py:2956 +#: models.py:2958  msgid "Can change own Author"  msgstr "" -#: models.py:2958 +#: models.py:2960  msgid "Can delete own Author"  msgstr "" -#: models.py:2979 +#: models.py:2981  msgid "Source types"  msgstr "" -#: models.py:2988 +#: models.py:2990  msgid "Support types"  msgstr "" -#: models.py:2995 +#: models.py:2997  msgid "Format type"  msgstr "" -#: models.py:2996 +#: models.py:2998  msgid "Format types"  msgstr "" -#: models.py:3004 +#: models.py:3006  msgid "External ID"  msgstr "" -#: models.py:3007 +#: models.py:3009  msgid "Support"  msgstr "" -#: models.py:3011 +#: models.py:3013  msgid "Scale"  msgstr "" -#: models.py:3025 +#: models.py:3027  msgid "Item number"  msgstr "" -#: models.py:3026 +#: models.py:3028  msgid "Ref."  msgstr "" -#: models.py:3029 +#: models.py:3031  msgid "Internal ref."  msgstr "" -#: models.py:3072 +#: models.py:3074  msgid "Surface (m2)"  msgstr "" -#: models.py:3073 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:3075 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107  msgid "Localisation"  msgstr "Lokalisierung" -#: models.py:3098 +#: models.py:3100  msgid "Is preventive"  msgstr "" -#: models.py:3102 +#: models.py:3104  msgid "Operation types"  msgstr "" -#: models.py:3131 +#: models.py:3133  msgid "Preventive"  msgstr "" -#: models.py:3132 +#: models.py:3134  msgid "Research"  msgstr "" -#: models.py:3155 +#: models.py:3157  msgid "Authority name"  msgstr "" -#: models.py:3156 +#: models.py:3158  msgid "Authority SRID"  msgstr "" -#: models.py:3160 +#: models.py:3162  msgid "Spatial reference systems"  msgstr "" +#: models.py:3169 +msgid "Filename" +msgstr "" + +#: models.py:3174 +msgid "Administration script" +msgstr "" + +#: models.py:3175 +msgid "Administration scripts" +msgstr "" + +#: models.py:3182 +msgid "Scheduled" +msgstr "" + +#: models.py:3183 +msgid "In progress" +msgstr "" + +#: models.py:3198 +msgid "Result" +msgstr "" + +#: models.py:3201 +msgid "Administration task" +msgstr "" + +#: models.py:3202 +msgid "Administration tasks" +msgstr "" + +#: models.py:3206 +msgid "Unknown" +msgstr "" + +#: models.py:3221 +msgid "" +"ISHTAR_SCRIPT_DIR is not set in your local_settings. Contact your " +"administrator." +msgstr "" + +#: models.py:3230 +msgid "" +"Your ISHTAR_SCRIPT_DIR is containing dots \"..\". As it can refer to " +"relative paths, it can be a security issue and this is not allowed. Only put " +"a full path." +msgstr "" + +#: models.py:3241 +msgid "Your ISHTAR_SCRIPT_DIR: \"{}\" is not a valid directory." +msgstr "" + +#: models.py:3257 +msgid "" +"Script \"{}\" is not available in your script directory. Check your " +"configuration." +msgstr "" +  #: utils.py:100  msgid " (...)"  msgstr "" diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 94c6923eb..cef69d5c5 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -21,116 +21,116 @@ msgstr ""  msgid "Operation"  msgstr "Opération" -#: forms.py:59 forms.py:141 models.py:219 models.py:568 +#: forms.py:59 forms.py:142 models.py:219 models.py:568  msgid "ID"  msgstr "Identifiant" -#: forms.py:64 +#: forms.py:65  msgid "Code PATRIARCHE"  msgstr "Code PATRIARCHE" -#: forms.py:65 +#: forms.py:66  msgid "Operation's year"  msgstr "Année de l'opération" -#: forms.py:67 +#: forms.py:68  msgid "Operation's number (index by year)"  msgstr "Numéro de l'opération (index par année)" -#: forms.py:69 +#: forms.py:70  msgid "Archaeological site"  msgstr "Entité archéologique" -#: forms.py:75 +#: forms.py:76  msgid "Search within related operations"  msgstr "Rechercher parmi les opérations liées" -#: forms.py:77 forms.py:254 models.py:56 +#: forms.py:78 forms.py:255 models.py:56  msgid "Period"  msgstr "Période" -#: forms.py:78 +#: forms.py:79  msgid "Unit type"  msgstr "Type d'unité" -#: forms.py:79 +#: forms.py:80  msgid "Parcel (section/number/public domain)"  msgstr "Parcelle (section/numéro/domaine public)" -#: forms.py:81 +#: forms.py:82  msgid "Search within relations"  msgstr "Rechercher parmi les relations" -#: forms.py:111 forms.py:358 views.py:92 +#: forms.py:112 forms.py:359 views.py:92  msgid "Context record search"  msgstr "Rechercher une Unité d'Enregistrement" -#: forms.py:125 +#: forms.py:126  msgid "You should at least select one context record."  msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement." -#: forms.py:131 +#: forms.py:132  msgid "General"  msgstr "Général" -#: forms.py:140 models.py:181 models.py:215 models.py:570 +#: forms.py:141 models.py:181 models.py:215 models.py:570  msgid "Parcel"  msgstr "Parcelle" -#: forms.py:143 models.py:220 models.py:571 +#: forms.py:144 models.py:220 models.py:571  #: templates/ishtar/sheet_contextrecord.html:30  msgid "Description"  msgstr "Description" -#: forms.py:145 models.py:221 +#: forms.py:146 models.py:221  msgid "General comment"  msgstr "Commentaire général" -#: forms.py:148 models.py:268 +#: forms.py:149 models.py:268  msgid "Excavation technique"  msgstr "Méthode de fouille" -#: forms.py:149 models.py:225 +#: forms.py:150 models.py:225  msgid "Length (m)"  msgstr "Taille (m)" -#: forms.py:150 models.py:226 +#: forms.py:151 models.py:226  msgid "Width (m)"  msgstr "Largeur (m)" -#: forms.py:151 models.py:227 +#: forms.py:152 models.py:227  msgid "Thickness (m)"  msgstr "Épaisseur (m)" -#: forms.py:152 models.py:229 +#: forms.py:153 models.py:229  msgid "Diameter (m)"  msgstr "Diamètre (m)" -#: forms.py:153 models.py:230 +#: forms.py:154 models.py:230  msgid "Depth (m)"  msgstr "Profondeur (m)" -#: forms.py:155 models.py:232 +#: forms.py:156 models.py:232  msgid "Depth of appearance (m)"  msgstr "Profondeur d'apparition" -#: forms.py:156 forms.py:377 models.py:242 models.py:569 +#: forms.py:157 forms.py:379 models.py:242 models.py:569  msgid "Context record type"  msgstr "Type d'Unité d'Enregistrement" -#: forms.py:159 ishtar_menu.py:48 +#: forms.py:160 ishtar_menu.py:48  msgid "Documentation"  msgstr "Documentation" -#: forms.py:162 models.py:234 +#: forms.py:163 models.py:234  msgid "Location"  msgstr "Lieu" -#: forms.py:165 +#: forms.py:166  msgid "Image"  msgstr "Image" -#: forms.py:166 +#: forms.py:167  #, python-format  msgid ""  "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</" @@ -139,112 +139,112 @@ msgstr ""  "<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "  "ratio est conservé).</p>" -#: forms.py:243 +#: forms.py:244  msgid "This ID already exists for this operation."  msgstr "Cet identifiant existe déjà pour cette opération." -#: forms.py:249 forms.py:276 models.py:67 +#: forms.py:250 forms.py:277 models.py:67  msgid "Dating"  msgstr "Datation" -#: forms.py:255 models.py:57 +#: forms.py:256 models.py:57  msgid "Start date"  msgstr "Date de début" -#: forms.py:256 models.py:58 models.py:224 +#: forms.py:257 models.py:58 models.py:224  msgid "End date"  msgstr "Date de fin" -#: forms.py:257 models.py:61 +#: forms.py:258 models.py:61  msgid "Quality"  msgstr "Qualité" -#: forms.py:258 models.py:39 models.py:59 +#: forms.py:259 models.py:39 models.py:59  msgid "Dating type"  msgstr "Type de datation" -#: forms.py:285 ishtar_menu.py:29 models.py:642 +#: forms.py:286 ishtar_menu.py:29 models.py:642  msgid "Context record"  msgstr "Unité d'Enregistrement" -#: forms.py:307 +#: forms.py:308  msgid "Relations"  msgstr "Relations" -#: forms.py:311 forms.py:319 models.py:245 +#: forms.py:312 forms.py:320 models.py:245  #: templates/ishtar/sheet_contextrecord.html:44  msgid "Interpretation"  msgstr "Interprétation" -#: forms.py:315 +#: forms.py:316  msgid "Comments on dating"  msgstr "Commentaires sur la datation" -#: forms.py:317 models.py:244 +#: forms.py:318 models.py:244  msgid "Filling"  msgstr "Remplissage" -#: forms.py:321 models.py:265 +#: forms.py:322 models.py:265  msgid "Activity"  msgstr "Activité" -#: forms.py:323 models.py:263 +#: forms.py:324 models.py:263  msgid "Identification"  msgstr "Identification" -#: forms.py:325 models.py:248 +#: forms.py:326 models.py:248  msgid "TAQ"  msgstr "TAQ" -#: forms.py:326 models.py:252 +#: forms.py:327 models.py:252  msgid "Estimated TAQ"  msgstr "TAQ estimé" -#: forms.py:328 models.py:255 +#: forms.py:329 models.py:255  msgid "TPQ"  msgstr "TPQ" -#: forms.py:329 models.py:259 +#: forms.py:330 models.py:259  msgid "Estimated TPQ"  msgstr "TPQ estimé" -#: forms.py:344 +#: forms.py:345  msgid "Operation search"  msgstr "Rechercher une opération" -#: forms.py:346 +#: forms.py:347  msgid "You should select an operation."  msgstr "Vous devez sélectionner une Opération." -#: forms.py:351 +#: forms.py:352  msgid "Would you like to delete this context record?"  msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?" -#: forms.py:360 +#: forms.py:361  msgid "You should select a context record."  msgstr "Vous devez sélectionner une Unité d'Enregistrement." -#: forms.py:365 +#: forms.py:366  msgid "Year of the operation"  msgstr "Année de l'opération" -#: forms.py:367 +#: forms.py:368  msgid "Numeric reference"  msgstr "Référence numérique" -#: forms.py:373 +#: forms.py:375  msgid "Town of the operation"  msgstr "Commune de l'opération" -#: forms.py:375 +#: forms.py:377  msgid "Period of the context record"  msgstr "Période de l'Unité d'Enregistrement" -#: forms.py:390 +#: forms.py:392  msgid "Documentation search"  msgstr "Rechercher une documentation" -#: forms.py:392 +#: forms.py:394  msgid "You should select a document."  msgstr "Vous devez sélectionner un document." @@ -529,31 +529,31 @@ msgstr "Peut modifier sa propre Documentation d'unité d'enregistrement"  msgid "Can delete own Context record source"  msgstr "Peut supprimer sa propre Documentation d'unité d'enregistrement" -#: views.py:102 +#: views.py:105  msgid "New context record"  msgstr "Ajouter une Unité d'Enregistrement" -#: views.py:113 +#: views.py:116  msgid "Context record modification"  msgstr "Modifier une Unité d'Enregistrement" -#: views.py:127 +#: views.py:130  msgid "Context record deletion"  msgstr "Supprimer une Unité d'Enregistrement" -#: views.py:132 +#: views.py:135  msgid "Context record: source search"  msgstr "Unité d'Enregistrement : rechercher une documentation associée" -#: views.py:140 +#: views.py:143  msgid "Context record: new source"  msgstr "Unité d'Enregistrement : ajouter une documentation associée" -#: views.py:148 +#: views.py:151  msgid "Context record: source modification"  msgstr "Unité d'Enregistrement : modifier une documentation associée" -#: views.py:163 +#: views.py:166  msgid "Context record: source deletion"  msgstr "Unité d'Enregistrement : supprimer une documentation associée" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 6b2e9b5ff..129e58cae 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -11,7 +11,7 @@ msgstr ""  "MIME-Version: 1.0\n"  "Content-Transfer-Encoding: 8bit\n"  "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2017-05-16 04:46-0400\n" +"PO-Revision-Date: 2017-06-27 11:32-0400\n"  "Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"  "Language-Team: \n"  "Language: fr\n" @@ -29,7 +29,7 @@ msgid "Find"  msgstr "Mobilier"  #: forms.py:142 forms.py:347 forms.py:629 models_finds.py:151 -#: models_finds.py:635 +#: models_finds.py:635 templates/ishtar/sheet_find.html:17  msgid "Free ID"  msgstr "ID libre" @@ -82,15 +82,15 @@ msgstr "Remarquabilité"  msgid "Point of topographic reference"  msgstr "Point de référence topographique" -#: forms.py:176 models_finds.py:171 templates/ishtar/sheet_find.html:209 +#: forms.py:176 models_finds.py:171 templates/ishtar/sheet_find.html:208  msgid "X"  msgstr "X" -#: forms.py:177 models_finds.py:172 templates/ishtar/sheet_find.html:210 +#: forms.py:177 models_finds.py:172 templates/ishtar/sheet_find.html:209  msgid "Y"  msgstr "Y" -#: forms.py:178 models_finds.py:173 templates/ishtar/sheet_find.html:211 +#: forms.py:178 models_finds.py:173 templates/ishtar/sheet_find.html:210  msgid "Z"  msgstr "Z" @@ -213,13 +213,13 @@ msgstr "Période"  #: forms.py:316 forms_treatments.py:138 forms_treatments.py:283  #: forms_treatments.py:481 models_finds.py:1186 models_treatments.py:130 -#: models_treatments.py:309 templates/ishtar/sheet_find.html:95 -#: templates/ishtar/sheet_find.html:137 +#: models_treatments.py:309 templates/ishtar/sheet_find.html:94 +#: templates/ishtar/sheet_find.html:136  msgid "Start date"  msgstr "Date de début"  #: forms.py:318 models_finds.py:1187 models_treatments.py:310 -#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:138 +#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:137  msgid "End date"  msgstr "Date de fin" @@ -374,7 +374,7 @@ msgid "Basket"  msgstr "Panier"  #: forms_treatments.py:52 forms_treatments.py:92 models_treatments.py:99 -#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:131 +#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:130  msgid "Label"  msgstr "Intitulé" @@ -404,7 +404,7 @@ msgid "Base treatment"  msgstr "Traitement de base"  #: forms_treatments.py:103 models_treatments.py:93 models_treatments.py:112 -#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:133 +#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:132  msgid "State"  msgstr "État" @@ -583,8 +583,8 @@ msgid "Internal ref."  msgstr "Réf. interne"  #: forms_treatments.py:403 forms_treatments.py:460 models_treatments.py:92 -#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:132 -#: templates/ishtar/sheet_find.html:232 +#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:131 +#: templates/ishtar/sheet_find.html:231  msgid "Type"  msgstr "Type" @@ -689,8 +689,8 @@ msgstr "Documentation"  msgid "Administrative act"  msgstr "Acte administratif" -#: ishtar_menu.py:151 ishtar_menu.py:233 templates/ishtar/sheet_find.html:226 -#: templates/ishtar/sheet_find.html:228 +#: ishtar_menu.py:151 ishtar_menu.py:233 templates/ishtar/sheet_find.html:225 +#: templates/ishtar/sheet_find.html:227  msgid "Documents"  msgstr "Documents" @@ -862,11 +862,11 @@ msgstr "Vérifié mais incorrect"  msgid "Checked and correct"  msgstr "Vérifié et correct" -#: models_finds.py:539 +#: models_finds.py:539 templates/ishtar/sheet_find.html:19  msgid "Base find - Short ID"  msgstr "Mobilier de base - ID court" -#: models_finds.py:540 +#: models_finds.py:540 templates/ishtar/sheet_find.html:18  msgid "Base find - Complete ID"  msgstr "Mobilier de base - ID complet" @@ -911,8 +911,8 @@ msgid "Base find - Discovery date"  msgstr "Mobilier de base - Date de découverte"  #: models_finds.py:556 models_finds.py:662 models_treatments.py:132 -#: models_treatments.py:312 templates/ishtar/sheet_find.html:94 -#: templates/ishtar/sheet_find.html:136 +#: models_treatments.py:312 templates/ishtar/sheet_find.html:93 +#: templates/ishtar/sheet_find.html:135  msgid "Container"  msgstr "Contenant" @@ -928,11 +928,11 @@ msgstr "Mesures de conservation à envisager"  msgid "Weight unit"  msgstr "Unité de poids" -#: models_finds.py:655 templates/ishtar/sheet_find.html:82 +#: models_finds.py:655 templates/ishtar/sheet_find.html:81  msgid "Upstream treatment"  msgstr "Traitement amont" -#: models_finds.py:658 templates/ishtar/sheet_find.html:124 +#: models_finds.py:658 templates/ishtar/sheet_find.html:123  msgid "Downstream treatment"  msgstr "Traitement aval" @@ -1078,7 +1078,7 @@ msgstr "Coût d'assurance"  msgid "Target a basket"  msgstr "Appliquer à un panier" -#: models_treatments.py:149 templates/ishtar/sheet_find.html:79 +#: models_treatments.py:149 templates/ishtar/sheet_find.html:78  #: templates/ishtar/sheet_treatmentfile.html:46  msgid "Treatments"  msgstr "Traitements" @@ -1107,8 +1107,8 @@ msgstr "Peut supprimer son propre Traitement"  msgid "TREATMENT"  msgstr "TRAITEMENT" -#: models_treatments.py:313 templates/ishtar/sheet_find.html:93 -#: templates/ishtar/sheet_find.html:135 +#: models_treatments.py:313 templates/ishtar/sheet_find.html:92 +#: templates/ishtar/sheet_find.html:134  msgid "Doer"  msgstr "Opérateur" @@ -1360,55 +1360,59 @@ msgstr ""  "Cette fiche a un traitement aval associé, elle concerne une vieille version "  "de ce mobilier." -#: templates/ishtar/sheet_find.html:29 +#: templates/ishtar/sheet_find.html:20 +msgid "Find - Administrative ID" +msgstr "Mobilier - Index administratif" + +#: templates/ishtar/sheet_find.html:28  msgid "Administrative index"  msgstr "Index administratif" -#: templates/ishtar/sheet_find.html:71 +#: templates/ishtar/sheet_find.html:70  msgid "Warehouse"  msgstr "Dépôt" -#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:130 +#: templates/ishtar/sheet_find.html:87 templates/ishtar/sheet_find.html:129  msgid "Year - index"  msgstr "Année - index" -#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:134 +#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:133  msgid "Related finds (max. 15 displayed)"  msgstr "Mobilier associé (max. 15 affichés)" -#: templates/ishtar/sheet_find.html:120 +#: templates/ishtar/sheet_find.html:119  msgid "Export as CSV"  msgstr "Export en CSV" -#: templates/ishtar/sheet_find.html:120 templates/ishtar/sheet_find.html:163 +#: templates/ishtar/sheet_find.html:119 templates/ishtar/sheet_find.html:162  msgid "CSV"  msgstr "CSV" -#: templates/ishtar/sheet_find.html:168 +#: templates/ishtar/sheet_find.html:167  msgid "Associated base finds"  msgstr "Mobilier de base associé" -#: templates/ishtar/sheet_find.html:175 +#: templates/ishtar/sheet_find.html:174  msgid "Internal ID"  msgstr "ID interne" -#: templates/ishtar/sheet_find.html:207 +#: templates/ishtar/sheet_find.html:206  msgid "Coordinates"  msgstr "Coordonnées" -#: templates/ishtar/sheet_find.html:214 +#: templates/ishtar/sheet_find.html:213  msgid "SRID"  msgstr "SRID" -#: templates/ishtar/sheet_find.html:231 +#: templates/ishtar/sheet_find.html:230  msgid "Title"  msgstr "Titre" -#: templates/ishtar/sheet_find.html:233 +#: templates/ishtar/sheet_find.html:232  msgid "Authors"  msgstr "Auteurs" -#: templates/ishtar/sheet_find.html:234 +#: templates/ishtar/sheet_find.html:233  msgid "Link"  msgstr "Lien" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index ccff86182..7d6ba7163 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -19,13 +19,13 @@ msgstr ""  "Plural-Forms: nplurals=2; plural=n>1;\n"  "X-Generator: Zanata 3.9.6\n" -#: forms.py:69 forms.py:371 forms.py:1055 forms.py:1077 forms.py:1081 -#: models.py:1252 templates/ishtar/sheet_operation.html:153 +#: forms.py:69 forms.py:371 forms.py:1059 forms.py:1081 forms.py:1085 +#: models.py:1254 templates/ishtar/sheet_operation.html:153  #: templates/ishtar/blocks/window_tables/parcels.html:10  msgid "Parcels"  msgstr "Parcelles" -#: forms.py:72 forms.py:205 forms.py:1031 models.py:1238 +#: forms.py:72 forms.py:205 forms.py:1035 models.py:1240  #: templates/ishtar/blocks/window_tables/parcels.html:7  #: templates/ishtar/dashboards/dashboard_operation.html:432  #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -34,22 +34,22 @@ msgstr "Parcelles"  msgid "Town"  msgstr "Commune" -#: forms.py:74 forms.py:481 forms.py:781 forms.py:1301 models.py:276 -#: models.py:1044 models.py:1236 +#: forms.py:74 forms.py:483 forms.py:785 forms.py:1306 models.py:276 +#: models.py:1046 models.py:1238  #: templates/ishtar/blocks/window_tables/parcels.html:8  msgid "Year"  msgstr "Année" -#: forms.py:77 models.py:1239 +#: forms.py:77 models.py:1241  #: templates/ishtar/blocks/window_tables/parcels.html:9  msgid "Section"  msgstr "Section" -#: forms.py:80 models.py:1241 +#: forms.py:80 models.py:1243  msgid "Parcel number"  msgstr "Numéro de parcelle" -#: forms.py:82 models.py:1243 models.py:1260 models.py:1309 +#: forms.py:82 models.py:1245 models.py:1262 models.py:1311  msgid "Public domain"  msgstr "Domaine public" @@ -85,8 +85,8 @@ msgstr "Il y a des parcelles identiques."  msgid "Relation type"  msgstr "Type de relation" -#: forms.py:383 ishtar_menu.py:30 models.py:372 models.py:847 models.py:882 -#: models.py:922 models.py:1026 models.py:1235 wizards.py:352 wizards.py:363 +#: forms.py:383 ishtar_menu.py:30 models.py:372 models.py:849 models.py:884 +#: models.py:924 models.py:1028 models.py:1237 wizards.py:352 wizards.py:363  #: templates/ishtar/sheet_operation.html:4  msgid "Operation"  msgstr "Opération" @@ -95,7 +95,7 @@ msgstr "Opération"  msgid ":"  msgstr ": " -#: forms.py:414 forms.py:633 forms.py:1266 +#: forms.py:414 forms.py:636 forms.py:1270  msgid "You should select an operation."  msgstr "Vous devez sélectionner une opération." @@ -103,31 +103,31 @@ msgstr "Vous devez sélectionner une opération."  msgid "You should select a relation type."  msgstr "Vous devez sélectionner un type de relation." -#: forms.py:421 +#: forms.py:423  msgid "An operation cannot be related to herself."  msgstr "Une opération ne peut être associée à elle-même." -#: forms.py:451 +#: forms.py:453  msgid "Current relations"  msgstr "Relations actuelles" -#: forms.py:453 +#: forms.py:455  msgid "Deleted relations"  msgstr "Relations supprimées" -#: forms.py:477 templates/ishtar/sheet_operation.html:86 +#: forms.py:479 templates/ishtar/sheet_operation.html:86  msgid "Relations"  msgstr "Relations" -#: forms.py:482 forms.py:1272 models.py:277 +#: forms.py:484 forms.py:1276 models.py:277  msgid "Numeric reference"  msgstr "Identifiant numérique" -#: forms.py:488 forms.py:1312 +#: forms.py:491 forms.py:1318  msgid "Parcel (section/number/public domain)"  msgstr "Parcelle (section/numéro/domaine public)" -#: forms.py:491 forms.py:1315 models.py:848 +#: forms.py:494 forms.py:1321 models.py:850  #: templates/ishtar/dashboards/dashboard_operation.html:390  #: templates/ishtar/dashboards/dashboard_operation.html:411  #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -136,253 +136,253 @@ msgstr "Parcelle (section/numéro/domaine public)"  msgid "Department"  msgstr "Département" -#: forms.py:492 forms.py:1143 models.py:86 +#: forms.py:495 forms.py:1147 models.py:86  #: templates/ishtar/sheet_operation.html:22  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8  msgid "Name"  msgstr "Nom" -#: forms.py:494 forms.py:777 models.py:338 +#: forms.py:497 forms.py:781 models.py:338  msgid "Address / Locality"  msgstr "Adresse / Lieu-dit" -#: forms.py:496 forms.py:700 forms.py:779 forms.py:1278 models.py:284 +#: forms.py:499 forms.py:703 forms.py:783 forms.py:1283 models.py:284  msgid "Operation type"  msgstr "Type d'opération" -#: forms.py:498 +#: forms.py:501  msgid "Is open?"  msgstr "Est ouvert ?" -#: forms.py:506 forms.py:811 models.py:269 +#: forms.py:509 forms.py:815 models.py:269  msgid "In charge"  msgstr "Responsable du suivi scientifique" -#: forms.py:513 models.py:1020 +#: forms.py:516 models.py:1022  msgid "Scientist in charge"  msgstr "Responsable scientifique" -#: forms.py:515 forms.py:702 forms.py:801 models.py:267 +#: forms.py:518 forms.py:705 forms.py:805 models.py:267  msgid "Operator"  msgstr "Opérateur" -#: forms.py:524 forms.py:1148 models.py:90 models.py:286 +#: forms.py:527 forms.py:1152 models.py:90 models.py:286  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10  msgid "Remains"  msgstr "Vestiges" -#: forms.py:525 forms.py:1126 forms.py:1145 models.py:88 models.py:292 +#: forms.py:528 forms.py:1130 forms.py:1149 models.py:88 models.py:292  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9  msgid "Periods"  msgstr "Périodes" -#: forms.py:526 +#: forms.py:529  msgid "Started before"  msgstr "Commencé avant" -#: forms.py:528 +#: forms.py:531  msgid "Started after"  msgstr "Commencé après" -#: forms.py:530 +#: forms.py:533  msgid "Ended before"  msgstr "Terminé avant" -#: forms.py:532 +#: forms.py:535  msgid "Ended after"  msgstr "Terminé après" -#: forms.py:535 +#: forms.py:538  msgid "Search within relations"  msgstr "Rechercher parmi les relations" -#: forms.py:537 forms.py:863 +#: forms.py:540 forms.py:867  msgid "Comment"  msgstr "Commentaire" -#: forms.py:538 +#: forms.py:541  msgid "Abstract (full text search)"  msgstr "Résumé (recherche texte intégral)" -#: forms.py:540 forms.py:866 models.py:341 +#: forms.py:543 forms.py:870 models.py:341  msgid "Comment about scientific documentation"  msgstr "Commentaire concernant la documentation scientifique" -#: forms.py:541 forms.py:868 models.py:353 +#: forms.py:544 forms.py:872 models.py:353  msgid "Record quality"  msgstr "Qualité d'enregistrement" -#: forms.py:542 forms.py:833 models.py:304 +#: forms.py:545 forms.py:837 models.py:304  msgid "Report processing"  msgstr "Traitement du rapport" -#: forms.py:544 forms.py:871 models.py:348 +#: forms.py:547 forms.py:875 models.py:348  msgid "Virtual operation"  msgstr "Opération virtuelle" -#: forms.py:546 forms.py:1188 forms.py:1192 models.py:94 +#: forms.py:549 forms.py:1192 forms.py:1196 models.py:94  msgid "Archaeological site"  msgstr "Entité archéologique" -#: forms.py:552 forms.py:1319 +#: forms.py:555 forms.py:1325  msgid "Created by"  msgstr "Créé par" -#: forms.py:558 forms.py:1325 +#: forms.py:561 forms.py:1331  msgid "Modified by"  msgstr "Modifié par" -#: forms.py:565 +#: forms.py:568  msgid "Documentation deadline before"  msgstr "Date limite de rendu de la documentation avant" -#: forms.py:567 +#: forms.py:570  msgid "Documentation deadline after"  msgstr "Date limite de rendu de la documentation après" -#: forms.py:569 forms.py:856 models.py:360 +#: forms.py:572 forms.py:860 models.py:360  msgid "Documentation received"  msgstr "Documentation reçue" -#: forms.py:571 +#: forms.py:574  msgid "Finds deadline before"  msgstr "Date limite de rendu du mobilier avant" -#: forms.py:573 +#: forms.py:576  msgid "Finds deadline after"  msgstr "Date limite de rendu du mobilier après" -#: forms.py:575 forms.py:861 models.py:364 +#: forms.py:578 forms.py:865 models.py:364  msgid "Finds received"  msgstr "Mobilier reçu" -#: forms.py:620 forms.py:1264 views.py:168 +#: forms.py:623 forms.py:1268 views.py:168  msgid "Operation search"  msgstr "Rechercher une opération" -#: forms.py:664 +#: forms.py:667  msgid "Associated file"  msgstr "Dossier associé" -#: forms.py:668 forms.py:967 models.py:520 models.py:921 models.py:1031 +#: forms.py:671 forms.py:971 models.py:520 models.py:923 models.py:1033  #: wizards.py:80  msgid "Archaeological file"  msgstr "Dossier archéologique" -#: forms.py:675 forms.py:677 models.py:355 +#: forms.py:678 forms.py:680 models.py:355  msgid "Abstract"  msgstr "Résumé" -#: forms.py:680 +#: forms.py:683  msgid "months"  msgstr "mois" -#: forms.py:680 +#: forms.py:683  msgid "years"  msgstr "années" -#: forms.py:682 models.py:253 +#: forms.py:685 models.py:253  msgid "Creation date"  msgstr "Date de création" -#: forms.py:683 +#: forms.py:686  msgid "Start of field work"  msgstr "Début du travail de terrain" -#: forms.py:685 +#: forms.py:688  msgid "All"  msgstr "Tout" -#: forms.py:686 +#: forms.py:689  msgid "Preventive"  msgstr "Préventif" -#: forms.py:687 +#: forms.py:690  msgid "Research"  msgstr "Programmé" -#: forms.py:691 +#: forms.py:694  msgid "Slicing"  msgstr "Découpage" -#: forms.py:694 +#: forms.py:697  msgid "Department detail"  msgstr "Détail par département" -#: forms.py:696 +#: forms.py:699  msgid "Date get from"  msgstr "Date obtenue depuis" -#: forms.py:698 +#: forms.py:701  msgid "Preventive/Research"  msgstr "Préventif/Programmé" -#: forms.py:704 +#: forms.py:707  msgid "Date after"  msgstr "Date après" -#: forms.py:706 +#: forms.py:709  msgid "Date before"  msgstr "Date avant" -#: forms.py:708 +#: forms.py:711  msgid "With reports"  msgstr "Avec un rapport" -#: forms.py:709 +#: forms.py:712  msgid "With finds"  msgstr "Avec du mobilier" -#: forms.py:761 forms.py:1373 templates/ishtar/sheet_administrativeact.html:20 +#: forms.py:764 forms.py:1379 templates/ishtar/sheet_administrativeact.html:20  #: templates/ishtar/sheet_operation.html:26  msgid "General"  msgstr "Général" -#: forms.py:775 models.py:337 +#: forms.py:779 models.py:337  msgid "Generic name"  msgstr "Nom générique" -#: forms.py:786 models.py:306 +#: forms.py:790 models.py:306  msgid "Old code"  msgstr "Ancien code" -#: forms.py:789 +#: forms.py:793  msgid "Head scientist"  msgstr "Responsable scientifique" -#: forms.py:808 models.py:336 +#: forms.py:812 models.py:336  msgid "Operator reference"  msgstr "Référence de l'opérateur" -#: forms.py:822 +#: forms.py:826  msgid "Total surface (m2)"  msgstr "Surface totale (m2)" -#: forms.py:826 models.py:54 models.py:256 models.py:1448 +#: forms.py:830 models.py:54 models.py:256 models.py:1450  msgid "Start date"  msgstr "Date de début" -#: forms.py:828 models.py:258 +#: forms.py:832 models.py:258  msgid "Excavation end date"  msgstr "Date de fin de chantier" -#: forms.py:831 models.py:259 +#: forms.py:835 models.py:259  msgid "Report delivery date"  msgstr "Date de livraison du rapport" -#: forms.py:853 models.py:357 +#: forms.py:857 models.py:357  msgid "Deadline for submission of the documentation"  msgstr "Date limite de rendu de la documentation" -#: forms.py:858 models.py:362 +#: forms.py:862 models.py:362  msgid "Deadline for submission of the finds"  msgstr "Date limite de rendu du mobilier" -#: forms.py:873 +#: forms.py:877  msgid "Image"  msgstr "Image" -#: forms.py:874 +#: forms.py:878  #, python-format  msgid ""  "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</" @@ -391,19 +391,19 @@ msgstr ""  "<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "  "ratio est conservé).</p>" -#: forms.py:920 +#: forms.py:924  msgid ""  "If you want to set an excavation end date you have to provide a start date."  msgstr ""  "Avant de renseigner la date de fin de chantier, il est nécessaire de "  "renseigner une date de début." -#: forms.py:925 +#: forms.py:929  msgid "The excavation end date cannot be before the start date."  msgstr ""  "La date de fin de chantier ne peut être antérieure à la date de début." -#: forms.py:953 +#: forms.py:957  #, python-format  msgid ""  "Operation code already exists for year: %(year)d - use a value bigger than " @@ -412,110 +412,110 @@ msgstr ""  "Ce code d'opération existe déjà pour l'année %(year)d - utilisez une valeur "  "plus grande que %(last_val)d" -#: forms.py:957 +#: forms.py:961  msgid "Bad operation code"  msgstr "Mauvais code d'opération" -#: forms.py:963 models.py:535 models.py:877 +#: forms.py:967 models.py:535 models.py:879  msgid "Operation code"  msgstr "Code de l'opération" -#: forms.py:989 forms.py:993 models.py:273 +#: forms.py:993 forms.py:997 models.py:273  msgid "Collaborators"  msgstr "Collaborateurs" -#: forms.py:1001 +#: forms.py:1005  msgid "Preventive informations - excavation"  msgstr "Information archéologie préventive - fouille" -#: forms.py:1002 models.py:290 +#: forms.py:1006 models.py:290  #: templates/ishtar/dashboards/dashboard_operation.html:701  msgid "Cost (euros)"  msgstr "Coût (euros)" -#: forms.py:1003 models.py:295 +#: forms.py:1007 models.py:295  msgid "Scheduled man-days"  msgstr "Jours-hommes prévus" -#: forms.py:1005 models.py:298 +#: forms.py:1009 models.py:298  msgid "Optional man-days"  msgstr "Jours-hommes optionnels" -#: forms.py:1007 models.py:301 +#: forms.py:1011 models.py:301  msgid "Effective man-days"  msgstr "Jours-hommes effectifs" -#: forms.py:1017 +#: forms.py:1021  msgid "Preventive informations - diagnostic"  msgstr "Information archéologie préventive - diagnostic" -#: forms.py:1020 models.py:320 +#: forms.py:1024 models.py:320  msgid "Prescription on zoning"  msgstr "Prescription sur zonage" -#: forms.py:1022 models.py:323 +#: forms.py:1026 models.py:323  msgid "Prescription on large area"  msgstr "Prescription sur une vaste surface" -#: forms.py:1025 models.py:325 +#: forms.py:1029 models.py:325  msgid "Prescription on geoarchaeological context"  msgstr "Prescription sur un contexte géoarchéologique" -#: forms.py:1029 forms.py:1051 models.py:288 models.py:1054 +#: forms.py:1033 forms.py:1055 models.py:288 models.py:1056  msgid "Towns"  msgstr "Communes" -#: forms.py:1058 models.py:1251 models.py:1446 +#: forms.py:1062 models.py:1253 models.py:1448  msgid "Parcel"  msgstr "Parcelle" -#: forms.py:1110 models.py:46 +#: forms.py:1114 models.py:46  msgid "Remain types"  msgstr "Types de vestige" -#: forms.py:1114 models.py:45 +#: forms.py:1118 models.py:45  msgid "Remain type"  msgstr "Type de vestige" -#: forms.py:1130 templates/ishtar/sheet_operation.html:173 +#: forms.py:1134 templates/ishtar/sheet_operation.html:173  #: templates/ishtar/sheet_operation.html:204  msgid "Period"  msgstr "Période" -#: forms.py:1142 models.py:85 +#: forms.py:1146 models.py:85  msgid "Reference"  msgstr "Référence" -#: forms.py:1171 +#: forms.py:1175  msgid "This reference already exists."  msgstr "Cette référence existe déjà." -#: forms.py:1203 models.py:95 models.py:345 +#: forms.py:1207 models.py:95 models.py:345  #: templates/ishtar/sheet_operation.html:97  msgid "Archaeological sites"  msgstr "Entités archéologiques" -#: forms.py:1207 +#: forms.py:1211  msgid "Associated archaeological sites"  msgstr "Entités archéologiques associées" -#: forms.py:1213 ishtar_menu.py:34 ishtar_menu.py:64 ishtar_menu.py:93 +#: forms.py:1217 ishtar_menu.py:34 ishtar_menu.py:64 ishtar_menu.py:93  msgid "Search"  msgstr "Recherche" -#: forms.py:1218 +#: forms.py:1222  msgid "Would you like to close this operation?"  msgstr "Voulez-vous clore cette opération ?" -#: forms.py:1223 +#: forms.py:1227  msgid "Would you like to delete this operation?"  msgstr "Voulez-vous supprimer cette opération ?" -#: forms.py:1232 forms.py:1302 forms.py:1438 models.py:884 models.py:1011 +#: forms.py:1236 forms.py:1307 forms.py:1444 models.py:886 models.py:1013  msgid "Index"  msgstr "Index" -#: forms.py:1258 +#: forms.py:1262  #, python-format  msgid ""  "Index already exists for operation: %(operation)s - use a value bigger than " @@ -524,48 +524,48 @@ msgstr ""  "Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur "  "plus grande que %(last_val)d" -#: forms.py:1270 +#: forms.py:1274  msgid "Operation's year"  msgstr "Année de l'opération" -#: forms.py:1277 +#: forms.py:1282  msgid "Operation's town"  msgstr "Commune de l'opération" -#: forms.py:1290 +#: forms.py:1295  msgid "Documentation search"  msgstr "Rechercher une documentation" -#: forms.py:1292 +#: forms.py:1297  msgid "You should select a document."  msgstr "Vous devez sélectionner un document." -#: forms.py:1309 forms.py:1376 models.py:935 models.py:1005 +#: forms.py:1315 forms.py:1382 models.py:937 models.py:1007  msgid "Act type"  msgstr "Type d'acte" -#: forms.py:1310 forms.py:1508 +#: forms.py:1316 forms.py:1514  msgid "Indexed?"  msgstr "Indexé ?" -#: forms.py:1316 forms.py:1381 models.py:1045 +#: forms.py:1322 forms.py:1387 models.py:1047  #: templates/ishtar/blocks/window_tables/administrativacts.html:10  msgid "Object"  msgstr "Objet" -#: forms.py:1353 views.py:350 +#: forms.py:1359 views.py:350  msgid "Administrative act search"  msgstr "Rechercher un acte administratif" -#: forms.py:1368 forms.py:1466 forms.py:1533 +#: forms.py:1374 forms.py:1472 forms.py:1539  msgid "You should select an administrative act."  msgstr "Vous devez sélectionner un acte administratif." -#: forms.py:1384 models.py:1042 +#: forms.py:1390 models.py:1044  msgid "Signature date"  msgstr "Date de signature" -#: forms.py:1426 +#: forms.py:1432  #, python-format  msgid ""  "This index already exists for year: %(year)d - use a value bigger than " @@ -574,31 +574,31 @@ msgstr ""  "Cet index existe déjà pour l'année : %(year)d, utilisez une valeur plus "  "grande que %(last_val)d" -#: forms.py:1430 +#: forms.py:1436  msgid "Bad index"  msgstr "Mauvais index" -#: forms.py:1443 +#: forms.py:1449  msgid "Would you like to delete this administrative act?"  msgstr "Voulez-vous supprimer cet acte administratif ?" -#: forms.py:1448 +#: forms.py:1454  msgid "Template"  msgstr "Patron" -#: forms.py:1472 forms.py:1476 +#: forms.py:1478 forms.py:1482  msgid "This document is not intended for this type of act."  msgstr "Ce document n'est pas destiné à ce type d'acte." -#: forms.py:1494 +#: forms.py:1500  msgid "Doc generation"  msgstr "Génération de document" -#: forms.py:1496 +#: forms.py:1502  msgid "Generate the associated doc?"  msgstr "Générer le document associé ?" -#: forms.py:1517 ishtar_menu.py:123 views.py:403 +#: forms.py:1523 ishtar_menu.py:123 views.py:403  msgctxt "admin act register"  msgid "Register"  msgstr "Registre" @@ -619,7 +619,7 @@ msgstr "Clôture"  msgid "Deletion"  msgstr "Suppression" -#: ishtar_menu.py:59 models.py:1061 +#: ishtar_menu.py:59 models.py:1063  #: templates/ishtar/sheet_administrativeact.html:4  msgid "Administrative act"  msgstr "Acte administratif" @@ -649,11 +649,11 @@ msgstr "Informations générales"  msgid "Operations"  msgstr "Opérations" -#: models.py:53 models.py:71 models.py:1918 +#: models.py:53 models.py:71 models.py:1920  msgid "Order"  msgstr "Ordre" -#: models.py:55 models.py:1449 +#: models.py:55 models.py:1451  msgid "End date"  msgstr "Date de fin" @@ -769,7 +769,7 @@ msgstr "Date de clôture"  msgid "In charge scientist"  msgstr "Responsable du suivi scientifique" -#: models.py:281 models.py:1231 +#: models.py:281 models.py:1233  msgid "File"  msgstr "Dossier" @@ -874,210 +874,210 @@ msgstr "Nombre de documents"  msgid "Mean"  msgstr "Moyenne" -#: models.py:818 +#: models.py:820  msgid "Inverse relation"  msgstr "Relation inverse" -#: models.py:822 +#: models.py:824  msgid "Operation relation type"  msgstr "Type de relation entre opérations" -#: models.py:823 +#: models.py:825  msgid "Operation relation types"  msgstr "Types de relation entre opérations" -#: models.py:836 +#: models.py:838  msgid "Operation record relation"  msgstr "Relation entre opérations" -#: models.py:837 +#: models.py:839  msgid "Operation record relations"  msgstr "Relations entre opérations" -#: models.py:876 +#: models.py:878  msgid "Operation year"  msgstr "Année de l'opération" -#: models.py:878 +#: models.py:880  msgid "Document code"  msgstr "Code du document" -#: models.py:888 +#: models.py:890  msgid "Operation documentation"  msgstr "Documentation d'une opération" -#: models.py:889 +#: models.py:891  msgid "Operation documentations"  msgstr "Documentations des opérations" -#: models.py:892 +#: models.py:894  msgid "Can view all Operation sources"  msgstr "Peut voir toutes les Documentations d'opération" -#: models.py:894 +#: models.py:896  msgid "Can view own Operation source"  msgstr "Peut voir sa propre Documentation d'opération" -#: models.py:896 +#: models.py:898  msgid "Can add own Operation source"  msgstr "Peut ajouter sa propre Documentation d'opération" -#: models.py:898 +#: models.py:900  msgid "Can change own Operation source"  msgstr "Peut modifier sa propre Documentation d'opération" -#: models.py:900 +#: models.py:902  msgid "Can delete own Operation source"  msgstr "Peut supprimer sa propre Documentation d'opération" -#: models.py:923 models.py:1036 +#: models.py:925 models.py:1038  msgid "Treatment request"  msgstr "Demande de traitement" -#: models.py:924 models.py:1041 +#: models.py:926 models.py:1043  msgid "Treatment"  msgstr "Traitement" -#: models.py:926 +#: models.py:928  msgid "Intended to"  msgstr "Destiné à" -#: models.py:928 +#: models.py:930  msgid "Code"  msgstr "Code" -#: models.py:931 +#: models.py:933  msgid "Associated template"  msgstr "Patron associé" -#: models.py:932 +#: models.py:934  msgid "Indexed"  msgstr "Indexé" -#: models.py:936 +#: models.py:938  msgid "Act types"  msgstr "Types d'acte" -#: models.py:1002 models.py:1082 +#: models.py:1004 models.py:1084  #: templates/ishtar/blocks/window_tables/administrativacts.html:7  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7  msgid "Ref."  msgstr "Réf." -#: models.py:1009 +#: models.py:1011  msgid "Person in charge of the operation"  msgstr "Responsable d'opération" -#: models.py:1015 +#: models.py:1017  msgid "Archaeological preventive operator"  msgstr "Opérateur d'archéologie préventive" -#: models.py:1023 +#: models.py:1025  msgid "Signatory"  msgstr "Signataire" -#: models.py:1051 +#: models.py:1053  msgid "Departments"  msgstr "Départements" -#: models.py:1052 +#: models.py:1054  msgid "Cached values get from associated departments"  msgstr "Valeur en cache des départements associés" -#: models.py:1055 +#: models.py:1057  msgid "Cached values get from associated towns"  msgstr "Valeur en cache des communes associées" -#: models.py:1062 templates/ishtar/sheet_operation.html:105 +#: models.py:1064 templates/ishtar/sheet_operation.html:105  #: templates/ishtar/sheet_operation.html:147  msgid "Administrative acts"  msgstr "Actes administratifs" -#: models.py:1065 +#: models.py:1067  msgid "Can view all Administrative acts"  msgstr "Peut voir tous les Actes administratifs" -#: models.py:1067 +#: models.py:1069  msgid "Can view own Administrative act"  msgstr "Peut voir son propre Acte administratif" -#: models.py:1069 +#: models.py:1071  msgid "Can add own Administrative act"  msgstr "Peut ajouter son propre Acte administratif" -#: models.py:1071 +#: models.py:1073  msgid "Can change own Administrative act"  msgstr "Peut modifier son propre Acte administratif" -#: models.py:1073 +#: models.py:1075  msgid "Can delete own Administrative act"  msgstr "Peut supprimer son propre Acte administratif" -#: models.py:1176 +#: models.py:1178  msgid "This index already exists for this year"  msgstr "Cet index existe déjà pour cette année." -#: models.py:1244 +#: models.py:1246  msgid "External ID"  msgstr "ID externe" -#: models.py:1247 +#: models.py:1249  msgid "External ID is set automatically"  msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:1248 +#: models.py:1250  msgid "Address - Locality"  msgstr "Adresse - Lieu-dit" -#: models.py:1444 +#: models.py:1446  msgid "Owner"  msgstr "Propriétaire" -#: models.py:1452 +#: models.py:1454  msgid "Parcel owner"  msgstr "Propriétaire de parcelle" -#: models.py:1453 +#: models.py:1455  msgid "Parcel owners"  msgstr "Propriétaires de parcelle" -#: models.py:1479 +#: models.py:1481  msgid "Recorded"  msgstr "Enregistré" -#: models.py:1480 +#: models.py:1482  msgid "Effective"  msgstr "Effectif" -#: models.py:1481 +#: models.py:1483  msgid "Active"  msgstr "Actif" -#: models.py:1482 +#: models.py:1484  msgid "Field completed"  msgstr "Terrain achevé" -#: models.py:1483 +#: models.py:1485  msgid "Associated report"  msgstr "Rapport associé" -#: models.py:1484 +#: models.py:1486  msgid "Closed"  msgstr "Clos" -#: models.py:1485 +#: models.py:1487  msgid "Documented and closed"  msgstr "Documenté et clos" -#: models.py:1919 +#: models.py:1921  msgid "Is preventive"  msgstr "Préventif" -#: models.py:1922 +#: models.py:1924  msgid "Operation type old"  msgstr "Type d'opération - ancien" -#: models.py:1923 +#: models.py:1925  msgid "Operation types old"  msgstr "Types d'opération - ancien" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index fa2157116..dc6c88863 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -12,7 +12,7 @@ msgstr ""  "MIME-Version: 1.0\n"  "Content-Transfer-Encoding: 8bit\n"  "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2017-05-29 05:30-0400\n" +"PO-Revision-Date: 2017-06-01 02:08-0400\n"  "Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"  "Language-Team: \n"  "Language: fr\n" @@ -140,31 +140,31 @@ msgstr ""  "Erreur de configuration de l'importeur : le champ \"{}\" n'existe pas pour "  "{}." -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "line"  msgstr "ligne" -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "col"  msgstr "colonne" -#: data_importer.py:1559 +#: data_importer.py:1574  msgid "error"  msgstr "erreur" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "field"  msgstr "champ" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "source"  msgstr "source" -#: data_importer.py:1565 +#: data_importer.py:1580  msgid "result"  msgstr "résultat" -#: data_importer.py:1581 +#: data_importer.py:1596  #, python-format  msgid "\"%(value)s\" not in %(values)s"  msgstr "\"%(value)s\" n'est pas dans %(values)s" @@ -197,12 +197,12 @@ msgstr "Vous devez sélectionner un élément."  msgid "Add a new item"  msgstr "Ajouter un nouvel élément" -#: forms.py:297 models.py:1556 +#: forms.py:297 models.py:1558  msgid "Template"  msgstr "Patron"  #: forms_common.py:41 forms_common.py:59 forms_common.py:184 -#: forms_common.py:408 models.py:1622 models.py:3085 +#: forms_common.py:408 models.py:1624 models.py:3087  #: templates/blocks/JQueryAdvancedTown.html:19  #: templates/ishtar/sheet_organization.html:13  msgid "Town" @@ -225,8 +225,8 @@ msgstr ""  "<p class='example'>Par exemple tapez « saint denis 93 » pour obtenir la "  "commune Saint-Denis dans le département français de Seine-Saint-Denis.</p>" -#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2685 -#: models.py:2878 models.py:2940 templates/ishtar/sheet_person.html:4 +#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2687 +#: models.py:2880 models.py:2942 templates/ishtar/sheet_person.html:4  msgid "Person"  msgstr "Personne" @@ -239,64 +239,65 @@ msgstr ""  "pas possible."  #: forms_common.py:172 forms_common.py:329 forms_common.py:453 -#: ishtar_menu.py:75 models.py:2568 models.py:2659 +#: ishtar_menu.py:75 models.py:2570 models.py:2661  #: templates/ishtar/sheet_organization.html:4  msgid "Organization"  msgstr "Organisation"  #: forms_common.py:175 forms_common.py:212 forms_common.py:324 -#: forms_common.py:378 forms_common.py:448 models.py:1159 models.py:1555 -#: models.py:1824 models.py:1840 models.py:2078 models.py:2356 models.py:2562 -#: models.py:2671 models.py:3071 templates/ishtar/import_list.html:13 +#: forms_common.py:378 forms_common.py:448 models.py:1161 models.py:1557 +#: models.py:1826 models.py:1842 models.py:2080 models.py:2358 models.py:2564 +#: models.py:2673 models.py:3073 models.py:3170 +#: templates/ishtar/import_list.html:13  #: templates/ishtar/sheet_organization.html:8  #: templates/ishtar/sheet_organization.html:21  msgid "Name"  msgstr "Nom" -#: forms_common.py:176 models.py:1777 models.py:2209 +#: forms_common.py:176 models.py:1779 models.py:2211  msgid "Organization type"  msgstr "Type d'organisation" -#: forms_common.py:178 forms_common.py:402 models.py:1617 +#: forms_common.py:178 forms_common.py:402 models.py:1619  #: templates/ishtar/sheet_organization.html:10  msgid "Address"  msgstr "Adresse" -#: forms_common.py:180 forms_common.py:405 models.py:1618 +#: forms_common.py:180 forms_common.py:405 models.py:1620  #: templates/ishtar/sheet_organization.html:11  msgid "Address complement"  msgstr "Complément d'adresse" -#: forms_common.py:182 forms_common.py:406 models.py:1620 +#: forms_common.py:182 forms_common.py:406 models.py:1622  #: templates/ishtar/sheet_organization.html:12  msgid "Postal code"  msgstr "Code postal" -#: forms_common.py:185 forms_common.py:409 models.py:1623 +#: forms_common.py:185 forms_common.py:409 models.py:1625  msgid "Country"  msgstr "Pays"  #: forms_common.py:187 forms_common.py:326 forms_common.py:382 -#: forms_common.py:450 forms_common.py:574 models.py:1650 +#: forms_common.py:450 forms_common.py:574 models.py:1652  msgid "Email"  msgstr "Courriel" -#: forms_common.py:188 forms_common.py:385 models.py:1635 +#: forms_common.py:188 forms_common.py:385 models.py:1637  #: templates/ishtar/sheet_organization.html:14  #: templates/ishtar/sheet_person.html:21  #: templates/ishtar/wizard/wizard_person.html:17  msgid "Phone"  msgstr "Téléphone" -#: forms_common.py:189 forms_common.py:394 models.py:1647 +#: forms_common.py:189 forms_common.py:394 models.py:1649  #: templates/ishtar/sheet_organization.html:15  #: templates/ishtar/sheet_person.html:39  #: templates/ishtar/wizard/wizard_person.html:35  msgid "Mobile phone"  msgstr "Téléphone portable" -#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2247 -#: models.py:2564 models.py:3006 templates/sheet_ope.html:85 +#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2249 +#: models.py:2566 models.py:3008 templates/sheet_ope.html:85  #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126  #: templates/ishtar/import_list.html:14  #: templates/ishtar/sheet_organization.html:23 @@ -320,7 +321,7 @@ msgstr "Fusionner tous les éléments dans"  msgid "Organization to merge"  msgstr "Organisation à fusionner" -#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2669 +#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2671  #: templates/ishtar/sheet_organization.html:22  msgid "Surname"  msgstr "Prénom" @@ -338,25 +339,25 @@ msgstr "Personne à fusionner"  msgid "Identity"  msgstr "Identité" -#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2210 -#: models.py:2663 models.py:2665 models.py:3003 templates/sheet_ope.html:104 +#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2212 +#: models.py:2665 models.py:2667 models.py:3005 templates/sheet_ope.html:104  #: templates/ishtar/blocks/window_tables/documents.html:7  msgid "Title"  msgstr "Titre" -#: forms_common.py:374 models.py:2667 +#: forms_common.py:374 models.py:2669  msgid "Salutation"  msgstr "Formule d'appel" -#: forms_common.py:380 models.py:2673 +#: forms_common.py:380 models.py:2675  msgid "Raw name"  msgstr "Nom brut" -#: forms_common.py:383 models.py:1636 +#: forms_common.py:383 models.py:1638  msgid "Phone description"  msgstr "Type de téléphone" -#: forms_common.py:386 models.py:1638 models.py:1640 +#: forms_common.py:386 models.py:1640 models.py:1642  msgid "Phone description 2"  msgstr "Type de téléphone 2" @@ -364,11 +365,11 @@ msgstr "Type de téléphone 2"  msgid "Phone 2"  msgstr "Téléphone 2" -#: forms_common.py:390 models.py:1644 +#: forms_common.py:390 models.py:1646  msgid "Phone description 3"  msgstr "Type de téléphone 3" -#: forms_common.py:392 models.py:1642 +#: forms_common.py:392 models.py:1644  msgid "Phone 3"  msgstr "Téléphone 3" @@ -376,23 +377,23 @@ msgstr "Téléphone 3"  msgid "Current organization"  msgstr "Organisation actuelle" -#: forms_common.py:411 models.py:1625 +#: forms_common.py:411 models.py:1627  msgid "Other address: address"  msgstr "Autre adresse : adresse" -#: forms_common.py:414 models.py:1628 +#: forms_common.py:414 models.py:1630  msgid "Other address: address complement"  msgstr "Autre adresse : complément d'adresse" -#: forms_common.py:416 models.py:1629 +#: forms_common.py:416 models.py:1631  msgid "Other address: postal code"  msgstr "Autre adresse : code postal" -#: forms_common.py:418 models.py:1631 +#: forms_common.py:418 models.py:1633  msgid "Other address: town"  msgstr "Autre adresse : ville" -#: forms_common.py:420 models.py:1633 +#: forms_common.py:420 models.py:1635  msgid "Other address: country"  msgstr "Autre adresse : pays" @@ -408,7 +409,7 @@ msgstr "Nom d'utilisateur"  msgid "Account search"  msgstr "Rechercher un compte" -#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2616 +#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2618  msgid "Person type"  msgstr "Type de personne" @@ -440,7 +441,7 @@ msgstr "Ce nom d'utilisateur existe déjà."  msgid "Send the new password by email?"  msgstr "Envoyer le nouveau mot de passe par courriel ?" -#: forms_common.py:636 forms_common.py:649 models.py:3086 +#: forms_common.py:636 forms_common.py:649 models.py:3088  msgid "Towns"  msgstr "Communes" @@ -456,7 +457,7 @@ msgstr "Seul un choix peut être coché."  msgid "Documentation informations"  msgstr "Information sur le document" -#: forms_common.py:783 forms_common.py:831 models.py:2211 models.py:2978 +#: forms_common.py:783 forms_common.py:831 models.py:2213 models.py:2980  msgid "Source type"  msgstr "Type de document" @@ -468,37 +469,37 @@ msgstr "Référence"  msgid "Internal reference"  msgstr "Référence interne" -#: forms_common.py:791 models.py:3017 +#: forms_common.py:791 models.py:3019  msgid "Numerical ressource (web address)"  msgstr "Ressource numérique (adresse web)" -#: forms_common.py:792 models.py:3019 +#: forms_common.py:792 models.py:3021  msgid "Receipt date"  msgstr "Date de réception" -#: forms_common.py:794 models.py:2382 models.py:3021 +#: forms_common.py:794 models.py:2384 models.py:3023  msgid "Creation date"  msgstr "Date de création" -#: forms_common.py:797 models.py:3024 +#: forms_common.py:797 models.py:3026  msgid "Receipt date in documentation"  msgstr "Date de réception en documentation" -#: forms_common.py:799 forms_common.py:835 models.py:419 models.py:746 -#: models.py:2105 models.py:2677 models.py:3031 +#: forms_common.py:799 forms_common.py:835 models.py:421 models.py:748 +#: models.py:2107 models.py:2679 models.py:3033  msgid "Comment"  msgstr "Commentaire" -#: forms_common.py:801 forms_common.py:834 models.py:1161 models.py:1844 -#: models.py:2032 models.py:2079 models.py:3030 templates/sheet_ope.html:128 +#: forms_common.py:801 forms_common.py:834 models.py:1163 models.py:1846 +#: models.py:2034 models.py:2081 models.py:3032 templates/sheet_ope.html:128  msgid "Description"  msgstr "Description" -#: forms_common.py:804 models.py:3032 +#: forms_common.py:804 models.py:3034  msgid "Additional information"  msgstr "Information supplémentaire" -#: forms_common.py:806 forms_common.py:838 models.py:3034 +#: forms_common.py:806 forms_common.py:838 models.py:3036  msgid "Has a duplicate"  msgstr "Existe en doublon" @@ -515,7 +516,7 @@ msgstr ""  "<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "  "ratio est conservé).</p>" -#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2945 +#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2947  #: templates/ishtar/wizard/wizard_person_deletion.html:124  msgid "Author"  msgstr "Auteur" @@ -528,7 +529,7 @@ msgstr "Informations supplémentaires"  msgid "Would you like to delete this documentation?"  msgstr "Voulez-vous supprimer ce document ?" -#: forms_common.py:864 models.py:2212 models.py:2932 models.py:2942 +#: forms_common.py:864 models.py:2214 models.py:2934 models.py:2944  msgid "Author type"  msgstr "Type d'auteur" @@ -540,7 +541,7 @@ msgstr "Sélection d'auteur"  msgid "There are identical authors."  msgstr "Il y a des auteurs identiques." -#: forms_common.py:901 models.py:2946 models.py:3013 +#: forms_common.py:901 models.py:2948 models.py:3015  #: templates/sheet_ope.html:106  #: templates/ishtar/blocks/window_tables/documents.html:9  msgid "Authors" @@ -558,7 +559,7 @@ msgstr "Ajout/modification"  msgid "Deletion"  msgstr "Suppression" -#: ishtar_menu.py:39 models.py:1338 views.py:1648 +#: ishtar_menu.py:39 models.py:1340 views.py:1648  msgid "Global variables"  msgstr "Variables globales" @@ -586,7 +587,7 @@ msgstr "Fusion automatique"  msgid "Manual merge"  msgstr "Fusion manuelle" -#: ishtar_menu.py:109 models.py:2390 +#: ishtar_menu.py:109 models.py:2392  msgid "Imports"  msgstr "Imports" @@ -602,115 +603,115 @@ msgstr "Imports en cours"  msgid "Old imports"  msgstr "Anciens imports" -#: models.py:224 +#: models.py:226  msgid "Not a valid item."  msgstr "Élément invalide." -#: models.py:239 +#: models.py:241  msgid "A selected item is not a valid item."  msgstr "Un élément sélectionné n'est pas valide." -#: models.py:250 +#: models.py:252  msgid "This item already exists."  msgstr "Cet élément existe déjà." -#: models.py:415 models.py:745 models.py:1590 models.py:1602 models.py:2028 +#: models.py:417 models.py:747 models.py:1592 models.py:1604 models.py:2030  msgid "Label"  msgstr "Libellé" -#: models.py:417 +#: models.py:419  msgid "Textual ID"  msgstr "Identifiant textuel" -#: models.py:420 models.py:748 models.py:1559 +#: models.py:422 models.py:750 models.py:1561  msgid "Available"  msgstr "Disponible" -#: models.py:772 models.py:2151 +#: models.py:774 models.py:2153  msgid "Key"  msgstr "Clé" -#: models.py:778 +#: models.py:780  msgid "Specific key to an import"  msgstr "Clé spécifique à un import" -#: models.py:874 +#: models.py:876  msgid "Last editor"  msgstr "Dernier éditeur" -#: models.py:877 +#: models.py:879  msgid "Creator"  msgstr "Créateur" -#: models.py:1019 models.py:2929 models.py:3097 models.py:3153 +#: models.py:1021 models.py:2931 models.py:3099 models.py:3155  msgid "Order"  msgstr "Ordre" -#: models.py:1020 +#: models.py:1022  msgid "Symmetrical"  msgstr "Symétrique" -#: models.py:1021 +#: models.py:1023  msgid "Tiny label"  msgstr "Libellé court" -#: models.py:1035 +#: models.py:1037  msgid "Cannot have symmetrical and an inverse_relation"  msgstr "Ne peut pas être symétrique et avoir une relation inverse" -#: models.py:1151 +#: models.py:1153  msgid "Euro"  msgstr "Euro" -#: models.py:1152 +#: models.py:1154  msgid "US dollar"  msgstr "Dollar US" -#: models.py:1153 views.py:1446 views.py:1508 +#: models.py:1155 views.py:1446 views.py:1508  msgid "Operations"  msgstr "Opérations" -#: models.py:1154 views.py:1448 views.py:1512 +#: models.py:1156 views.py:1448 views.py:1512  msgid "Context records"  msgstr "Unités d'Enregistrement" -#: models.py:1160 models.py:1842 +#: models.py:1162 models.py:1844  msgid "Slug"  msgstr "Identifiant texte" -#: models.py:1163 +#: models.py:1165  msgid "CSS color code for base module"  msgstr "Code couleur CSS pour le tronc commun" -#: models.py:1165 +#: models.py:1167  msgid "Files module"  msgstr "Module Dossiers" -#: models.py:1167 +#: models.py:1169  msgid "CSS color code for files module"  msgstr "Code couleur CSS pour le module Dossier" -#: models.py:1169 +#: models.py:1171  msgid "Context records module"  msgstr "Module Unités d'Enregistrement" -#: models.py:1172 +#: models.py:1174  msgid "CSS color code for context record module"  msgstr "Code couleur CSS pour le module Unité d'Enregistrement" -#: models.py:1174 +#: models.py:1176  msgid "Finds module"  msgstr "Module Mobilier" -#: models.py:1175 +#: models.py:1177  msgid "Need context records module"  msgstr "Nécessite le module Unités d'Enregistrement" -#: models.py:1177 +#: models.py:1179  msgid "Find index is based on"  msgstr "Index mobilier basé sur" -#: models.py:1179 +#: models.py:1181  msgid ""  "To prevent irrelevant indexes, change this parameter only if there is no "  "find in the database" @@ -718,35 +719,35 @@ msgstr ""  "Pour éviter des index non pertinents, ne changer ce paramètre seulement si "  "il n'y a pas encore de mobilier dans cette base de données" -#: models.py:1182 +#: models.py:1184  msgid "CSS color code for find module"  msgstr "Code couleur CSS pour le module Mobilier" -#: models.py:1185 +#: models.py:1187  msgid "Warehouses module"  msgstr "Module Dépôts" -#: models.py:1186 +#: models.py:1188  msgid "Need finds module"  msgstr "Nécessite le module mobilier" -#: models.py:1188 +#: models.py:1190  msgid "CSS code for warehouse module"  msgstr "Code couleur CSS pour le module Dépôt" -#: models.py:1190 +#: models.py:1192  msgid "Mapping module"  msgstr "Module cartographique" -#: models.py:1192 +#: models.py:1194  msgid "CSS code for mapping module"  msgstr "Code couleur CSS pour le module cartographique" -#: models.py:1195 +#: models.py:1197  msgid "Home page"  msgstr "Page d'accueil" -#: models.py:1196 +#: models.py:1198  #, python-brace-format  msgid ""  "Homepage of Ishtar - if not defined a default homepage will appear. Use the " @@ -756,11 +757,11 @@ msgstr ""  "défaut apparaît. Utiliser la syntaxe Markdown. {random_image} peut être "  "utilisé pour afficher une image au hasard." -#: models.py:1200 +#: models.py:1202  msgid "File external id"  msgstr "Identifiant externe de fichier" -#: models.py:1202 +#: models.py:1204  msgid ""  "Formula to manage file external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can " @@ -770,11 +771,11 @@ msgstr ""  "précaution. Une formule incorrecte peut rendre l'application inutilisable et "  "l'import de données externes peut alors être destructif." -#: models.py:1207 +#: models.py:1209  msgid "Parcel external id"  msgstr "Identifiant externe de parcelle" -#: models.py:1210 +#: models.py:1212  msgid ""  "Formula to manage parcel external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can " @@ -784,11 +785,11 @@ msgstr ""  "précaution. Une formule incorrecte peut rendre l'application inutilisable et "  "l'import de données externes peut alors être destructif." -#: models.py:1215 +#: models.py:1217  msgid "Context record external id"  msgstr "Identifiant externe d'unité d'enregistrement" -#: models.py:1217 +#: models.py:1219  msgid ""  "Formula to manage context record external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external " @@ -798,11 +799,11 @@ msgstr ""  "manipuler avec précaution. Une formule incorrecte peut rendre l'application "  "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1222 +#: models.py:1224  msgid "Base find external id"  msgstr "Identifiant externe de mobilier de base" -#: models.py:1224 +#: models.py:1226  msgid ""  "Formula to manage base find external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external " @@ -812,11 +813,11 @@ msgstr ""  "manipuler avec précaution. Une formule incorrecte peut rendre l'application "  "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1229 +#: models.py:1231  msgid "Find external id"  msgstr "Identifiant externe de mobilier" -#: models.py:1231 +#: models.py:1233  msgid ""  "Formula to manage find external ID. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can " @@ -826,11 +827,11 @@ msgstr ""  "précaution. Une formule incorrecte peut rendre l'application inutilisable et "  "l'import de données externes peut alors être destructif." -#: models.py:1236 +#: models.py:1238  msgid "Container external id"  msgstr "ID externe du contenant" -#: models.py:1238 +#: models.py:1240  msgid ""  "Formula to manage container external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external " @@ -840,11 +841,11 @@ msgstr ""  "précaution. Une formule incorrecte peut rendre l'application inutilisable et "  "l'import de données externes peut alors être destructif." -#: models.py:1243 +#: models.py:1245  msgid "Warehouse external id"  msgstr "ID externe du dépôt" -#: models.py:1245 +#: models.py:1247  msgid ""  "Formula to manage warehouse external ID. Change this with care. With "  "incorrect formula, the application might be unusable and import of external " @@ -854,11 +855,11 @@ msgstr ""  "précaution. Une formule incorrecte peut rendre l'application inutilisable et "  "l'import de données externes peut alors être destructif." -#: models.py:1250 +#: models.py:1252  msgid "Raw name for person"  msgstr "Nom brut pour une personne" -#: models.py:1252 +#: models.py:1254  msgid ""  "Formula to manage person raw_name. Change this with care. With incorrect "  "formula, the application might be unusable and import of external data can " @@ -868,43 +869,43 @@ msgstr ""  "Une formule incorrecte peut rendre l'application inutilisable et l'import de "  "données externes peut alors être destructif." -#: models.py:1256 +#: models.py:1258  msgid "Current active"  msgstr "Actuellement utilisé" -#: models.py:1257 +#: models.py:1259  msgid "Currency"  msgstr "Devise" -#: models.py:1261 +#: models.py:1263  msgid "Ishtar site profile"  msgstr "Profil d'instance Ishtar" -#: models.py:1262 +#: models.py:1264  msgid "Ishtar site profiles"  msgstr "Profils d'instance Ishtar" -#: models.py:1331 +#: models.py:1333  msgid "Variable name"  msgstr "Nom de la variable" -#: models.py:1332 +#: models.py:1334  msgid "Description of the variable"  msgstr "Description de la variable" -#: models.py:1334 models.py:2152 +#: models.py:1336 models.py:2154  msgid "Value"  msgstr "Valeur" -#: models.py:1337 +#: models.py:1339  msgid "Global variable"  msgstr "Variable globale" -#: models.py:1460 models.py:1490 +#: models.py:1462 models.py:1492  msgid "Total"  msgstr "Total" -#: models.py:1467 models.py:1591 models.py:1603 +#: models.py:1469 models.py:1593 models.py:1605  #: templates/ishtar/sheet_person.html:24  #: templates/ishtar/dashboards/dashboard_main_detail.html:141  #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -912,135 +913,135 @@ msgstr "Total"  msgid "Number"  msgstr "Nombre" -#: models.py:1554 +#: models.py:1556  msgid "Administrative Act"  msgstr "Acte administratif" -#: models.py:1558 +#: models.py:1560  msgid "Associated object"  msgstr "Objet associé" -#: models.py:1562 +#: models.py:1564  msgid "Document template"  msgstr "Patron de document" -#: models.py:1563 +#: models.py:1565  msgid "Document templates"  msgstr "Patrons de document" -#: models.py:1594 models.py:1604 models.py:2376 +#: models.py:1596 models.py:1606 models.py:2378 models.py:3193  msgid "State"  msgstr "État" -#: models.py:1608 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1610 templates/blocks/JQueryAdvancedTown.html:12  msgid "Department"  msgstr "Département" -#: models.py:1609 +#: models.py:1611  msgid "Departments"  msgstr "Départements" -#: models.py:1646 +#: models.py:1648  msgid "Raw phone"  msgstr "Téléphone brut" -#: models.py:1652 +#: models.py:1654  msgid "Alternative address is prefered"  msgstr "L'adresse alternative est préférée" -#: models.py:1691 +#: models.py:1693  msgid "Tel: "  msgstr "Tél :" -#: models.py:1695 +#: models.py:1697  msgid "Mobile: "  msgstr "Mobile :" -#: models.py:1699 +#: models.py:1701  msgid "Email: "  msgstr "Courriel :" -#: models.py:1704 +#: models.py:1706  msgid "Merge key"  msgstr "Clé de fusion" -#: models.py:1778 +#: models.py:1780  msgid "Organization types"  msgstr "Types d'organisation" -#: models.py:1825 +#: models.py:1827  msgid "Class name"  msgstr "Nom de la classe" -#: models.py:1828 +#: models.py:1830  msgid "Importer - Model"  msgstr "Importeur - Modèle" -#: models.py:1829 +#: models.py:1831  msgid "Importer - Models"  msgstr "Importeur - Modèles" -#: models.py:1846 templates/ishtar/dashboards/dashboard_main.html:34 +#: models.py:1848 templates/ishtar/dashboards/dashboard_main.html:34  msgid "Users"  msgstr "Utilisateurs" -#: models.py:1849 +#: models.py:1851  msgid "Associated model"  msgstr "Modèle associé" -#: models.py:1852 +#: models.py:1854  msgid "Models that can accept new items"  msgstr "Modèles qui peuvent accepter de nouveaux éléments" -#: models.py:1853 +#: models.py:1855  msgid "Leave blank for no restrictions"  msgstr "Laissez vide pour aucune restriction" -#: models.py:1855 +#: models.py:1857  msgid "Is template"  msgstr "Est un patron" -#: models.py:1856 +#: models.py:1858  msgid "Unicity keys (separator \";\")"  msgstr "Clés d'unicité (séparateur « ; »)" -#: models.py:1860 +#: models.py:1862  msgid "Importer - Type"  msgstr "Importeur - Type" -#: models.py:1861 +#: models.py:1863  msgid "Importer - Types"  msgstr "Importeur - Types" -#: models.py:1960 +#: models.py:1962  msgid "Importer - Default"  msgstr "Importeur - Par défaut" -#: models.py:1961 +#: models.py:1963  msgid "Importer - Defaults"  msgstr "Importeur - Par défaut" -#: models.py:1996 +#: models.py:1998  msgid "Importer - Default value"  msgstr "Importeur - Valeur par défaut" -#: models.py:1997 +#: models.py:1999  msgid "Importer - Default values"  msgstr "Importeur - Valeurs par défaut" -#: models.py:2031 +#: models.py:2033  msgid "Column number"  msgstr "Numéro de colonne" -#: models.py:2034 +#: models.py:2036  msgid "Required"  msgstr "Requis" -#: models.py:2036 +#: models.py:2038  msgid "Export field name"  msgstr "Exporter le nom du champ" -#: models.py:2037 +#: models.py:2039  msgid ""  "Fill this field if the field name is ambiguous for export. For instance: "  "concatenated fields." @@ -1048,534 +1049,601 @@ msgstr ""  "Remplir ce champ si le nom du champ est ambigu pour l'export, par exemple "  "dans le cas de champs concaténés." -#: models.py:2042 +#: models.py:2044  msgid "Importer - Column"  msgstr "Importeur - Colonne" -#: models.py:2043 +#: models.py:2045  msgid "Importer - Columns"  msgstr "Importeur - Colonnes" -#: models.py:2063 +#: models.py:2065  msgid "Field name"  msgstr "Nom du champ" -#: models.py:2065 models.py:2099 +#: models.py:2067 models.py:2101  msgid "Force creation of new items"  msgstr "Forcer la création de nouveaux éléments" -#: models.py:2067 models.py:2101 +#: models.py:2069 models.py:2103  msgid "Concatenate with existing"  msgstr "Concaténer avec l'existant" -#: models.py:2069 models.py:2103 +#: models.py:2071 models.py:2105  msgid "Concatenate character"  msgstr "Caractère de concaténation" -#: models.py:2073 +#: models.py:2075  msgid "Importer - Duplicate field"  msgstr "Importeur - Champ dupliqué" -#: models.py:2074 +#: models.py:2076  msgid "Importer - Duplicate fields"  msgstr "Importeur - Champs dupliqués" -#: models.py:2081 +#: models.py:2083  msgid "Regular expression"  msgstr "Expression régulière" -#: models.py:2084 +#: models.py:2086  msgid "Importer - Regular expression"  msgstr "Importeur - Expression régulière" -#: models.py:2085 +#: models.py:2087  msgid "Importer - Regular expressions"  msgstr "Importeur - Expressions régulières" -#: models.py:2108 +#: models.py:2110  msgid "Importer - Target"  msgstr "Importeur - Cible" -#: models.py:2109 +#: models.py:2111  msgid "Importer - Targets"  msgstr "Importeur - Cibles" -#: models.py:2133 views.py:578 +#: models.py:2135 views.py:578  msgid "True"  msgstr "Oui" -#: models.py:2134 views.py:580 +#: models.py:2136 views.py:580  msgid "False"  msgstr "Non" -#: models.py:2153 +#: models.py:2155  msgid "Is set"  msgstr "Est défini" -#: models.py:2160 +#: models.py:2162  msgid "Importer - Target key"  msgstr "Importeur - Clé de rapprochement" -#: models.py:2161 +#: models.py:2163  msgid "Importer - Targets keys"  msgstr "Importeur - Clés de rapprochement" -#: models.py:2213 models.py:3009 +#: models.py:2215 models.py:3011  msgid "Format"  msgstr "Format" -#: models.py:2214 models.py:3101 +#: models.py:2216 models.py:3103  msgid "Operation type"  msgstr "Type d'opération" -#: models.py:2215 +#: models.py:2217  msgid "Period"  msgstr "Période" -#: models.py:2216 +#: models.py:2218  msgid "Report state"  msgstr "État de rapport" -#: models.py:2217 +#: models.py:2219  msgid "Remain type"  msgstr "Type de vestige" -#: models.py:2218 +#: models.py:2220  msgid "Unit"  msgstr "Unité" -#: models.py:2220 +#: models.py:2222  msgid "Activity type"  msgstr "Type d'activité" -#: models.py:2221 +#: models.py:2223  msgid "Material"  msgstr "Matériau" -#: models.py:2223 +#: models.py:2225  msgid "Conservatory state"  msgstr "État de conservation" -#: models.py:2224 +#: models.py:2226  msgid "Container type"  msgstr "Type de contenant" -#: models.py:2225 +#: models.py:2227  msgid "Preservation type"  msgstr "Type de conservation" -#: models.py:2226 +#: models.py:2228  msgid "Object type"  msgstr "Type d'objet" -#: models.py:2227 +#: models.py:2229  msgid "Integrity type"  msgstr "Type d'intégrité" -#: models.py:2229 +#: models.py:2231  msgid "Remarkability type"  msgstr "Type de remarquabilité" -#: models.py:2230 +#: models.py:2232  msgid "Batch type"  msgstr "Type de lot" -#: models.py:2232 +#: models.py:2234  msgid "Identification type"  msgstr "Type d'identification" -#: models.py:2234 +#: models.py:2236  msgid "Context record relation type"  msgstr "Type de relations entre Unités d'Enregistrement" -#: models.py:2235 models.py:3159 +#: models.py:2237 models.py:3161  msgid "Spatial reference system"  msgstr "Système de référence spatiale" -#: models.py:2236 models.py:2987 +#: models.py:2238 models.py:2989  msgid "Support type"  msgstr "Type de support" -#: models.py:2237 models.py:2628 +#: models.py:2239 models.py:2630  msgid "Title type"  msgstr "Type de titre" -#: models.py:2243 +#: models.py:2245  msgid "Integer"  msgstr "Entier" -#: models.py:2244 +#: models.py:2246  msgid "Float"  msgstr "Nombre à virgule" -#: models.py:2245 +#: models.py:2247  msgid "String"  msgstr "Chaîne de caractères" -#: models.py:2246 templates/sheet_ope.html:86 +#: models.py:2248 templates/sheet_ope.html:86  msgid "Date"  msgstr "Date" -#: models.py:2248 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2250 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83  #: templates/ishtar/dashboards/dashboard_main_detail.html:126  msgid "Year"  msgstr "Année" -#: models.py:2249 +#: models.py:2251  msgid "String to boolean"  msgstr "Chaîne de caractères vers booléen" -#: models.py:2250 +#: models.py:2252  msgctxt "filesystem"  msgid "File"  msgstr "Fichier" -#: models.py:2251 +#: models.py:2253  msgid "Unknow type"  msgstr "Type inconnu" -#: models.py:2267 +#: models.py:2269  msgid "4 digit year. e.g.: \"2015\""  msgstr "Année sur 4 chiffres. Exemple : « 2015 »" -#: models.py:2268 +#: models.py:2270  msgid "4 digit year/month/day. e.g.: \"2015/02/04\""  msgstr "Année sur 4 chiffres/mois/jour. Exemple : « 2015/02/04 »" -#: models.py:2269 +#: models.py:2271  msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""  msgstr "Jour/mois/année sur 4 chiffres. Exemple : « 04/02/2015 »" -#: models.py:2279 +#: models.py:2281  msgid "Options"  msgstr "Options" -#: models.py:2281 +#: models.py:2283  msgid "Split character(s)"  msgstr "Caractère(s) de séparation" -#: models.py:2285 +#: models.py:2287  msgid "Importer - Formater type"  msgstr "Importeur - Type de mise en forme" -#: models.py:2286 +#: models.py:2288  msgid "Importer - Formater types"  msgstr "Importeur - Types de mise en forme" -#: models.py:2338 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2340 templates/ishtar/dashboards/dashboard_main_detail.html:63  msgid "Created"  msgstr "Créé" -#: models.py:2339 +#: models.py:2341  msgid "Analyse in progress"  msgstr "Analyse en cours" -#: models.py:2340 +#: models.py:2342  msgid "Analysed"  msgstr "Analysé" -#: models.py:2341 +#: models.py:2343  msgid "Import pending"  msgstr "Import en attente" -#: models.py:2342 +#: models.py:2344  msgid "Import in progress"  msgstr "Import en cours" -#: models.py:2343 +#: models.py:2345 models.py:3184  msgid "Finished with errors"  msgstr "Terminé avec des erreurs" -#: models.py:2344 +#: models.py:2346 models.py:3185  msgid "Finished"  msgstr "Terminé" -#: models.py:2345 +#: models.py:2347  msgid "Archived"  msgstr "Archivé" -#: models.py:2360 +#: models.py:2362  msgid "Imported file"  msgstr "Fichier importé" -#: models.py:2362 +#: models.py:2364  msgid "Associated images (zip file)"  msgstr "Images associées (fichier zip)" -#: models.py:2364 +#: models.py:2366  msgid "Encoding"  msgstr "Codage" -#: models.py:2366 +#: models.py:2368  msgid "Skip lines"  msgstr "Nombre de lignes d'entête" -#: models.py:2367 templates/ishtar/import_list.html:51 +#: models.py:2369 templates/ishtar/import_list.html:51  msgid "Error file"  msgstr "Fichier erreur" -#: models.py:2370 +#: models.py:2372  msgid "Result file"  msgstr "Fichier résultant" -#: models.py:2373 templates/ishtar/import_list.html:57 +#: models.py:2375 templates/ishtar/import_list.html:57  msgid "Match file"  msgstr "Fichier de correspondance" -#: models.py:2379 +#: models.py:2381  msgid "Conservative import"  msgstr "Import conservateur" -#: models.py:2383 +#: models.py:2385  msgid "End date"  msgstr "Date de fin" -#: models.py:2386 +#: models.py:2388  msgid "Remaining seconds"  msgstr "Secondes restantes" -#: models.py:2389 +#: models.py:2391  msgid "Import"  msgstr "Import" -#: models.py:2418 +#: models.py:2420  msgid "Analyse"  msgstr "Analyser" -#: models.py:2420 models.py:2423 +#: models.py:2422 models.py:2425  msgid "Re-analyse"  msgstr "Analyser de nouveau " -#: models.py:2421 +#: models.py:2423  msgid "Launch import"  msgstr "Lancer l'import" -#: models.py:2424 +#: models.py:2426  msgid "Re-import"  msgstr "Ré-importer" -#: models.py:2425 +#: models.py:2427  msgid "Archive"  msgstr "Archiver" -#: models.py:2427 +#: models.py:2429  msgid "Unarchive"  msgstr "Désarchiver" -#: models.py:2428 widgets.py:198 templates/ishtar/form_delete.html:11 +#: models.py:2430 widgets.py:198 templates/ishtar/form_delete.html:11  msgid "Delete"  msgstr "Supprimer" -#: models.py:2569 +#: models.py:2571  msgid "Organizations"  msgstr "Organisations" -#: models.py:2571 +#: models.py:2573  msgid "Can view all Organizations"  msgstr "Peut voir toutes les Organisations" -#: models.py:2572 +#: models.py:2574  msgid "Can view own Organization"  msgstr "Peut voir sa propre Organisation" -#: models.py:2573 +#: models.py:2575  msgid "Can add own Organization"  msgstr "Peut ajouter sa propre Organisation" -#: models.py:2575 +#: models.py:2577  msgid "Can change own Organization"  msgstr "Peut modifier sa propre Organisation" -#: models.py:2577 +#: models.py:2579  msgid "Can delete own Organization"  msgstr "Peut supprimer sa propre Organisation" -#: models.py:2612 +#: models.py:2614  msgid "Groups"  msgstr "Groupes" -#: models.py:2617 +#: models.py:2619  msgid "Person types"  msgstr "Types de personne" -#: models.py:2629 +#: models.py:2631  msgid "Title types"  msgstr "Types de titre" -#: models.py:2638 +#: models.py:2640  msgid "Mr"  msgstr "M." -#: models.py:2639 +#: models.py:2641  msgid "Miss"  msgstr "Mlle" -#: models.py:2640 +#: models.py:2642  msgid "Mr and Mrs"  msgstr "M. et Mme" -#: models.py:2641 +#: models.py:2643  msgid "Mrs"  msgstr "Mme" -#: models.py:2642 +#: models.py:2644  msgid "Doctor"  msgstr "Dr." -#: models.py:2675 +#: models.py:2677  msgid "Contact type"  msgstr "Type de contact" -#: models.py:2678 models.py:2742 +#: models.py:2680 models.py:2744  msgid "Types"  msgstr "Types" -#: models.py:2681 +#: models.py:2683  msgid "Is attached to"  msgstr "Est rattaché à" -#: models.py:2686 +#: models.py:2688  msgid "Persons"  msgstr "Personnes" -#: models.py:2688 +#: models.py:2690  msgid "Can view all Persons"  msgstr "Peut voir toutes les Personnes" -#: models.py:2689 +#: models.py:2691  msgid "Can view own Person"  msgstr "Peut voir sa propre Personne" -#: models.py:2690 +#: models.py:2692  msgid "Can add own Person"  msgstr "Peut ajouter sa propre Personne" -#: models.py:2691 +#: models.py:2693  msgid "Can change own Person"  msgstr "Peut modifier sa propre Personne" -#: models.py:2692 +#: models.py:2694  msgid "Can delete own Person"  msgstr "Peut supprimer sa propre Personne" -#: models.py:2881 +#: models.py:2883  msgid "Advanced shortcut menu"  msgstr "Menu de raccourci (avancé)" -#: models.py:2884 +#: models.py:2886  msgid "Ishtar user"  msgstr "Utilisateur d'Ishtar" -#: models.py:2885 +#: models.py:2887  msgid "Ishtar users"  msgstr "Utilisateurs d'Ishtar" -#: models.py:2925 +#: models.py:2927  msgid "To modify the password use the form in Auth > User"  msgstr ""  "Pour modifier le mot de passe, utilisez le formulaire dans Authentification "  "> Utilisateurs" -#: models.py:2933 +#: models.py:2935  msgid "Author types"  msgstr "Types d'auteur" -#: models.py:2950 +#: models.py:2952  msgid "Can view all Authors"  msgstr "Peut voir tous les Auteurs" -#: models.py:2952 +#: models.py:2954  msgid "Can view own Author"  msgstr "Peut voir son propre Auteur" -#: models.py:2954 +#: models.py:2956  msgid "Can add own Author"  msgstr "Peut ajouter son propre Auteur" -#: models.py:2956 +#: models.py:2958  msgid "Can change own Author"  msgstr "Peut modifier son propre Auteur" -#: models.py:2958 +#: models.py:2960  msgid "Can delete own Author"  msgstr "Peut supprimer son propre Auteur" -#: models.py:2979 +#: models.py:2981  msgid "Source types"  msgstr "Types de document" -#: models.py:2988 +#: models.py:2990  msgid "Support types"  msgstr "Types de support" -#: models.py:2995 +#: models.py:2997  msgid "Format type"  msgstr "Type de format" -#: models.py:2996 +#: models.py:2998  msgid "Format types"  msgstr "Types de format" -#: models.py:3004 +#: models.py:3006  msgid "External ID"  msgstr "Identifiant externe" -#: models.py:3007 +#: models.py:3009  msgid "Support"  msgstr "Support" -#: models.py:3011 +#: models.py:3013  msgid "Scale"  msgstr "Échelle" -#: models.py:3025 +#: models.py:3027  msgid "Item number"  msgstr "Numéro d'élément" -#: models.py:3026 +#: models.py:3028  msgid "Ref."  msgstr "Réf." -#: models.py:3029 +#: models.py:3031  msgid "Internal ref."  msgstr "Réf. interne" -#: models.py:3072 +#: models.py:3074  msgid "Surface (m2)"  msgstr "Surface (m2)" -#: models.py:3073 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:3075 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107  msgid "Localisation"  msgstr "Localisation" -#: models.py:3098 +#: models.py:3100  msgid "Is preventive"  msgstr "Est du préventif" -#: models.py:3102 +#: models.py:3104  msgid "Operation types"  msgstr "Types d'opération" -#: models.py:3131 +#: models.py:3133  msgid "Preventive"  msgstr "Préventif" -#: models.py:3132 +#: models.py:3134  msgid "Research"  msgstr "Programmé" -#: models.py:3155 +#: models.py:3157  msgid "Authority name"  msgstr "Registre" -#: models.py:3156 +#: models.py:3158  msgid "Authority SRID"  msgstr "SRID" -#: models.py:3160 +#: models.py:3162  msgid "Spatial reference systems"  msgstr "Systèmes de référence spatiale" +#: models.py:3169 +msgid "Filename" +msgstr "Nom de fichier" + +#: models.py:3174 +msgid "Administration script" +msgstr "Script d'administration" + +#: models.py:3175 +msgid "Administration scripts" +msgstr "Scripts d'administration" + +#: models.py:3182 +msgid "Scheduled" +msgstr "Planifié" + +#: models.py:3183 +msgid "In progress" +msgstr "En cours" + +#: models.py:3198 +msgid "Result" +msgstr "Résultat" + +#: models.py:3201 +msgid "Administration task" +msgstr "Tâche d'administration" + +#: models.py:3202 +msgid "Administration tasks" +msgstr "Tâches d'administration" + +#: models.py:3206 +msgid "Unknown" +msgstr "Inconnu" + +#: models.py:3221 +msgid "" +"ISHTAR_SCRIPT_DIR is not set in your local_settings. Contact your " +"administrator." +msgstr "" +"ISHTAR_SCRIPT_DIR n'est pas défini dans votre fichier local_settings. " +"Contactez votre administrateur." + +#: models.py:3230 +msgid "" +"Your ISHTAR_SCRIPT_DIR is containing dots \"..\". As it can refer to " +"relative paths, it can be a security issue and this is not allowed. Only put " +"a full path." +msgstr "" +"La variable ISHTAR_SCRIPT_DIR contient des points « .. ». Comme cela peut " +"correspondre à un chemin relatif, il est possible que cela puisse poser un " +"problème de sécurité et cela n'est pas permis. Seul un chemin complet est " +"permis." + +#: models.py:3241 +msgid "Your ISHTAR_SCRIPT_DIR: \"{}\" is not a valid directory." +msgstr "ISHTAR_SCRIPT_DIR: « {} » n'est pas un répertoire valable." + +#: models.py:3257 +msgid "" +"Script \"{}\" is not available in your script directory. Check your " +"configuration." +msgstr "" +"Le script « {} »n'est pas un fichier valable de votre répertoire de script. " +"Vérifiez votre configuration." +  #: utils.py:100  msgid " (...)"  msgstr " (...)" diff --git a/version.py b/version.py index 3f6b5cc62..9218f4cb4 100644 --- a/version.py +++ b/version.py @@ -1,5 +1,5 @@ -# 1.99.1 -VERSION = (1, 99, 1, 1) +# 1.99.2 +VERSION = (1, 99, 2)  def get_version(): | 
