diff options
67 files changed, 5045 insertions, 1425 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index df5a83539..59f683620 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2015 É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 @@ -36,7 +36,8 @@ from ishtar_common import widgets from ishtar_common.forms import FinalForm, FormSet, \ reverse_lazy, get_form_selection, TableSelect from ishtar_common.forms_common import get_town_field, SourceSelect -from archaeological_operations.forms import OperationSelect, ParcelField +from archaeological_operations.forms import OperationSelect, ParcelField,\ + RecordRelationsForm as OpeRecordRelationsForm class RecordSelect(TableSelect): @@ -181,6 +182,35 @@ DatingFormSet = formset_factory(DatingForm, can_delete=True, DatingFormSet.form_label = _("Dating") +class RecordRelationsForm(OpeRecordRelationsForm): + current_model = models.RelationType + current_related_model = models.ContextRecord + associated_models = {'right_record': models.ContextRecord, + 'relation_type': models.RelationType} + right_record = forms.ChoiceField( + label=_(u"Context record"), choices=[], required=False) + + def __init__(self, *args, **kwargs): + crs = None + if 'data' in kwargs and 'CONTEXT_RECORDS' in kwargs['data']: + crs = kwargs['data']['CONTEXT_RECORDS'] + # clean data if not "real" data + prefix_value = kwargs['prefix'] + '-right_record' + if not [k for k in kwargs['data'].keys() + if k.startswith(prefix_value) and kwargs['data'][k]]: + kwargs['data'] = None + if 'files' in kwargs: + kwargs.pop('files') + super(RecordRelationsForm, self).__init__(*args, **kwargs) + self.fields['relation_type'].choices = \ + models.RelationType.get_types() + if crs: + self.fields['right_record'].choices = [('', '-' * 2)] + crs + +RecordRelationsFormSet = formset_factory(RecordRelationsForm, can_delete=True) +RecordRelationsFormSet.form_label = _(u"Relations") + + class RecordFormInterpretation(forms.Form): form_label = _("Interpretation") associated_models = {'activity': models.ActivityType, diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index ca271337c..82298595c 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -6,380 +6,384 @@ msgid "" msgstr "" -#: forms.py:43 forms.py:96 models.py:123 +#: forms.py:44 forms.py:97 models.py:124 #: templates/ishtar/sheet_contextrecord.html:72 msgid "ID" msgstr "" -#: forms.py:47 +#: forms.py:48 msgid "Code PATRIARCHE" msgstr "" -#: forms.py:48 +#: forms.py:49 msgid "Operation's year" msgstr "" -#: forms.py:50 +#: forms.py:51 msgid "Operation's number (index by year)" msgstr "" -#: forms.py:51 forms.py:162 models.py:47 +#: forms.py:52 forms.py:163 models.py:48 msgid "Period" msgstr "" -#: forms.py:52 +#: forms.py:53 msgid "Unit type" msgstr "" -#: forms.py:53 +#: forms.py:54 msgid "Parcel (section/number)" msgstr "" -#: forms.py:71 forms.py:229 views.py:68 +#: forms.py:72 forms.py:259 views.py:68 msgid "Context record search" msgstr "" -#: forms.py:85 +#: forms.py:86 msgid "You should at least select one context record." msgstr "" -#: forms.py:91 +#: forms.py:92 msgid "General" msgstr "" -#: forms.py:95 models.py:116 models.py:119 +#: forms.py:96 models.py:117 models.py:120 #: templates/ishtar/sheet_contextrecord.html:76 msgid "Parcel" msgstr "" -#: forms.py:98 models.py:124 templates/ishtar/sheet_contextrecord.html:42 +#: forms.py:99 models.py:125 templates/ishtar/sheet_contextrecord.html:42 #: templates/ishtar/sheet_contextrecord.html:75 msgid "Description" msgstr "" -#: forms.py:100 models.py:129 +#: forms.py:101 models.py:130 msgid "Length (cm)" msgstr "" -#: forms.py:101 models.py:130 +#: forms.py:102 models.py:131 msgid "Width (cm)" msgstr "" -#: forms.py:102 models.py:131 +#: forms.py:103 models.py:132 msgid "Thickness (cm)" msgstr "" -#: forms.py:103 models.py:133 +#: forms.py:104 models.py:134 msgid "Depth (cm)" msgstr "" -#: forms.py:104 models.py:139 +#: forms.py:105 models.py:140 msgid "Unit" msgstr "" -#: forms.py:106 models.py:135 +#: forms.py:107 models.py:136 msgid "Location" msgstr "" -#: forms.py:151 +#: forms.py:152 msgid "This ID already exist for this operation." msgstr "" -#: forms.py:157 forms.py:181 models.py:58 +#: forms.py:158 forms.py:182 models.py:59 msgid "Dating" msgstr "" -#: forms.py:163 models.py:48 +#: forms.py:164 models.py:49 msgid "Start date" msgstr "" -#: forms.py:164 models.py:49 models.py:128 +#: forms.py:165 models.py:50 models.py:129 msgid "End date" msgstr "" -#: forms.py:165 models.py:52 +#: forms.py:166 models.py:53 msgid "Quality" msgstr "" -#: forms.py:166 models.py:34 models.py:50 +#: forms.py:167 models.py:35 models.py:51 msgid "Dating type" msgstr "" -#: forms.py:185 forms.py:192 models.py:144 +#: forms.py:191 ishtar_menu.py:29 models.py:318 +msgid "Context record" +msgstr "" + +#: forms.py:211 +msgid "Relations" +msgstr "" + +#: forms.py:215 forms.py:222 models.py:145 #: templates/ishtar/sheet_contextrecord.html:52 msgid "Interpretation" msgstr "" -#: forms.py:188 models.py:141 +#: forms.py:218 models.py:142 msgid "Has furniture?" msgstr "" -#: forms.py:190 models.py:143 +#: forms.py:220 models.py:144 msgid "Filling" msgstr "" -#: forms.py:194 models.py:164 +#: forms.py:224 models.py:165 msgid "Activity" msgstr "" -#: forms.py:196 models.py:162 +#: forms.py:226 models.py:163 msgid "Identification" msgstr "" -#: forms.py:198 models.py:147 +#: forms.py:228 models.py:148 msgid "TAQ" msgstr "" -#: forms.py:199 models.py:151 +#: forms.py:229 models.py:152 msgid "Estimated TAQ" msgstr "" -#: forms.py:201 models.py:154 +#: forms.py:231 models.py:155 msgid "TPQ" msgstr "" -#: forms.py:202 models.py:158 +#: forms.py:232 models.py:159 msgid "Estimated TPQ" msgstr "" -#: forms.py:215 +#: forms.py:245 msgid "Operation search" msgstr "" -#: forms.py:217 +#: forms.py:247 msgid "You should select an operation." msgstr "" -#: forms.py:222 +#: forms.py:252 msgid "Would you like to delete this context record?" msgstr "" -#: forms.py:231 +#: forms.py:261 msgid "You should select a context record." msgstr "" -#: forms.py:236 +#: forms.py:266 msgid "Town of the operation" msgstr "" -#: forms.py:238 +#: forms.py:268 msgid "Year of the operation" msgstr "" -#: forms.py:240 +#: forms.py:270 msgid "Period of the context record" msgstr "" -#: forms.py:242 +#: forms.py:272 msgid "Unit type of the context record" msgstr "" -#: forms.py:255 +#: forms.py:285 msgid "Documentation search" msgstr "" -#: forms.py:257 +#: forms.py:287 msgid "You should select a document." msgstr "" -#: ishtar_menu.py:27 models.py:310 -msgid "Context record" -msgstr "" - -#: ishtar_menu.py:28 +#: ishtar_menu.py:30 msgid "Search" msgstr "" -#: ishtar_menu.py:32 +#: ishtar_menu.py:34 msgid "Creation" msgstr "" -#: ishtar_menu.py:36 ishtar_menu.py:53 +#: ishtar_menu.py:38 ishtar_menu.py:55 msgid "Modification" msgstr "" -#: ishtar_menu.py:40 ishtar_menu.py:59 +#: ishtar_menu.py:42 ishtar_menu.py:61 msgid "Deletion" msgstr "" -#: ishtar_menu.py:44 +#: ishtar_menu.py:46 msgid "Documentation" msgstr "" -#: ishtar_menu.py:47 +#: ishtar_menu.py:49 msgid "Add" msgstr "" -#: models.py:35 +#: models.py:36 msgid "Dating types" msgstr "" -#: models.py:41 +#: models.py:42 msgid "Dating quality" msgstr "" -#: models.py:42 +#: models.py:43 msgid "Dating qualities" msgstr "" -#: models.py:54 +#: models.py:55 msgid "Precise dating" msgstr "" -#: models.py:59 +#: models.py:60 msgid "Datings" msgstr "" -#: models.py:70 models.py:84 models.py:96 +#: models.py:71 models.py:85 models.py:97 msgid "Order" msgstr "" -#: models.py:71 +#: models.py:72 msgid "Parent unit" msgstr "" -#: models.py:75 +#: models.py:76 msgid "Type Unit" msgstr "" -#: models.py:76 +#: models.py:77 msgid "Types Unit" msgstr "" -#: models.py:87 +#: models.py:88 msgid "Type Activity" msgstr "" -#: models.py:88 +#: models.py:89 msgid "Types Activity" msgstr "" -#: models.py:99 +#: models.py:100 msgid "Type Identification" msgstr "" -#: models.py:100 +#: models.py:101 msgid "Types Identification" msgstr "" -#: models.py:117 +#: models.py:118 msgid "External ID" msgstr "" -#: models.py:121 wizards.py:60 +#: models.py:122 wizards.py:68 msgid "Operation" msgstr "" -#: models.py:125 +#: models.py:126 msgid "Comment" msgstr "" -#: models.py:126 +#: models.py:127 msgid "Date d'ouverture" msgstr "" -#: models.py:136 +#: models.py:137 msgid "A short description of the location of the context record" msgstr "" -#: models.py:148 +#: models.py:149 msgid "" "\"Terminus Ante Quem\" the context record can't have been created after this " "date" msgstr "" -#: models.py:152 +#: models.py:153 msgid "Estimation of a \"Terminus Ante Quem\"" msgstr "" -#: models.py:155 +#: models.py:156 msgid "" "\"Terminus Post Quem\" the context record can't have been created before " "this date" msgstr "" -#: models.py:159 +#: models.py:160 msgid "Estimation of a \"Terminus Post Quem\"" msgstr "" -#: models.py:170 models.py:171 templates/ishtar/sheet_contextrecord.html:6 +#: models.py:171 models.py:172 templates/ishtar/sheet_contextrecord.html:6 msgid "Context Record" msgstr "" -#: models.py:173 +#: models.py:174 msgid "Can view all Context Record" msgstr "" -#: models.py:175 +#: models.py:176 msgid "Can view own Context Record" msgstr "" -#: models.py:177 +#: models.py:178 msgid "Can add own Context Record" msgstr "" -#: models.py:179 +#: models.py:180 msgid "Can change own Context Record" msgstr "" -#: models.py:181 +#: models.py:182 msgid "Can delete own Context Record" msgstr "" -#: models.py:190 +#: models.py:191 msgctxt "short" msgid "Context record" msgstr "" -#: models.py:282 +#: models.py:289 msgid "Inverse relation" msgstr "" -#: models.py:286 templates/ishtar/sheet_contextrecord.html:71 +#: models.py:293 templates/ishtar/sheet_contextrecord.html:71 msgid "Relation type" msgstr "" -#: models.py:287 +#: models.py:294 msgid "Relation types" msgstr "" -#: models.py:299 +#: models.py:307 msgid "Record relation" msgstr "" -#: models.py:300 +#: models.py:308 msgid "Record relations" msgstr "" -#: models.py:307 +#: models.py:315 msgid "Context record documentation" msgstr "" -#: models.py:308 +#: models.py:316 msgid "Context record documentations" msgstr "" -#: views.py:77 +#: views.py:78 msgid "New context record" msgstr "" -#: views.py:86 +#: views.py:88 msgid "Context record modification" msgstr "" -#: views.py:100 +#: views.py:102 msgid "Context record deletion" msgstr "" -#: views.py:108 +#: views.py:110 msgid "Context record: new source" msgstr "" -#: views.py:116 +#: views.py:118 msgid "Context record: source modification" msgstr "" -#: views.py:122 +#: views.py:124 msgid "Context record: source deletion" msgstr "" diff --git a/archaeological_context_records/migrations/0013_auto__add_field_contextrecordsource_duplicate__chg_field_contextrecord.py b/archaeological_context_records/migrations/0013_auto__add_field_contextrecordsource_duplicate__chg_field_contextrecord.py new file mode 100644 index 000000000..2bed4037f --- /dev/null +++ b/archaeological_context_records/migrations/0013_auto__add_field_contextrecordsource_duplicate__chg_field_contextrecord.py @@ -0,0 +1,586 @@ +# -*- 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 field 'ContextRecordSource.duplicate' + db.add_column('archaeological_context_records_contextrecordsource', 'duplicate', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + + # Changing field 'ContextRecordSource.internal_reference' + db.alter_column('archaeological_context_records_contextrecordsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) + + # Changing field 'ContextRecordSource.reference' + db.alter_column('archaeological_context_records_contextrecordsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) + + def backwards(self, orm): + # Deleting field 'ContextRecordSource.duplicate' + db.delete_column('archaeological_context_records_contextrecordsource', 'duplicate') + + + # Changing field 'ContextRecordSource.internal_reference' + db.alter_column('archaeological_context_records_contextrecordsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True)) + + # Changing field 'ContextRecordSource.reference' + db.alter_column('archaeological_context_records_contextrecordsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=25, 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': {'object_name': 'ContextRecord'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", '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'}), + 'depth': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'has_furniture': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_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'}), + '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.CharField', [], {'max_length': '200', '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']"}), + '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.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.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'}), + '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'}), + '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'}), + '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.historicalcontextrecord': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalContextRecord'}, + 'activity_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), + 'depth': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'has_furniture': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_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'}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + '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'}), + 'taq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'taq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thickness': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.identificationtype': { + 'Meta': {'ordering': "('order',)", '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',)", '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'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.unit': { + 'Meta': {'ordering': "('order',)", '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'}), + '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'}), + '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.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), + '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'}), + 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.IntegerField', [], {'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': '2015'}) + }, + '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'}, + '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_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': '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'}), + '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'}), + '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'}), + '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'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'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'}), + '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'}), + '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'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}), + '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']"}), + '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'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'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': {'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': {'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'}), + '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': {'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': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + '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']}, + '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'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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': '300'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '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'}), + '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']"}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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'}), + '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'}), + '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'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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': {'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.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + 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 85f7582f3..52d976cfd 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -106,6 +106,7 @@ class IdentificationType(GeneralType): class ContextRecord(BaseHistorizedItem, OwnPerms, ShortMenuItem): + SHOW_URL = 'show-contextrecord' TABLE_COLS = ['parcel.town', 'operation.year', 'operation.operation_code', 'label', 'unit'] @@ -296,6 +297,7 @@ class RelationType(GeneralRelationType): class RecordRelations(GeneralRecordRelations, models.Model): + MAIN_ATTR = 'left_record' left_record = models.ForeignKey(ContextRecord, related_name='right_relations') right_record = models.ForeignKey(ContextRecord, @@ -310,6 +312,8 @@ post_delete.connect(post_delete_record_relation, sender=RecordRelations) class ContextRecordSource(Source): + SHOW_URL = 'show-contextrecordsource' + class Meta: verbose_name = _(u"Context record documentation") verbose_name_plural = _(u"Context record documentations") diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecordsource.html b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource.html new file mode 100644 index 000000000..17d09d843 --- /dev/null +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource.html @@ -0,0 +1,11 @@ +{% extends "ishtar/sheet_source.html" %} +{% load i18n window_field link_to_window %} + +{% block head_sheet %} +{{block.super}} +<h1>{% trans "Context record source"%}</h1> +{% endblock %} + +{% block related %} +{% field "Related context record" item.owner '' item.owner|link_to_window %} +{% endblock %} diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_pdf.html b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_pdf.html new file mode 100644 index 000000000..8e6b9bb85 --- /dev/null +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_pdf.html @@ -0,0 +1,18 @@ +{% extends "ishtar/sheet_contextrecordsource.html" %} +{% block header %} +<link rel="stylesheet" href="{{STATIC_URL}}/media/style_basic.css" /> +{% endblock %} +{% block main_head %} +{{ block.super }} +<div id="pdfheader"> +Ishtar – {{APP_NAME}} – {{item}} +</div> +{% endblock %} +{%block head_sheet%}{%endblock%} +{%block main_foot%} +<div id="pdffooter"> +– <pdf:pagenumber/> – +</div> +</body> +</html> +{%endblock%} diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_window.html b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_window.html new file mode 100644 index 000000000..21dd20758 --- /dev/null +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_window.html @@ -0,0 +1,3 @@ +{% extends "ishtar/sheet_contextrecordsource.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index 6ffc2f194..da6d80a98 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -19,6 +19,7 @@ from django.conf.urls.defaults import * +from archaeological_context_records import models from ishtar_common.wizards import check_rights import views @@ -59,7 +60,7 @@ urlpatterns = patterns( urlpatterns += patterns( 'archaeological_context_records.views', url(r'show-contextrecord(?:/(?P<pk>.+))?/(?P<type>.+)?$', - 'show_contextrecord', name='show-contextrecord'), + 'show_contextrecord', name=models.ContextRecord.SHOW_URL), url(r'show-historized-contextrecord/(?P<pk>.+)?/(?P<date>.+)?$', 'show_contextrecord', name='show-historized-contextrecord'), url(r'revert-contextrecord/(?P<pk>.+)/(?P<date>.+)$', @@ -80,6 +81,8 @@ urlpatterns += patterns( url(r'get-contextrecord-full/(?P<type>.+)?$', 'get_contextrecord', name='get-contextrecord-full', kwargs={'full': True}), + url(r'show-contextrecordsource(?:/(?P<pk>.+))?/(?P<type>.+)?$', + 'show_contextrecordsource', name=models.ContextRecordSource.SHOW_URL), url(r'get-contexrecordsource/(?P<type>.+)?$', 'get_contextrecordsource', name='get-contextrecordsource'), ) diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index cbf34ee07..13375f866 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2015 É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 @@ -51,9 +51,14 @@ get_contextrecord_for_ope = get_item( 'get_contextrecord', 'contextrecord', extra_request_keys=contextrecord_extra_keys, own_table_cols=models.ContextRecord.TABLE_COLS_FOR_OPE) + +show_contextrecordsource = show_item(models.ContextRecordSource, + 'contextrecordsource') + get_contextrecordsource = get_item( models.ContextRecordSource, 'get_contextrecordsource', 'contextrecordsource', + bool_fields=['duplicate'], extra_request_keys={ 'context_record__parcel__town': 'context_record__parcel__town__pk', 'context_record__operation__year': 'context_record__operation__year', @@ -73,6 +78,7 @@ record_creation_wizard = RecordWizard.as_view([ ('general-record_creation', RecordFormGeneral), ('datings-record_creation', DatingFormSet), ('interpretation-record_creation', RecordFormInterpretation), + ('relations-record_creation', RecordRelationsFormSet), ('final-record_creation', FinalForm)], label=_(u"New context record"), url_name='record_creation',) @@ -82,6 +88,7 @@ record_modification_wizard = RecordModifWizard.as_view([ ('general-record_modification', RecordFormGeneral), ('datings-record_modification', DatingFormSet), ('interpretation-record_modification', RecordFormInterpretation), + ('relations-record_creation', RecordRelationsFormSet), ('final-record_modification', FinalForm)], label=_(u"Context record modification"), url_name='record_modification',) diff --git a/archaeological_context_records/wizards.py b/archaeological_context_records/wizards.py index 99c666e89..2449b400e 100644 --- a/archaeological_context_records/wizards.py +++ b/archaeological_context_records/wizards.py @@ -29,6 +29,14 @@ class RecordWizard(Wizard): model = models.ContextRecord edit = False wizard_done_window = reverse_lazy('show-contextrecord') + relations_step_key = 'relations' + + def get_template_names(self): + templates = super(RecordWizard, self).get_template_names() + current_step = self.steps.current + if current_step.startswith(self.relations_step_key): + templates = ['ishtar/wizard/relations_wizard.html'] + templates + return templates def get_current_operation(self): step = self.steps.current @@ -87,9 +95,21 @@ class RecordWizard(Wizard): else: current_object = self.get_current_object() data['context_record'] = current_object + elif step.startswith('relations') and hasattr(form, 'management_form'): + data['CONTEXT_RECORDS'] = self.get_other_context_records() form = super(RecordWizard, self).get_form(step, data, files) return form + def get_other_context_records(self): + operation = self.get_current_operation() + if not operation: + return [] + q = models.ContextRecord.objects.filter(operation=operation) + obj = self.get_current_object() + if obj and obj.pk: + q = q.exclude(pk=obj.pk) + return [(cr.pk, unicode(cr)) for cr in q.all()] + class RecordModifWizard(RecordWizard): modification = True diff --git a/archaeological_files/data_importer.py b/archaeological_files/data_importer.py index 7e3c0c118..ba92c63ab 100644 --- a/archaeological_files/data_importer.py +++ b/archaeological_files/data_importer.py @@ -61,7 +61,8 @@ class FilePostProcessing(object): def post_processing(self, item, data): if not item.end_date: # auto-close open_date = item.reception_date or item.creation_date - item.end_date = open_date + datetime.timedelta(30) + if open_date: + item.end_date = open_date + datetime.timedelta(30) item.save() return item diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index a8dd99135..8c360e364 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -379,6 +379,8 @@ class AdministrativeActFileModifySelect(TableSelect): ref_sra = forms.CharField(label=u"Référence SRA", max_length=15) act_type = forms.ChoiceField(label=_("Act type"), choices=[]) + act_object = forms.CharField(label=_(u"Object (full text search)"), + max_length=300) operation__towns = get_town_field() if settings.ISHTAR_DPTS: operation__towns__numero_insee__startswith = forms.ChoiceField( @@ -442,6 +444,8 @@ class AdministrativeActFileSelect(TableSelect): if settings.ISHTAR_DPTS: operation__towns__numero_insee__startswith = forms.ChoiceField( label=_(u"Department"), choices=[]) + act_object = forms.CharField(label=_(u"Object (full text search)"), + max_length=300) history_creator = forms.IntegerField( label=_(u"Created by"), widget=widgets.JQueryAutoComplete( diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot index 3c3a4ef24..b480fa0fd 100644 --- a/archaeological_files/locale/django.pot +++ b/archaeological_files/locale/django.pot @@ -6,20 +6,20 @@ msgid "" msgstr "" -#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:429 +#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:431 #: models.py:75 templates/ishtar/sheet_file.html:137 msgid "Year" msgstr "" -#: forms.py:52 forms.py:196 forms.py:237 forms.py:428 models.py:78 +#: forms.py:52 forms.py:196 forms.py:237 forms.py:430 models.py:78 msgid "Numeric reference" msgstr "" -#: forms.py:54 forms.py:198 forms.py:431 +#: forms.py:54 forms.py:198 forms.py:433 msgid "Other reference" msgstr "" -#: forms.py:56 forms.py:409 +#: forms.py:56 forms.py:411 msgid "File name" msgstr "" @@ -39,23 +39,23 @@ msgstr "" msgid "Is active?" msgstr "" -#: forms.py:62 forms.py:267 forms.py:411 models.py:91 +#: forms.py:62 forms.py:267 forms.py:413 models.py:91 msgid "General contractor" msgstr "" -#: forms.py:69 forms.py:420 +#: forms.py:69 forms.py:422 msgid "Organization of general contractor" msgstr "" -#: forms.py:76 forms.py:433 templates/ishtar/sheet_file.html:114 +#: forms.py:76 forms.py:435 templates/ishtar/sheet_file.html:114 msgid "In charge" msgstr "" -#: forms.py:83 forms.py:446 +#: forms.py:83 forms.py:450 msgid "Created by" msgstr "" -#: forms.py:90 forms.py:292 forms.py:441 models.py:117 +#: forms.py:90 forms.py:292 forms.py:443 models.py:117 msgid "Permit reference" msgstr "" @@ -193,67 +193,71 @@ msgstr "" msgid "Index" msgstr "" -#: forms.py:381 forms.py:403 forms.py:489 +#: forms.py:381 forms.py:405 forms.py:493 msgid "Act type" msgstr "" -#: forms.py:385 forms.py:444 models.py:514 +#: forms.py:382 forms.py:447 +msgid "Object (full text search)" +msgstr "" + +#: forms.py:387 forms.py:446 models.py:514 msgid "Department" msgstr "" -#: forms.py:405 +#: forms.py:407 msgid "Signature date after" msgstr "" -#: forms.py:407 +#: forms.py:409 msgid "Signature date before" msgstr "" -#: ishtar_menu.py:30 models.py:186 templates/ishtar/sheet_file.html:6 +#: ishtar_menu.py:33 models.py:186 templates/ishtar/sheet_file.html:6 msgid "Archaeological file" msgstr "" -#: ishtar_menu.py:32 ishtar_menu.py:50 +#: ishtar_menu.py:36 ishtar_menu.py:59 msgid "Search" msgstr "" -#: ishtar_menu.py:35 +#: ishtar_menu.py:40 msgid "Creation" msgstr "" -#: ishtar_menu.py:38 ishtar_menu.py:58 +#: ishtar_menu.py:44 ishtar_menu.py:67 msgid "Modification" msgstr "" -#: ishtar_menu.py:41 +#: ishtar_menu.py:48 msgid "Closing" msgstr "" -#: ishtar_menu.py:44 ishtar_menu.py:62 +#: ishtar_menu.py:52 ishtar_menu.py:71 msgid "Deletion" msgstr "" -#: ishtar_menu.py:47 +#: ishtar_menu.py:56 msgid "Administrative act" msgstr "" -#: ishtar_menu.py:54 +#: ishtar_menu.py:63 msgid "Add" msgstr "" -#: ishtar_menu.py:66 +#: ishtar_menu.py:75 msgid "Documents" msgstr "" -#: ishtar_menu.py:72 +#: ishtar_menu.py:81 msgid "Dashboard" msgstr "" -#: ishtar_menu.py:74 +#: ishtar_menu.py:82 msgid "General informations" msgstr "" -#: ishtar_menu.py:77 models.py:187 +#: ishtar_menu.py:85 models.py:187 #: templates/ishtar/dashboards/dashboard_file.html:8 msgid "Archaeological files" msgstr "" @@ -382,39 +386,39 @@ msgstr "" msgid "File" msgstr "" -#: views.py:141 +#: views.py:142 msgid "File search" msgstr "" -#: views.py:150 +#: views.py:151 msgid "New file" msgstr "" -#: views.py:169 +#: views.py:170 msgid "File modification" msgstr "" -#: views.py:192 +#: views.py:193 msgid "File closing" msgstr "" -#: views.py:197 +#: views.py:198 msgid "File deletion" msgstr "" -#: views.py:204 +#: views.py:205 msgid "File: search administrative act" msgstr "" -#: views.py:213 +#: views.py:214 msgid "File: new administrative act" msgstr "" -#: views.py:223 +#: views.py:224 msgid "File: administrative act modification" msgstr "" -#: views.py:232 +#: views.py:233 msgid "File: administrative act deletion" msgstr "" diff --git a/archaeological_files/migrations/0029_auto__chg_field_file_creation_date__chg_field_historicalfile_creation_.py b/archaeological_files/migrations/0029_auto__chg_field_file_creation_date__chg_field_historicalfile_creation_.py new file mode 100644 index 000000000..52a9f70e4 --- /dev/null +++ b/archaeological_files/migrations/0029_auto__chg_field_file_creation_date__chg_field_historicalfile_creation_.py @@ -0,0 +1,335 @@ +# -*- 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 'File.creation_date' + db.alter_column('archaeological_files_file', 'creation_date', self.gf('django.db.models.fields.DateField')(null=True)) + + # Changing field 'HistoricalFile.creation_date' + db.alter_column('archaeological_files_historicalfile', 'creation_date', self.gf('django.db.models.fields.DateField')(null=True)) + + def backwards(self, orm): + + # Changing field 'File.creation_date' + db.alter_column('archaeological_files_file', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'HistoricalFile.creation_date' + db.alter_column('archaeological_files_historicalfile', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + models = { + 'archaeological_files.file': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), + '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'}), + 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.IntegerField', [], {'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': '2016'}) + }, + 'archaeological_files.filebydepartment': { + 'Meta': {'object_name': 'FileByDepartment', 'db_table': "'file_department'", 'managed': 'False'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + '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.historicalfile': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFile'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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': '120', 'null': 'True', 'blank': 'True'}), + 'file_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'general_contractor_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}), + 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + '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_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + '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_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'permit_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'permit_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'planning_service_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + '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'}), + 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'related_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'requested_operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'responsible_town_planning_service_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'saisine_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + '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'}) + }, + '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.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.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': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + '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']}, + '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'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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': '300'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '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'}), + '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']"}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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'}), + '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'}), + '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'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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.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.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['archaeological_files']
\ No newline at end of file diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 16cd6df65..d64d20a02 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -120,8 +120,9 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, blank=True, related_name='file_main') towns = models.ManyToManyField(Town, verbose_name=_(u"Towns"), related_name='file') - creation_date = models.DateField(_(u"Creation date"), - default=datetime.date.today) + creation_date = models.DateField( + _(u"Creation date"), default=datetime.date.today, blank=True, + null=True) reception_date = models.DateField(_(u'Reception date'), blank=True, null=True) related_file = models.ForeignKey("File", verbose_name=_(u"Related file"), diff --git a/archaeological_files/views.py b/archaeological_files/views.py index ad6eff854..9b2044ecc 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -116,6 +116,7 @@ get_administrativeactfile = get_item( 'history_creator': 'history_creator__ishtaruser__person__pk', 'operation__towns': 'operation__towns__pk', 'act_type__intented_to': 'act_type__intented_to', + 'act_object': 'act_object__icontains', 'signature_date_before': 'signature_date__lte', 'signature_date_after': 'signature_date__gte', 'associated_file__general_contractor__attached_to': diff --git a/archaeological_files_pdl/migrations/__init__.py b/archaeological_files_pdl/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/archaeological_files_pdl/migrations/__init__.py diff --git a/archaeological_finds/data_importer.py b/archaeological_finds/data_importer.py index dec9b7cf1..57b4e3927 100644 --- a/archaeological_finds/data_importer.py +++ b/archaeological_finds/data_importer.py @@ -73,7 +73,7 @@ class FindsImporterBibracte(Importer): ImportFormater('find__conservatory_state', TypeFormater(models.ConservatoryState), required=False), # preservation_to_consider - ImportFormater('find__preservation_to_consider', + ImportFormater('find__preservation_to_considers', TypeFormater(models.PreservationType), required=False), # comment ImportFormater('comment', UnicodeFormater(1000), required=False), diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index dad1db351..b6108730c 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -6,21 +6,21 @@ msgid "" msgstr "" -#: forms.py:45 ishtar_menu.py:27 models.py:344 models.py:530 models.py:600 +#: forms.py:45 ishtar_menu.py:31 models.py:345 models.py:539 models.py:609 #: templates/ishtar/sheet_find.html:6 msgid "Find" msgstr "" -#: forms.py:54 forms.py:289 models.py:108 models.py:286 +#: forms.py:54 forms.py:289 models.py:108 models.py:287 msgid "Free-ID" msgstr "" -#: forms.py:56 models.py:328 +#: forms.py:56 models.py:329 msgid "Previous ID" msgstr "" -#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:287 -#: models.py:553 templates/ishtar/sheet_find.html:87 +#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:288 +#: models.py:562 templates/ishtar/sheet_find.html:87 msgid "Description" msgstr "" @@ -28,7 +28,7 @@ msgstr "" msgid "Batch/object" msgstr "" -#: forms.py:62 models.py:314 +#: forms.py:62 models.py:315 msgid "Is complete?" msgstr "" @@ -36,11 +36,11 @@ msgstr "" msgid "Material type" msgstr "" -#: forms.py:66 forms.py:162 models.py:60 models.py:291 +#: forms.py:66 forms.py:162 models.py:60 models.py:292 msgid "Conservatory state" msgstr "" -#: forms.py:69 models.py:85 models.py:317 +#: forms.py:69 models.py:85 models.py:318 msgid "Object types" msgstr "" @@ -48,55 +48,55 @@ msgstr "" msgid "Preservation type" msgstr "" -#: forms.py:74 forms.py:164 models.py:319 +#: forms.py:74 forms.py:164 models.py:320 msgid "Integrity" msgstr "" -#: forms.py:76 models.py:320 +#: forms.py:76 models.py:321 msgid "Length (cm)" msgstr "" -#: forms.py:77 models.py:321 +#: forms.py:77 models.py:322 msgid "Width (cm)" msgstr "" -#: forms.py:78 models.py:322 +#: forms.py:78 models.py:323 msgid "Height (cm)" msgstr "" -#: forms.py:79 models.py:323 +#: forms.py:79 models.py:324 msgid "Diameter (cm)" msgstr "" -#: forms.py:80 forms.py:294 models.py:296 +#: forms.py:80 forms.py:294 models.py:297 msgid "Volume (l)" msgstr "" -#: forms.py:81 forms.py:295 models.py:297 +#: forms.py:81 forms.py:295 models.py:298 msgid "Weight (g)" msgstr "" -#: forms.py:82 forms.py:296 models.py:300 +#: forms.py:82 forms.py:296 models.py:301 msgid "Find number" msgstr "" -#: forms.py:83 models.py:324 +#: forms.py:83 models.py:325 msgid "Mark" msgstr "" -#: forms.py:84 forms.py:169 models.py:330 +#: forms.py:84 forms.py:169 models.py:331 msgid "Check" msgstr "" -#: forms.py:86 models.py:332 +#: forms.py:86 models.py:333 msgid "Check date" msgstr "" -#: forms.py:87 models.py:112 models.py:325 models.py:554 +#: forms.py:87 models.py:112 models.py:326 models.py:563 msgid "Comment" msgstr "" -#: forms.py:90 models.py:326 +#: forms.py:90 models.py:327 msgid "Comment on dating" msgstr "" @@ -111,7 +111,7 @@ msgid "" "p>" msgstr "" -#: forms.py:119 forms.py:147 models.py:308 +#: forms.py:119 forms.py:147 models.py:309 msgid "Dating" msgstr "" @@ -119,11 +119,11 @@ msgstr "" msgid "Period" msgstr "" -#: forms.py:125 forms.py:231 models.py:565 models.py:606 +#: forms.py:125 forms.py:231 models.py:574 models.py:615 msgid "Start date" msgstr "" -#: forms.py:127 forms.py:233 models.py:566 models.py:607 +#: forms.py:127 forms.py:233 models.py:575 models.py:616 msgid "End date" msgstr "" @@ -163,15 +163,15 @@ msgstr "" msgid "Base treatment" msgstr "" -#: forms.py:216 models.py:542 models.py:556 +#: forms.py:216 models.py:551 models.py:565 msgid "Treatment type" msgstr "" -#: forms.py:218 models.py:563 models.py:604 +#: forms.py:218 models.py:572 models.py:613 msgid "Person" msgstr "" -#: forms.py:224 models.py:558 +#: forms.py:224 models.py:567 msgid "Location" msgstr "" @@ -179,7 +179,7 @@ msgstr "" msgid "Upstream finds" msgstr "" -#: forms.py:247 models.py:345 +#: forms.py:247 models.py:346 msgid "Finds" msgstr "" @@ -235,23 +235,23 @@ msgstr "" msgid "You should select a document." msgstr "" -#: ishtar_menu.py:29 +#: ishtar_menu.py:34 msgid "Search" msgstr "" -#: ishtar_menu.py:33 ishtar_menu.py:48 +#: ishtar_menu.py:39 ishtar_menu.py:56 msgid "Creation" msgstr "" -#: ishtar_menu.py:37 ishtar_menu.py:53 +#: ishtar_menu.py:44 ishtar_menu.py:61 msgid "Modification" msgstr "" -#: ishtar_menu.py:45 +#: ishtar_menu.py:53 msgid "Documentation" msgstr "" -#: ishtar_menu.py:58 +#: ishtar_menu.py:66 msgid "Deletion" msgstr "" @@ -267,7 +267,7 @@ msgstr "" msgid "Parent material" msgstr "" -#: models.py:51 models.py:289 +#: models.py:51 models.py:290 msgid "Material types" msgstr "" @@ -303,7 +303,7 @@ msgstr "" msgid "Batch" msgstr "" -#: models.py:109 models.py:283 models.py:548 +#: models.py:109 models.py:284 models.py:557 msgid "External ID" msgstr "" @@ -335,7 +335,7 @@ msgstr "" msgid "Complete ID" msgstr "" -#: models.py:136 models.py:281 +#: models.py:136 models.py:282 msgid "Base find" msgstr "" @@ -411,123 +411,123 @@ msgstr "" msgid "Base find - Discovery date" msgstr "" -#: models.py:285 +#: models.py:286 msgid "Order" msgstr "" -#: models.py:294 +#: models.py:295 msgid "Type of preservation to consider" msgstr "" -#: models.py:298 +#: models.py:299 msgid "Weight unit" msgstr "" -#: models.py:304 templates/ishtar/sheet_find.html:61 +#: models.py:305 templates/ishtar/sheet_find.html:61 msgid "Upstream treatment" msgstr "" -#: models.py:307 templates/ishtar/sheet_find.html:63 +#: models.py:308 templates/ishtar/sheet_find.html:63 msgid "Downstream treatment" msgstr "" -#: models.py:312 models.py:551 templates/ishtar/sheet_find.html:65 +#: models.py:313 models.py:560 templates/ishtar/sheet_find.html:65 msgid "Container" msgstr "" -#: models.py:347 +#: models.py:348 msgid "Can view all Find" msgstr "" -#: models.py:348 +#: models.py:349 msgid "Can view own Find" msgstr "" -#: models.py:349 +#: models.py:350 msgid "Can add own Find" msgstr "" -#: models.py:350 +#: models.py:351 msgid "Can change own Find" msgstr "" -#: models.py:351 +#: models.py:352 msgid "Can delete own Find" msgstr "" -#: models.py:356 +#: models.py:357 msgid "FIND" msgstr "" -#: models.py:528 +#: models.py:537 msgid "Find documentation" msgstr "" -#: models.py:529 +#: models.py:538 msgid "Find documentations" msgstr "" -#: models.py:539 +#: models.py:548 msgid "Virtual" msgstr "" -#: models.py:543 +#: models.py:552 msgid "Treatment types" msgstr "" -#: models.py:560 +#: models.py:569 msgid "Other location" msgstr "" -#: models.py:570 models.py:592 +#: models.py:579 models.py:601 msgid "Treatment" msgstr "" -#: models.py:571 +#: models.py:580 msgid "Treatments" msgstr "" -#: models.py:573 +#: models.py:582 msgid "Can view all Treatment" msgstr "" -#: models.py:574 +#: models.py:583 msgid "Can view own Treatment" msgstr "" -#: models.py:575 +#: models.py:584 msgid "Can add own Treatment" msgstr "" -#: models.py:576 +#: models.py:585 msgid "Can change own Treatment" msgstr "" -#: models.py:577 +#: models.py:586 msgid "Can delete own Treatment" msgstr "" -#: models.py:583 +#: models.py:592 msgid "by" msgstr "" -#: models.py:589 +#: models.py:598 msgid "Treatment documentation" msgstr "" -#: models.py:590 +#: models.py:599 msgid "Treament documentations" msgstr "" -#: models.py:603 +#: models.py:612 msgid "Administrative act" msgstr "" -#: models.py:610 +#: models.py:619 msgid "Property" msgstr "" -#: models.py:611 +#: models.py:620 msgid "Properties" msgstr "" @@ -551,11 +551,11 @@ msgstr "" msgid "Find: source deletion" msgstr "" -#: wizards.py:63 +#: wizards.py:61 msgid "Operation" msgstr "" -#: wizards.py:64 +#: wizards.py:62 msgid "Context record" msgstr "" diff --git a/archaeological_finds/migrations/0043_auto__add_field_findsource_duplicate__chg_field_findsource_internal_re.py b/archaeological_finds/migrations/0043_auto__add_field_findsource_duplicate__chg_field_findsource_internal_re.py new file mode 100644 index 000000000..3e288d58d --- /dev/null +++ b/archaeological_finds/migrations/0043_auto__add_field_findsource_duplicate__chg_field_findsource_internal_re.py @@ -0,0 +1,910 @@ +# -*- 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 field 'FindSource.duplicate' + db.add_column('archaeological_finds_findsource', 'duplicate', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + + # Changing field 'FindSource.internal_reference' + db.alter_column('archaeological_finds_findsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) + + # Changing field 'FindSource.reference' + db.alter_column('archaeological_finds_findsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) + # Adding field 'TreatmentSource.duplicate' + db.add_column('archaeological_finds_treatmentsource', 'duplicate', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + + # Changing field 'TreatmentSource.internal_reference' + db.alter_column('archaeological_finds_treatmentsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) + + # Changing field 'TreatmentSource.reference' + db.alter_column('archaeological_finds_treatmentsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) + + def backwards(self, orm): + # Deleting field 'FindSource.duplicate' + db.delete_column('archaeological_finds_findsource', 'duplicate') + + + # Changing field 'FindSource.internal_reference' + db.alter_column('archaeological_finds_findsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True)) + + # Changing field 'FindSource.reference' + db.alter_column('archaeological_finds_findsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True)) + # Deleting field 'TreatmentSource.duplicate' + db.delete_column('archaeological_finds_treatmentsource', 'duplicate') + + + # Changing field 'TreatmentSource.internal_reference' + db.alter_column('archaeological_finds_treatmentsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True)) + + # Changing field 'TreatmentSource.reference' + db.alter_column('archaeological_finds_treatmentsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=25, 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': {'object_name': 'ContextRecord'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", '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'}), + 'depth': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'has_furniture': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_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'}), + '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.CharField', [], {'max_length': '200', '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']"}), + '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.dating': { + 'Meta': {'object_name': 'Dating'}, + 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}), + '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.identificationtype': { + 'Meta': {'ordering': "('order',)", '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',)", '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'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.unit': { + 'Meta': {'ordering': "('order',)", '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'}), + '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'}), + '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.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), + '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'}), + 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.IntegerField', [], {'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': '2015'}) + }, + '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'}, + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + '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'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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', [], {}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + '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'}) + }, + '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': {'object_name': 'Find'}, + 'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + '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', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', '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'}), + 'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream_treatment'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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': '100', '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']"}), + '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'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream_treatment'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + '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.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.CharField', [], {'max_length': '12', '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'}), + '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'}), + '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'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_finds.historicalbasefind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'}, + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + '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'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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', [], {}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + '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'}) + }, + 'archaeological_finds.historicalfind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'}, + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + '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'}), + 'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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': '100', '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'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', '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'}, + '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'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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'}), + 'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'other_location': ('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'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'treatment_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.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.treatment': { + 'Meta': {'object_name': 'Treatment'}, + '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'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), + 'other_location': ('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']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'treatment_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']"}) + }, + 'archaeological_finds.treatmentsource': { + 'Meta': {'object_name': 'TreatmentSource'}, + '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.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'}), + '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'}), + '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'}), + '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.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'}), + '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'}), + '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': '1'}), + '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'}), + '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'}, + '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_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': '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'}), + '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'}), + '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'}), + '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'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'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'}), + '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'}), + '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'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}), + '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']"}), + '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'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'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.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_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_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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': '40'}), + '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'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', '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.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': {'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': {'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'}), + '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': {'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': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + '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']}, + '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'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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': '300'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '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'}), + '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']"}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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'}), + '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'}), + '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'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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': {'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.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['archaeological_finds']
\ No newline at end of file diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index 32b4334ff..f677b1297 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -246,6 +246,7 @@ CHECK_CHOICES = (('NC', _(u"Not checked")), class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): CHECK_DICT = dict(CHECK_CHOICES) + SHOW_URL = 'show-find' TABLE_COLS = ['label', 'material_types', 'datings.period', 'base_finds.context_record.parcel.town', 'base_finds.context_record.operation.year', @@ -533,6 +534,8 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): class FindSource(Source): + SHOW_URL = 'show-findsource' + class Meta: verbose_name = _(u"Find documentation") verbose_name_plural = _(u"Find documentations") diff --git a/archaeological_finds/templates/ishtar/sheet_findsource.html b/archaeological_finds/templates/ishtar/sheet_findsource.html new file mode 100644 index 000000000..04db0336c --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_findsource.html @@ -0,0 +1,11 @@ +{% extends "ishtar/sheet_source.html" %} +{% load i18n window_field link_to_window %} + +{% block head_sheet %} +{{block.super}} +<h1>{% trans "Find source"%}</h1> +{% endblock %} + +{% block related %} +{% field "Related find" item.owner '' item.owner|link_to_window %} +{% endblock %} diff --git a/archaeological_finds/templates/ishtar/sheet_findsource_pdf.html b/archaeological_finds/templates/ishtar/sheet_findsource_pdf.html new file mode 100644 index 000000000..b7f8ec473 --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_findsource_pdf.html @@ -0,0 +1,18 @@ +{% extends "ishtar/sheet_findsource.html" %} +{% block header %} +<link rel="stylesheet" href="{{STATIC_URL}}/media/style_basic.css" /> +{% endblock %} +{% block main_head %} +{{ block.super }} +<div id="pdfheader"> +Ishtar – {{APP_NAME}} – {{item}} +</div> +{% endblock %} +{%block head_sheet%}{%endblock%} +{%block main_foot%} +<div id="pdffooter"> +– <pdf:pagenumber/> – +</div> +</body> +</html> +{%endblock%} diff --git a/archaeological_finds/templates/ishtar/sheet_findsource_window.html b/archaeological_finds/templates/ishtar/sheet_findsource_window.html new file mode 100644 index 000000000..b2a2974bf --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_findsource_window.html @@ -0,0 +1,3 @@ +{% extends "ishtar/sheet_findsource.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 7a01f952b..e38520329 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -22,6 +22,8 @@ from django.conf.urls.defaults import * from ishtar_common.wizards import check_rights import views +from archaeological_finds import models + # be carreful: each check_rights must be relevant with ishtar_menu # forms @@ -76,8 +78,10 @@ urlpatterns += patterns( name='get-find-full', kwargs={'full': True}), url(r'get-findsource/(?P<type>.+)?$', 'get_findsource', name='get-findsource'), + url(r'show-findsource(?:/(?P<pk>.+))?/(?P<type>.+)?$', 'show_findsource', + name=models.FindSource.SHOW_URL), url(r'show-find(?:/(?P<pk>.+))?/(?P<type>.+)?$', 'show_find', - name='show-find'), + name=models.Find.SHOW_URL), url(r'show-historized-find/(?P<pk>.+)?/(?P<date>.+)?$', 'show_find', name='show-historized-find'), url(r'revert-find/(?P<pk>.+)/(?P<date>.+)$', diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 40c241cb1..36388d85b 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -64,8 +64,11 @@ get_find_for_ope = get_item( extra_request_keys=find_extra_keys, own_table_cols=models.Find.TABLE_COLS_FOR_OPE) +show_findsource = show_item(models.FindSource, 'findsource') + get_findsource = get_item( models.FindSource, 'get_findsource', 'findsource', + bool_fields=['duplicate'], extra_request_keys={ 'find__context_record__operation__year': 'find__context_record__operation__year', diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py index a8a9147b7..2a0ec652c 100644 --- a/archaeological_operations/admin.py +++ b/archaeological_operations/admin.py @@ -100,7 +100,7 @@ class RelationTypeAdmin(admin.ModelAdmin): admin.site.register(models.RelationType, RelationTypeAdmin) -general_models = [models.RemainType, models.ActType] +general_models = [models.RemainType, models.ActType, models.ReportState] for model in general_models: admin.site.register(model, GeneralTypeAdmin) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 3d679d555..90977416b 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -335,6 +335,74 @@ ParcelFormSet = formset_factory(ParcelForm, can_delete=True, formset=ParcelFormSet) ParcelFormSet.form_label = _(u"Parcels") + +class RecordRelationsForm(forms.Form): + base_model = 'right_relation' + current_model = models.RelationType + current_related_model = models.Operation + associated_models = {'right_record': models.Operation, + 'relation_type': models.RelationType} + relation_type = forms.ChoiceField(label=_(u"Relation type"), + choices=[], required=False) + right_record = forms.IntegerField( + label=_(u"Operation"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-operation'), + associated_model=models.Operation), + validators=[valid_id(models.Operation)], required=False) + + def __init__(self, *args, **kwargs): + super(RecordRelationsForm, self).__init__(*args, **kwargs) + self.fields['relation_type'].choices = \ + models.RelationType.get_types() + + @classmethod + def _format_lst(cls, current): + nc = [] + for rel, ope in sorted(current): + if not nc or nc[-1][0] != rel: + nc.append([rel, []]) + nc[-1][1].append(ope) + rendered = u";".join( + [u"{}{} {}".format(rel, _(u":"), u" ; ".join(opes)) + for rel, opes in nc]) + return rendered + + @classmethod + def get_formated_datas(cls, cleaned_datas): + result, current, deleted = [], [], [] + for data in cleaned_datas: + if not data: + continue + try: + relation_type = cls.current_model.objects.get( + pk=data.get('relation_type')) + except cls.current_model.DoesNotExist: + continue + try: + right_record = cls.current_related_model.objects.get( + pk=data.get('right_record')) + except cls.current_related_model.DoesNotExist: + continue + values = [unicode(relation_type), right_record.reference] + if data.get('DELETE'): + deleted.append(values) + else: + current.append(values) + if current: + nc = [] + for rel, ope in sorted(current): + if not nc or nc[-1][0] != rel: + nc.append([rel, []]) + nc[-1][1].append(ope) + result.append((_("Current relations"), cls._format_lst(current))) + if deleted: + result.append((_("Deleted relations"), u" ; ".join(deleted))) + return result + +RecordRelationsFormSet = formset_factory(RecordRelationsForm, can_delete=True) +RecordRelationsFormSet.form_label = _(u"Relations") + SRA_AGENT, created = PersonType.objects.get_or_create(txt_idx='sra_agent') HEAD_SCIENTIST, created = PersonType.objects.get_or_create( txt_idx='head_scientist') @@ -393,6 +461,8 @@ class OperationSelect(TableSelect): associated_model=Person), validators=[valid_id(Person)]) record_quality = forms.ChoiceField(label=_(u"Record quality")) + report_processing = forms.ChoiceField(label=_(u"Report processing"), + choices=[]) virtual_operation = forms.NullBooleanField(label=_(u"Virtual operation")) def __init__(self, *args, **kwargs): @@ -401,6 +471,10 @@ class OperationSelect(TableSelect): models.OperationType.get_types() self.fields['operation_type'].help_text = \ models.OperationType.get_help() + self.fields['report_processing'].choices = \ + models.ReportState.get_types() + self.fields['report_processing'].help_text = \ + models.ReportState.get_help() self.fields['remains'].choices = models.RemainType.get_types() self.fields['remains'].help_text = models.RemainType.get_help() self.fields['periods'].choices = models.Period.get_types() @@ -558,6 +632,7 @@ class OperationFormGeneral(forms.Form): 'cira_rapporteur': Person, 'operator': Organization, 'operation_type': models.OperationType, + 'report_processing': models.ReportState, 'archaeological_site': models.ArchaeologicalSite} pk = forms.IntegerField(required=False, widget=forms.HiddenInput) scientist = forms.IntegerField( @@ -595,6 +670,8 @@ class OperationFormGeneral(forms.Form): report_delivery_date = forms.DateField( label=_(u"Report delivery date"), required=False, widget=widgets.JQueryDate) + report_processing = forms.ChoiceField(label=_(u"Report processing"), + choices=[], required=False) surface = forms.IntegerField( required=False, widget=widgets.AreaWidget, label=_(u"Total surface (m2)"), @@ -650,6 +727,10 @@ class OperationFormGeneral(forms.Form): models.OperationType.get_types() self.fields['operation_type'].help_text = \ models.OperationType.get_help() + self.fields['report_processing'].choices = \ + models.ReportState.get_types() + self.fields['report_processing'].help_text = \ + models.ReportState.get_help() self.fields['record_quality'].choices = \ [('', '--')] + list(models.QUALITY) # data POSTED @@ -693,7 +774,8 @@ class OperationFormGeneral(forms.Form): class OperationFormModifGeneral(OperationFormGeneral): - operation_code = forms.IntegerField(label=_(u"Operation code")) + operation_code = forms.IntegerField(label=_(u"Operation code"), + required=False) if FILES_AVAILABLE: currents = {'associated_file': File} associated_file = forms.IntegerField( @@ -971,6 +1053,8 @@ class AdministrativeActOpeSelect(TableSelect): if settings.ISHTAR_DPTS: operation__towns__numero_insee__startswith = forms.ChoiceField( label=_(u"Department"), choices=[]) + act_object = forms.CharField(label=_(u"Object (full text search)"), + max_length=300) history_creator = forms.IntegerField( label=_(u"Created by"), widget=widgets.JQueryAutoComplete( diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index 548ffdf34..3c6dc4c47 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -6,12 +6,12 @@ msgid "" msgstr "" -#: forms.py:69 forms.py:336 forms.py:775 forms.py:797 forms.py:801 -#: models.py:774 templates/ishtar/blocks/window_tables/parcels.html:8 +#: forms.py:69 forms.py:336 forms.py:856 forms.py:878 forms.py:882 +#: models.py:788 templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Parcels" msgstr "" -#: forms.py:72 forms.py:188 forms.py:751 models.py:764 +#: forms.py:72 forms.py:188 forms.py:832 models.py:778 #: templates/ishtar/blocks/window_tables/parcels.html:5 #: templates/ishtar/dashboards/dashboard_operation.html:302 #: templates/ishtar/dashboards/dashboard_operation.html:315 @@ -20,18 +20,18 @@ msgstr "" msgid "Town" msgstr "" -#: forms.py:74 forms.py:346 forms.py:603 forms.py:982 models.py:148 -#: models.py:580 models.py:762 +#: forms.py:74 forms.py:414 forms.py:680 forms.py:1045 models.py:160 +#: models.py:594 models.py:776 #: templates/ishtar/blocks/window_tables/parcels.html:6 msgid "Year" msgstr "" -#: forms.py:77 models.py:765 +#: forms.py:77 models.py:779 #: templates/ishtar/blocks/window_tables/parcels.html:7 msgid "Section" msgstr "" -#: forms.py:80 models.py:766 +#: forms.py:80 models.py:780 msgid "Parcel number" msgstr "" @@ -59,341 +59,362 @@ msgstr "" msgid "There are identical parcels." msgstr "" -#: forms.py:347 +#: forms.py:345 +msgid "Relation type" +msgstr "" + +#: forms.py:348 ishtar_menu.py:33 models.py:239 models.py:494 models.py:519 +#: models.py:533 models.py:585 models.py:775 wizards.py:341 wizards.py:352 +#: templates/ishtar/sheet_operation.html:6 +msgid "Operation" +msgstr "" + +#: forms.py:367 +msgid ":" +msgstr "" + +#: forms.py:398 +msgid "Current relations" +msgstr "" + +#: forms.py:400 +msgid "Deleted relations" +msgstr "" + +#: forms.py:404 templates/ishtar/sheet_operation.html:100 +msgid "Relations" +msgstr "" + +#: forms.py:415 msgid "Numeric reference" msgstr "" -#: forms.py:348 +#: forms.py:416 msgid "Name (full text search)" msgstr "" -#: forms.py:353 forms.py:493 forms.py:588 forms.py:959 models.py:157 +#: forms.py:421 forms.py:567 forms.py:663 forms.py:1022 models.py:169 msgid "Operation type" msgstr "" -#: forms.py:361 models.py:565 +#: forms.py:429 models.py:579 msgid "Scientist in charge" msgstr "" -#: forms.py:370 forms.py:581 models.py:145 +#: forms.py:438 forms.py:656 models.py:157 msgid "In charge" msgstr "" -#: forms.py:372 forms.py:495 forms.py:574 models.py:143 +#: forms.py:440 forms.py:569 forms.py:649 models.py:155 msgid "Operator" msgstr "" -#: forms.py:377 forms.py:859 models.py:71 models.py:159 +#: forms.py:445 forms.py:922 models.py:83 models.py:171 msgid "Remains" msgstr "" -#: forms.py:378 forms.py:829 forms.py:849 forms.py:856 models.py:69 -#: models.py:164 +#: forms.py:446 forms.py:901 forms.py:919 models.py:81 models.py:176 msgid "Periods" msgstr "" -#: forms.py:379 +#: forms.py:447 msgid "Started before" msgstr "" -#: forms.py:381 +#: forms.py:449 msgid "Started after" msgstr "" -#: forms.py:383 +#: forms.py:451 msgid "Ended before" msgstr "" -#: forms.py:385 +#: forms.py:453 msgid "Ended after" msgstr "" -#: forms.py:387 +#: forms.py:455 msgid "Parcel (section/number)" msgstr "" -#: forms.py:388 +#: forms.py:456 msgid "Is open?" msgstr "" -#: forms.py:390 forms.py:993 +#: forms.py:458 forms.py:1058 msgid "Created by" msgstr "" -#: forms.py:395 forms.py:642 models.py:219 +#: forms.py:463 forms.py:719 models.py:234 msgid "Record quality" msgstr "" -#: forms.py:396 forms.py:645 models.py:214 +#: forms.py:464 forms.py:673 models.py:188 +msgid "Report processing" +msgstr "" + +#: forms.py:466 forms.py:722 models.py:229 msgid "Virtual operation" msgstr "" -#: forms.py:420 forms.py:952 views.py:201 +#: forms.py:494 forms.py:1015 views.py:203 msgid "Operation search" msgstr "" -#: forms.py:433 forms.py:954 +#: forms.py:507 forms.py:1017 msgid "You should select an operation." msgstr "" -#: forms.py:464 +#: forms.py:538 msgid "Associated file" msgstr "" -#: forms.py:468 forms.py:700 models.py:577 wizards.py:75 +#: forms.py:542 forms.py:781 models.py:591 wizards.py:78 msgid "Archaelogical file" msgstr "" -#: forms.py:473 +#: forms.py:547 msgid "months" msgstr "" -#: forms.py:473 +#: forms.py:547 msgid "years" msgstr "" -#: forms.py:475 models.py:129 +#: forms.py:549 models.py:141 msgid "Creation date" msgstr "" -#: forms.py:476 +#: forms.py:550 msgid "Start of field work" msgstr "" -#: forms.py:478 +#: forms.py:552 msgid "All" msgstr "" -#: forms.py:479 +#: forms.py:553 msgid "Preventive" msgstr "" -#: forms.py:480 +#: forms.py:554 msgid "Research" msgstr "" -#: forms.py:484 +#: forms.py:558 msgid "Slicing" msgstr "" -#: forms.py:487 +#: forms.py:561 msgid "Department detail" msgstr "" -#: forms.py:489 +#: forms.py:563 msgid "Date get from" msgstr "" -#: forms.py:491 +#: forms.py:565 msgid "Preventive/Research" msgstr "" -#: forms.py:497 +#: forms.py:571 msgid "Date after" msgstr "" -#: forms.py:499 +#: forms.py:573 msgid "Date before" msgstr "" -#: forms.py:501 +#: forms.py:575 msgid "With reports" msgstr "" -#: forms.py:502 +#: forms.py:576 msgid "With finds" msgstr "" -#: forms.py:554 forms.py:1033 templates/ishtar/sheet_administrativeact.html:11 +#: forms.py:628 forms.py:1098 templates/ishtar/sheet_administrativeact.html:11 #: templates/ishtar/sheet_operation.html:32 msgid "General" msgstr "" -#: forms.py:564 +#: forms.py:639 msgid "Head scientist" msgstr "" -#: forms.py:591 models.py:51 models.py:132 models.py:934 +#: forms.py:666 models.py:51 models.py:144 models.py:948 msgid "Start date" msgstr "" -#: forms.py:593 models.py:134 +#: forms.py:668 models.py:146 msgid "Excavation end date" msgstr "" -#: forms.py:596 models.py:135 +#: forms.py:671 models.py:147 msgid "Report delivery date" msgstr "" -#: forms.py:600 +#: forms.py:677 msgid "Total surface (m2)" msgstr "" -#: forms.py:608 forms.py:696 models.py:149 models.py:358 +#: forms.py:685 forms.py:777 models.py:161 models.py:373 msgid "Operation code" msgstr "" -#: forms.py:611 models.py:206 +#: forms.py:688 models.py:221 msgid "Generic name" msgstr "" -#: forms.py:613 models.py:205 +#: forms.py:690 models.py:220 msgid "Operator reference" msgstr "" -#: forms.py:617 +#: forms.py:694 msgid "Associated archaeological sites" msgstr "" -#: forms.py:640 models.py:207 +#: forms.py:717 models.py:222 msgid "Comment" msgstr "" -#: forms.py:666 +#: forms.py:747 msgid "" "If you want to set an excavation end date you have to provide a start date." msgstr "" -#: forms.py:671 +#: forms.py:752 msgid "The excavation end date cannot be before the start date." msgstr "" -#: forms.py:686 +#: forms.py:767 #, python-format msgid "" "Operation code already exist for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:690 +#: forms.py:771 msgid "Bad operation code" msgstr "" -#: forms.py:721 +#: forms.py:802 msgid "Preventive informations - excavation" msgstr "" -#: forms.py:722 models.py:162 +#: forms.py:803 models.py:174 #: templates/ishtar/dashboards/dashboard_operation.html:495 msgid "Cost (euros)" msgstr "" -#: forms.py:723 models.py:167 +#: forms.py:804 models.py:179 msgid "Scheduled man-days" msgstr "" -#: forms.py:725 models.py:170 +#: forms.py:806 models.py:182 msgid "Optional man-days" msgstr "" -#: forms.py:727 models.py:173 +#: forms.py:808 models.py:185 msgid "Effective man-days" msgstr "" -#: forms.py:737 +#: forms.py:818 msgid "Preventive informations - diagnostic" msgstr "" -#: forms.py:740 models.py:189 +#: forms.py:821 models.py:204 msgid "Prescription on zoning" msgstr "" -#: forms.py:742 models.py:192 +#: forms.py:823 models.py:207 msgid "Prescription on large area" msgstr "" -#: forms.py:745 models.py:194 +#: forms.py:826 models.py:209 msgid "Prescription on geoarchaeological context" msgstr "" -#: forms.py:749 forms.py:771 models.py:161 models.py:590 +#: forms.py:830 forms.py:852 models.py:173 models.py:604 msgid "Towns" msgstr "" -#: forms.py:778 models.py:773 models.py:932 +#: forms.py:859 models.py:787 models.py:946 msgid "Parcel" msgstr "" -#: forms.py:805 forms.py:825 models.py:45 +#: forms.py:886 models.py:45 msgid "Remain types" msgstr "" -#: forms.py:808 models.py:44 +#: forms.py:890 models.py:44 msgid "Remain type" msgstr "" -#: forms.py:821 -msgid "There are identical remain types" -msgstr "" - -#: forms.py:832 +#: forms.py:905 msgid "Period" msgstr "" -#: forms.py:845 -msgid "There are identical periods" -msgstr "" - -#: forms.py:853 models.py:66 +#: forms.py:916 models.py:78 msgid "Reference" msgstr "" -#: forms.py:854 models.py:67 +#: forms.py:917 models.py:79 msgid "Name" msgstr "" -#: forms.py:878 +#: forms.py:941 msgid "This reference already exists." msgstr "" -#: forms.py:895 +#: forms.py:958 msgid "Associated archaelogical sites" msgstr "" -#: forms.py:901 ishtar_menu.py:34 ishtar_menu.py:61 ishtar_menu.py:123 +#: forms.py:964 ishtar_menu.py:36 ishtar_menu.py:63 ishtar_menu.py:125 msgid "Search" msgstr "" -#: forms.py:906 +#: forms.py:969 msgid "Would you like to close this operation?" msgstr "" -#: forms.py:911 +#: forms.py:974 msgid "Would you like to delete this operation?" msgstr "" -#: forms.py:920 forms.py:983 models.py:507 models.py:556 +#: forms.py:983 forms.py:1046 models.py:521 models.py:570 msgid "Index" msgstr "" -#: forms.py:946 +#: forms.py:1009 #, python-format msgid "" "Index already exists for operation: %(operation)s - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:958 +#: forms.py:1021 msgid "Operation's town" msgstr "" -#: forms.py:961 +#: forms.py:1024 msgid "Operation's year" msgstr "" -#: forms.py:972 +#: forms.py:1035 msgid "Documentation search" msgstr "" -#: forms.py:974 +#: forms.py:1037 msgid "You should select a document." msgstr "" -#: forms.py:987 forms.py:1036 models.py:530 models.py:550 +#: forms.py:1050 forms.py:1101 models.py:544 models.py:564 msgid "Act type" msgstr "" -#: forms.py:991 models.py:481 +#: forms.py:1054 models.py:495 #: templates/ishtar/dashboards/dashboard_operation.html:273 #: templates/ishtar/dashboards/dashboard_operation.html:286 #: templates/ishtar/dashboards/dashboard_operation.html:453 @@ -401,112 +422,111 @@ msgstr "" msgid "Department" msgstr "" -#: forms.py:1013 views.py:331 +#: forms.py:1055 +msgid "Object (full text search)" +msgstr "" + +#: forms.py:1078 views.py:337 msgid "Administrative act search" msgstr "" -#: forms.py:1028 forms.py:1082 forms.py:1149 +#: forms.py:1093 forms.py:1147 forms.py:1214 msgid "You should select an administrative act." msgstr "" -#: forms.py:1041 models.py:581 +#: forms.py:1106 models.py:595 +#: templates/ishtar/blocks/window_tables/administrativacts.html:8 msgid "Object" msgstr "" -#: forms.py:1044 models.py:578 +#: forms.py:1109 models.py:592 msgid "Signature date" msgstr "" -#: forms.py:1059 +#: forms.py:1124 msgid "Would you like to delete this administrative act?" msgstr "" -#: forms.py:1064 +#: forms.py:1129 msgid "Template" msgstr "" -#: forms.py:1088 forms.py:1092 +#: forms.py:1153 forms.py:1157 msgid "This document is not intended for this type of act." msgstr "" -#: forms.py:1110 +#: forms.py:1175 msgid "Doc generation" msgstr "" -#: forms.py:1112 +#: forms.py:1177 msgid "Generate the associated doc?" msgstr "" -#: forms.py:1124 +#: forms.py:1189 msgid "Indexed?" msgstr "" -#: forms.py:1133 ishtar_menu.py:108 views.py:365 +#: forms.py:1198 ishtar_menu.py:110 views.py:371 msgctxt "admin act register" msgid "Register" msgstr "" -#: ishtar_menu.py:31 models.py:224 models.py:480 models.py:505 models.py:519 -#: models.py:571 models.py:761 wizards.py:336 wizards.py:347 -#: templates/ishtar/sheet_operation.html:6 -msgid "Operation" -msgstr "" - -#: ishtar_menu.py:39 +#: ishtar_menu.py:41 msgid "Creation" msgstr "" -#: ishtar_menu.py:44 ishtar_menu.py:71 ishtar_menu.py:135 +#: ishtar_menu.py:46 ishtar_menu.py:73 ishtar_menu.py:136 msgid "Modification" msgstr "" -#: ishtar_menu.py:49 +#: ishtar_menu.py:51 msgid "Closing" msgstr "" -#: ishtar_menu.py:53 ishtar_menu.py:76 ishtar_menu.py:141 +#: ishtar_menu.py:55 ishtar_menu.py:78 ishtar_menu.py:141 msgid "Deletion" msgstr "" -#: ishtar_menu.py:58 +#: ishtar_menu.py:60 msgid "Documentation" msgstr "" -#: ishtar_menu.py:66 ishtar_menu.py:129 widgets.py:52 +#: ishtar_menu.py:68 ishtar_menu.py:131 widgets.py:52 msgid "Add" msgstr "" -#: ishtar_menu.py:85 +#: ishtar_menu.py:87 msgid "Dashboard" msgstr "" -#: ishtar_menu.py:88 +#: ishtar_menu.py:90 msgid "General informations" msgstr "" -#: ishtar_menu.py:92 models.py:225 +#: ishtar_menu.py:94 models.py:240 #: templates/ishtar/dashboards/dashboard_operation.html:9 msgid "Operations" msgstr "" -#: ishtar_menu.py:104 +#: ishtar_menu.py:106 msgid "Administrative Act" msgstr "" -#: ishtar_menu.py:119 models.py:597 +#: ishtar_menu.py:121 models.py:611 #: templates/ishtar/sheet_administrativeact.html:6 msgid "Administrative act" msgstr "" -#: ishtar_menu.py:147 +#: ishtar_menu.py:146 msgid "Documents" msgstr "" -#: models.py:50 models.py:1396 +#: models.py:50 models.py:66 models.py:1410 msgid "Order" msgstr "" -#: models.py:52 models.py:935 +#: models.py:52 models.py:949 msgid "End date" msgstr "" @@ -522,345 +542,353 @@ msgstr "" msgid "Types Period" msgstr "" -#: models.py:75 +#: models.py:69 +msgid "Report state" +msgstr "" + +#: models.py:70 +msgid "Report states" +msgstr "" + +#: models.py:87 msgid "Archaeological site" msgstr "" -#: models.py:76 models.py:211 +#: models.py:88 models.py:226 msgid "Archaeological sites" msgstr "" -#: models.py:79 +#: models.py:91 msgid "Can view all Archaeological site" msgstr "" -#: models.py:81 +#: models.py:93 msgid "Can view own Archaeological site" msgstr "" -#: models.py:83 +#: models.py:95 msgid "Can add own Archaeological site" msgstr "" -#: models.py:85 +#: models.py:97 msgid "Can change own Archaeological site" msgstr "" -#: models.py:87 +#: models.py:99 msgid "Can delete own Archaeological site" msgstr "" -#: models.py:117 +#: models.py:129 msgid "Not documented" msgstr "" -#: models.py:118 +#: models.py:130 msgid "Arbitrary" msgstr "" -#: models.py:119 +#: models.py:131 msgid "Reliable" msgstr "" -#: models.py:131 +#: models.py:143 msgid "Closing date" msgstr "" -#: models.py:138 +#: models.py:150 msgid "In charge scientist" msgstr "" -#: models.py:154 models.py:757 +#: models.py:166 models.py:771 msgid "File" msgstr "" -#: models.py:158 +#: models.py:170 msgid "Surface (m2)" msgstr "" -#: models.py:208 +#: models.py:223 msgid "Cached name" msgstr "" -#: models.py:216 +#: models.py:231 msgid "" "If checked, it means that this operation have not been officialy registered." msgstr "" -#: models.py:227 +#: models.py:242 msgid "Can view all Operation" msgstr "" -#: models.py:228 +#: models.py:243 msgid "Can view own Operation" msgstr "" -#: models.py:229 +#: models.py:244 msgid "Can add own Operation" msgstr "" -#: models.py:230 +#: models.py:245 msgid "Can change own Operation" msgstr "" -#: models.py:231 +#: models.py:246 msgid "Can delete own Operation" msgstr "" -#: models.py:232 +#: models.py:247 msgid "Can close Operation" msgstr "" -#: models.py:255 +#: models.py:270 msgid "OPE" msgstr "" -#: models.py:315 +#: models.py:330 msgid "Intercommunal" msgstr "" -#: models.py:341 models.py:518 +#: models.py:356 models.py:532 msgid "Archaeological file" msgstr "" -#: models.py:342 +#: models.py:357 msgid "Code patriarche" msgstr "" -#: models.py:384 +#: models.py:399 msgid "This operation code already exists for this year" msgstr "" -#: models.py:453 +#: models.py:465 msgid "Inverse relation" msgstr "" -#: models.py:457 +#: models.py:469 msgid "Operation relation type" msgstr "" -#: models.py:458 +#: models.py:470 msgid "Operation relation types" msgstr "" -#: models.py:470 +#: models.py:483 msgid "Operation record relation" msgstr "" -#: models.py:471 +#: models.py:484 msgid "Operation record relations" msgstr "" -#: models.py:491 +#: models.py:505 msgid "Operation documentation" msgstr "" -#: models.py:492 +#: models.py:506 msgid "Operation documentations" msgstr "" -#: models.py:495 +#: models.py:509 msgid "Can view all Operation source" msgstr "" -#: models.py:497 +#: models.py:511 msgid "Can view own Operation source" msgstr "" -#: models.py:499 +#: models.py:513 msgid "Can add own Operation source" msgstr "" -#: models.py:501 +#: models.py:515 msgid "Can change own Operation source" msgstr "" -#: models.py:503 +#: models.py:517 msgid "Can delete own Operation source" msgstr "" -#: models.py:521 +#: models.py:535 msgid "Intended to" msgstr "" -#: models.py:523 +#: models.py:537 msgid "Code" msgstr "" -#: models.py:526 +#: models.py:540 msgid "Associated template" msgstr "" -#: models.py:527 +#: models.py:541 msgid "Indexed" msgstr "" -#: models.py:531 +#: models.py:545 msgid "Act types" msgstr "" -#: models.py:554 +#: models.py:568 msgid "Person in charge of the operation" msgstr "" -#: models.py:560 +#: models.py:574 msgid "Archaeological preventive operator" msgstr "" -#: models.py:568 +#: models.py:582 msgid "Signatory" msgstr "" -#: models.py:587 +#: models.py:601 msgid "Departments" msgstr "" -#: models.py:588 +#: models.py:602 msgid "Cached values get from associated departments" msgstr "" -#: models.py:591 +#: models.py:605 msgid "Cached values get from associated towns" msgstr "" -#: models.py:598 +#: models.py:612 msgid "Administrative acts" msgstr "" -#: models.py:601 +#: models.py:615 msgid "Can view all Administrative act" msgstr "" -#: models.py:603 +#: models.py:617 msgid "Can view own Administrative act" msgstr "" -#: models.py:605 +#: models.py:619 msgid "Can add own Administrative act" msgstr "" -#: models.py:607 +#: models.py:621 msgid "Can change own Administrative act" msgstr "" -#: models.py:609 +#: models.py:623 msgid "Can delete own Administrative act" msgstr "" -#: models.py:618 +#: models.py:632 #: templates/ishtar/blocks/window_tables/administrativacts.html:5 msgid "Ref." msgstr "" -#: models.py:701 +#: models.py:715 msgid "This index already exists for this year" msgstr "" -#: models.py:768 +#: models.py:782 msgid "External ID" msgstr "" -#: models.py:770 +#: models.py:784 msgid "Address - Locality" msgstr "" -#: models.py:930 +#: models.py:944 msgid "Owner" msgstr "" -#: models.py:938 +#: models.py:952 msgid "Parcel owner" msgstr "" -#: models.py:939 +#: models.py:953 msgid "Parcel owners" msgstr "" -#: models.py:965 +#: models.py:979 msgid "Recorded" msgstr "" -#: models.py:966 +#: models.py:980 msgid "Effective" msgstr "" -#: models.py:967 +#: models.py:981 msgid "Active" msgstr "" -#: models.py:968 +#: models.py:982 msgid "Field completed" msgstr "" -#: models.py:969 +#: models.py:983 msgid "Associated report" msgstr "" -#: models.py:970 +#: models.py:984 msgid "Closed" msgstr "" -#: models.py:971 +#: models.py:985 msgid "Documented and closed" msgstr "" -#: models.py:1397 +#: models.py:1411 msgid "Is preventive" msgstr "" -#: models.py:1400 +#: models.py:1414 msgid "Operation type old" msgstr "" -#: models.py:1401 +#: models.py:1415 msgid "Operation types old" msgstr "" -#: views.py:221 +#: views.py:224 msgid "New operation" msgstr "" -#: views.py:252 +#: views.py:258 msgid "Operation modification" msgstr "" -#: views.py:292 +#: views.py:298 msgid "Operation closing" msgstr "" -#: views.py:298 +#: views.py:304 msgid "Operation deletion" msgstr "" -#: views.py:303 +#: views.py:309 msgid "Operation: source search" msgstr "" -#: views.py:311 +#: views.py:317 msgid "Operation: source creation" msgstr "" -#: views.py:319 +#: views.py:325 msgid "Operation: source modification" msgstr "" -#: views.py:325 +#: views.py:331 msgid "Operation: source deletion" msgstr "" -#: views.py:340 +#: views.py:346 msgid "Operation: new administrative act" msgstr "" -#: views.py:350 +#: views.py:356 msgid "Operation: administrative act modification" msgstr "" -#: views.py:359 +#: views.py:365 msgid "Operation: administrative act deletion" msgstr "" -#: wizards.py:200 +#: wizards.py:203 msgid "" "Warning: No Archaelogical File is provided. If you have forget it return to " "the first step." @@ -896,7 +924,7 @@ msgid "Internal reference:" msgstr "" #: templates/ishtar/sheet_administrativeact.html:15 -#: templates/ishtar/sheet_operation.html:53 +#: templates/ishtar/sheet_operation.html:55 msgid "Type:" msgstr "" @@ -918,7 +946,7 @@ msgid "Archaeological preventive operator:" msgstr "" #: templates/ishtar/sheet_administrativeact.html:21 -#: templates/ishtar/sheet_operation.html:70 +#: templates/ishtar/sheet_operation.html:73 msgid "Associated file:" msgstr "" @@ -927,7 +955,7 @@ msgid "Associated operation:" msgstr "" #: templates/ishtar/sheet_administrativeact.html:24 -#: templates/ishtar/sheet_operation.html:54 +#: templates/ishtar/sheet_operation.html:56 msgid "Surface:" msgstr "" @@ -1008,87 +1036,91 @@ msgstr "" msgid "by" msgstr "" -#: templates/ishtar/sheet_operation.html:55 +#: templates/ishtar/sheet_operation.html:57 msgid "Cost:" msgstr "" -#: templates/ishtar/sheet_operation.html:56 +#: templates/ishtar/sheet_operation.html:58 msgid "Duration:" msgstr "" -#: templates/ishtar/sheet_operation.html:56 +#: templates/ishtar/sheet_operation.html:58 msgid "Day" msgstr "" -#: templates/ishtar/sheet_operation.html:58 +#: templates/ishtar/sheet_operation.html:61 msgid "Remains:" msgstr "" -#: templates/ishtar/sheet_operation.html:59 +#: templates/ishtar/sheet_operation.html:62 msgid "Periods:" msgstr "" -#: templates/ishtar/sheet_operation.html:73 +#: templates/ishtar/sheet_operation.html:76 msgid "Town planning service:" msgstr "" -#: templates/ishtar/sheet_operation.html:74 +#: templates/ishtar/sheet_operation.html:77 msgid "Permit type:" msgstr "" -#: templates/ishtar/sheet_operation.html:75 +#: templates/ishtar/sheet_operation.html:78 msgid "Permit reference:" msgstr "" -#: templates/ishtar/sheet_operation.html:76 +#: templates/ishtar/sheet_operation.html:79 msgid "General contractor organisation:" msgstr "" -#: templates/ishtar/sheet_operation.html:77 +#: templates/ishtar/sheet_operation.html:80 msgid "General contractor:" msgstr "" -#: templates/ishtar/sheet_operation.html:81 +#: templates/ishtar/sheet_operation.html:84 msgid "Comment:" msgstr "" -#: templates/ishtar/sheet_operation.html:83 +#: templates/ishtar/sheet_operation.html:86 msgid "Localisation" msgstr "" -#: templates/ishtar/sheet_operation.html:84 +#: templates/ishtar/sheet_operation.html:87 msgid "Towns:" msgstr "" -#: templates/ishtar/sheet_operation.html:86 +#: templates/ishtar/sheet_operation.html:89 msgid "Main address:" msgstr "" -#: templates/ishtar/sheet_operation.html:87 +#: templates/ishtar/sheet_operation.html:90 msgid "Complement:" msgstr "" -#: templates/ishtar/sheet_operation.html:88 +#: templates/ishtar/sheet_operation.html:91 msgid "Postal code:" msgstr "" -#: templates/ishtar/sheet_operation.html:96 +#: templates/ishtar/sheet_operation.html:105 +msgid "Details" +msgstr "" + +#: templates/ishtar/sheet_operation.html:110 msgid "Associated parcels" msgstr "" -#: templates/ishtar/sheet_operation.html:100 +#: templates/ishtar/sheet_operation.html:114 msgid "Administrativ acts" msgstr "" -#: templates/ishtar/sheet_operation.html:104 +#: templates/ishtar/sheet_operation.html:118 msgid "Document from this operation" msgstr "" -#: templates/ishtar/sheet_operation.html:109 +#: templates/ishtar/sheet_operation.html:123 msgid "Context records" msgstr "" -#: templates/ishtar/sheet_operation.html:121 +#: templates/ishtar/sheet_operation.html:135 msgid "Finds" msgstr "" @@ -1101,7 +1133,7 @@ msgstr "" msgid "Date" msgstr "" -#: templates/ishtar/blocks/window_tables/administrativacts.html:16 +#: templates/ishtar/blocks/window_tables/administrativacts.html:18 msgid "No administrative act associated" msgstr "" diff --git a/archaeological_operations/migrations/0046_auto__add_reportstate__add_field_historicaloperation_report_processing.py b/archaeological_operations/migrations/0046_auto__add_reportstate__add_field_historicaloperation_report_processing.py new file mode 100644 index 000000000..dc45a5485 --- /dev/null +++ b/archaeological_operations/migrations/0046_auto__add_reportstate__add_field_historicaloperation_report_processing.py @@ -0,0 +1,615 @@ +# -*- 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 'ReportState' + db.create_table('archaeological_operations_reportstate', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('label', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('txt_idx', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)), + ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('available', self.gf('django.db.models.fields.BooleanField')(default=True)), + ('order', self.gf('django.db.models.fields.IntegerField')()), + )) + db.send_create_signal('archaeological_operations', ['ReportState']) + + # Adding field 'HistoricalOperation.report_processing_id' + db.add_column('archaeological_operations_historicaloperation', 'report_processing_id', + self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True), + keep_default=False) + + # Adding field 'Operation.report_processing' + db.add_column('archaeological_operations_operation', 'report_processing', + self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_operations.ReportState'], null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting model 'ReportState' + db.delete_table('archaeological_operations_reportstate') + + # Deleting field 'HistoricalOperation.report_processing_id' + db.delete_column('archaeological_operations_historicaloperation', 'report_processing_id') + + # Deleting field 'Operation.report_processing' + db.delete_column('archaeological_operations_operation', 'report_processing_id') + + + models = { + 'archaeological_files.file': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + '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.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), + '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'}), + 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.IntegerField', [], {'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': '2015'}) + }, + '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.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': '1'}), + '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'}), + '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'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.historicaloperation': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'}, + '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_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'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'}), + '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'}), + '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'}), + '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'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'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'}), + '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'}), + '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'}), + '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'}, + '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_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': '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'}), + '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'}), + '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'}), + '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'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'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'}), + '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'}), + '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'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}), + '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'}), + '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'}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '25', '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'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '25', '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'}), + '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']"}), + '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'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.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',)", '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'}), + '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': {'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': {'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'}), + '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': {'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': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + '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']}, + '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'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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': '300'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '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'}), + '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']"}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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'}), + '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'}), + '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'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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': {'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.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['archaeological_operations']
\ No newline at end of file diff --git a/archaeological_operations/migrations/0047_auto__add_field_operationsource_duplicate__chg_field_operationsource_i.py b/archaeological_operations/migrations/0047_auto__add_field_operationsource_duplicate__chg_field_operationsource_i.py new file mode 100644 index 000000000..c31f53436 --- /dev/null +++ b/archaeological_operations/migrations/0047_auto__add_field_operationsource_duplicate__chg_field_operationsource_i.py @@ -0,0 +1,606 @@ +# -*- 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 field 'OperationSource.duplicate' + db.add_column('archaeological_operations_operationsource', 'duplicate', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + + # Changing field 'OperationSource.internal_reference' + db.alter_column('archaeological_operations_operationsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) + + # Changing field 'OperationSource.reference' + db.alter_column('archaeological_operations_operationsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) + + def backwards(self, orm): + # Deleting field 'OperationSource.duplicate' + db.delete_column('archaeological_operations_operationsource', 'duplicate') + + + # Changing field 'OperationSource.internal_reference' + db.alter_column('archaeological_operations_operationsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True)) + + # Changing field 'OperationSource.reference' + db.alter_column('archaeological_operations_operationsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True)) + + models = { + 'archaeological_files.file': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + '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.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), + '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'}), + 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', '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.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.IntegerField', [], {'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': '2015'}) + }, + '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.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': '1'}), + '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'}), + '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'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.historicaloperation': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'}, + '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_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'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'}), + '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'}), + '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'}), + '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'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'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'}), + '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'}), + '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'}), + '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'}, + '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_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': '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'}), + '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'}), + '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'}), + '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'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'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'}), + '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'}), + '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'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}), + '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'}), + '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'}), + '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'}), + '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']"}), + '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'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.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',)", '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'}), + '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': {'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': {'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'}), + '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': {'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': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + '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']}, + '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'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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': '300'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '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'}), + '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']"}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', '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.CharField', [], {'max_length': '300', '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'}), + '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'}), + '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'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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': {'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.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['archaeological_operations']
\ No newline at end of file diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index a1cd43b58..795c1a805 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -62,6 +62,18 @@ class Period(GeneralType): return self.label +class ReportState(GeneralType): + order = models.IntegerField(_(u"Order")) + + class Meta: + verbose_name = _(u"Report state") + verbose_name_plural = _(u"Report states") + ordering = ('order',) + + def __unicode__(self): + return self.label + + class ArchaeologicalSite(BaseHistorizedItem): reference = models.CharField(_(u"Reference"), max_length=20, unique=True) name = models.CharField(_(u"Name"), max_length=200, @@ -122,6 +134,7 @@ QUALITY = (('ND', _(u"Not documented")), class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, DashboardFormItem): QUALITY_DICT = dict(QUALITY) + SHOW_URL = 'show-operation' TABLE_COLS = ['year_index', 'operation_type', 'remains', 'towns', 'start_date', 'excavation_end_date'] if FILES_AVAILABLE: @@ -172,6 +185,9 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, # preventive effective_man_days = models.IntegerField(_(u"Effective man-days"), blank=True, null=True) + report_processing = models.ForeignKey( + ReportState, verbose_name=_(u"Report processing"), + blank=True, null=True) if settings.COUNTRY == 'fr': code_patriarche = models.IntegerField(u"Code PATRIARCHE", null=True, blank=True, unique=True) @@ -257,7 +273,7 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, @property def short_label(self): if settings.COUNTRY == 'fr': - return self.code_patriarche + return self.reference return unicode(self) @property @@ -457,6 +473,7 @@ class RelationType(GeneralRelationType): class RecordRelations(GeneralRecordRelations, models.Model): + MAIN_ATTR = 'left_record' left_record = models.ForeignKey(Operation, related_name='right_relations') right_record = models.ForeignKey(Operation, @@ -466,6 +483,7 @@ class RecordRelations(GeneralRecordRelations, models.Model): class Meta: verbose_name = _(u"Operation record relation") verbose_name_plural = _(u"Operation record relations") + ordering = ('left_record', 'relation_type') post_delete.connect(post_delete_record_relation, sender=RecordRelations) @@ -505,6 +523,7 @@ class OperationSource(Source): null=True) TABLE_COLS = ['operation.year', 'operation.operation_code'] + \ Source.TABLE_COLS + SHOW_URL = 'show-operationsource' @property def owner(self): diff --git a/archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html b/archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html index 0be468b59..426669cca 100644 --- a/archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html +++ b/archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html @@ -5,12 +5,14 @@ <th>{% trans "Ref." %}</th> <th>{% trans "Type" %}</th> <th>{% trans "Date" %}</th> + <th>{% trans "Object" %}</th> </tr> {% for act in data %} <tr> <td>{{act.full_ref}}</td> <td class='string'>{{act.act_type}}</td> <td>{{act.signature_date}}</td> + <td>{{act.act_object}}</td> </tr> {% empty %} <tr><td colspan="4" class='no_items'>{% trans "No administrative act associated" %}</td></tr> diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html index 545b1c143..e3a53e5fa 100644 --- a/archaeological_operations/templates/ishtar/sheet_operation.html +++ b/archaeological_operations/templates/ishtar/sheet_operation.html @@ -48,13 +48,16 @@ {% if item.operator %}<p><label>{%trans "Operator:"%}</label> <span class='value'>{{ item.operator }}</span></p>{% endif %} <p><label>{%trans "State:"%}</label> <span class='value'>{% if item.is_active %}{%trans "Active file"%}</span></p> {% else %}{%trans "Closed operation"%}</span></p> -<p><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.closing.date }} <strong>{%trans "by" %}</strong> {{ item.closing.user }}</span></p> +{% if item.closing.date %}<p><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.closing.date }} <strong>{%trans "by" %}</strong> {{ item.closing.user }}</span></p>{% endif %} {% endif %} +{% field "Report delivery date" item.report_delivery_date %} +{% field "Report processing" item.report_processing %} <p><label>{%trans "Type:"%}</label> <span class='value'>{{ item.operation_type }}</span></p> {% if item.surface %}<p><label>{%trans "Surface:"%}</label> <span class='value'>{{ item.surface }} m<sup>2</sup> ({{ item.surface_ha }} ha)</span></p>{% endif %} {% if item.cost %}<p><label>{%trans "Cost:"%}</label> <span class='value'>{{ item.cost }} €{% if item.cost_by_m2 %}, ({{ item.cost_by_m2 }} €/m<sup>2</sup>){%endif%}</span></p>{%endif%} {% if item.duration %}<p><label>{%trans "Duration:"%}</label> <span class='value'>{{ item.duration }} {%trans "Day"%}s</span></p>{%endif%} + <p><label>{%trans "Remains:"%}</label> <span class='value'>{{ item.remains.all|join:", " }}</span></p> <p><label>{%trans "Periods:"%}</label> <span class='value'>{{ item.periods.all|join:", " }}</span></p> @@ -78,7 +81,7 @@ {% endif %} {% endif %} -{% if item.comment %}<p><label>{%trans "Comment:"%}</label> <span class='value'>{{ item.comment }}</span></p>{%endif%} +{% field "Comment" item.comment "<pre>" "</pre>" %} <h3>{% trans "Localisation"%}</h3> <p><label>{%trans "Towns:"%}</label> <span class='value'>{{ item.towns.all|join:", " }}</span></p> @@ -93,6 +96,17 @@ <p><label>{%trans "Altitude (m NGF):"%}</label> <span class='value'>{{ item.altitude }}</span></p> {% endcomment %} +{% if item.right_relations.count %} +<h3>{% trans "Relations"%}</h3> +{% for rel in item.right_relations.all %} +{% ifchanged rel.relation_type %} +{% if forloop.counter0 %}</ul>{% endif %} +<h4>{{rel.relation_type}}</h4><ul>{% endifchanged %} +<li><a href="#" onclick="load_window('/show-operation/{{rel.right_record.pk}}/');" class="display_details">{% trans "Details" %}</a> {{rel.right_record}}</li> +{% if forloop.last %}</ul>{% endif %} +{% endfor %} +{% endif %} + {% trans "Associated parcels" as parcels_label %} {% include "ishtar/blocks/window_tables/parcels.html" %} diff --git a/archaeological_operations/templates/ishtar/sheet_operationsource.html b/archaeological_operations/templates/ishtar/sheet_operationsource.html new file mode 100644 index 000000000..5bb8518a5 --- /dev/null +++ b/archaeological_operations/templates/ishtar/sheet_operationsource.html @@ -0,0 +1,11 @@ +{% extends "ishtar/sheet_source.html" %} +{% load i18n window_field link_to_window %} + +{% block head_sheet %} +{{block.super}} +<h1>{% trans "Operation source"%}</h1> +{% endblock %} + +{% block related %} +{% field "Related operation" item.owner '' item.owner|link_to_window %} +{% endblock %} diff --git a/archaeological_operations/templates/ishtar/sheet_operationsource_pdf.html b/archaeological_operations/templates/ishtar/sheet_operationsource_pdf.html new file mode 100644 index 000000000..32362d4c2 --- /dev/null +++ b/archaeological_operations/templates/ishtar/sheet_operationsource_pdf.html @@ -0,0 +1,18 @@ +{% extends "ishtar/sheet_operationsource.html" %} +{% block header %} +<link rel="stylesheet" href="{{STATIC_URL}}/media/style_basic.css" /> +{% endblock %} +{% block main_head %} +{{ block.super }} +<div id="pdfheader"> +Ishtar – {{APP_NAME}} – {{item}} +</div> +{% endblock %} +{%block head_sheet%}{%endblock%} +{%block main_foot%} +<div id="pdffooter"> +– <pdf:pagenumber/> – +</div> +</body> +</html> +{%endblock%} diff --git a/archaeological_operations/templates/ishtar/sheet_operationsource_window.html b/archaeological_operations/templates/ishtar/sheet_operationsource_window.html new file mode 100644 index 000000000..8cd2c7fa1 --- /dev/null +++ b/archaeological_operations/templates/ishtar/sheet_operationsource_window.html @@ -0,0 +1,3 @@ +{% extends "ishtar/sheet_operationsource.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index 68ac0bad0..76723deab 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -21,6 +21,7 @@ from django.conf.urls.defaults import * from ishtar_common.wizards import check_rights import views +import models # be carreful: each check_rights must be relevant with ishtar_menu @@ -104,7 +105,7 @@ urlpatterns += patterns( url(r'revert-operation/(?P<pk>.+)/(?P<date>.+)$', 'revert_operation', name='revert-operation'), url(r'show-operation(?:/(?P<pk>.+))?/(?P<type>.+)?$', - 'show_operation', name='show-operation'), + 'show_operation', name=models.Operation.SHOW_URL), url(r'show-historized-operation/(?P<pk>.+)?/(?P<date>.+)?$', 'show_operation', name='show-historized-operation'), url(r'get-administrativeactop/(?P<type>.+)?$', @@ -125,6 +126,8 @@ urlpatterns += patterns( url(r'generatedoc-administrativeactop/(?P<pk>.+)?/(?P<template_pk>.+)?$', 'generatedoc_administrativeactop', name='generatedoc-administrativeactop'), + url(r'show-operationsource(?:/(?P<pk>.+))?/(?P<type>.+)?$', + 'show_operationsource', name=models.OperationSource.SHOW_URL), url(r'get-operationsource/(?P<type>.+)?$', 'get_operationsource', name='get-operationsource'), url(r'dashboard_operation/$', 'dashboard_operation', diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index d3d50d791..256985f50 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -151,9 +151,11 @@ get_operation = get_item( show_operation = show_item(models.Operation, 'operation') revert_operation = revert_item(models.Operation) +show_operationsource = show_item(models.OperationSource, 'operationsource') get_operationsource = get_item( models.OperationSource, 'get_operationsource', 'operationsource', + bool_fields=['duplicate'], extra_request_keys={ 'operation__towns': 'operation__towns__pk', 'operation__operation_type': 'operation__operation_type__pk', @@ -166,6 +168,7 @@ get_administrativeactop = get_item( 'operation__towns': 'operation__towns__pk', 'act_type__intented_to': 'act_type__intented_to', 'year': 'signature_date__year', + 'act_object': 'act_object__icontains', 'history_creator': 'history_creator__ishtaruser__person__pk', 'operation__towns__numero_insee__startswith': @@ -180,6 +183,7 @@ get_administrativeact = get_item( 'indexed': 'index__isnull', 'history_creator': 'history_creator__ishtaruser__person__pk', + 'act_object': 'act_object__icontains', 'operation__towns__numero_insee__startswith': 'operation__towns__numero_insee__startswith', 'operation__towns': 'operation__towns__pk'}, @@ -211,6 +215,7 @@ wizard_steps = [ ('parcels-operation_creation', SelectedParcelFormSet), ('remains-operation_creation', RemainForm), ('periods-operation_creation', PeriodForm), + ('relations-operation_creation', RecordRelationsFormSet), ('final-operation_creation', FinalForm)] if FILES_AVAILABLE: wizard_steps.insert(0, ('filechoice-operation_creation', @@ -250,6 +255,7 @@ operation_modification_wizard = OperationModificationWizard.as_view([ ('parcelsgeneral-operation_modification', SelectedParcelGeneralFormSet), ('remains-operation_modification', RemainForm), ('periods-operation_modification', PeriodForm), + ('relations-operation_modification', RecordRelationsFormSet), ('final-operation_modification', FinalForm)], label=_(u"Operation modification"), condition_dict={ diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index 78a5c3350..2e7b3c4b4 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -40,6 +40,7 @@ class OperationWizard(Wizard): model = models.Operation object_parcel_type = 'operation' parcel_step_key = 'parcels' + relations_step_key = 'relations' # step contening the current(s) town(s) town_step_keys = ['towns-', 'townsgeneral-'] town_input_id = 'town' # input id of the current(s) town(s) @@ -52,6 +53,8 @@ class OperationWizard(Wizard): current_step = self.steps.current if current_step.startswith(self.parcel_step_key): templates = ['ishtar/wizard/parcels_wizard.html'] + templates + elif current_step.startswith(self.relations_step_key): + templates = ['ishtar/wizard/relations_wizard.html'] + templates return templates def get_current_file(self): diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index b236bd19e..3eae70393 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -74,7 +74,7 @@ msgstr "" msgid "Add a new container" msgstr "" -#: forms.py:132 ishtar_menu.py:31 views.py:94 +#: forms.py:132 ishtar_menu.py:32 views.py:94 msgid "Packaging" msgstr "" @@ -90,7 +90,7 @@ msgstr "" msgid "Packaged finds" msgstr "" -#: ishtar_menu.py:29 +#: ishtar_menu.py:30 msgid "Find" msgstr "" diff --git a/example_project/settings.py b/example_project/settings.py index 6a0bf4079..e124198aa 100644 --- a/example_project/settings.py +++ b/example_project/settings.py @@ -10,6 +10,9 @@ DEBUG_TOOLBAR = False TEMPLATE_DEBUG = DEBUG SQL_DEBUG = False +if "test" in sys.argv: + sys.path.insert(0, '..') + IMAGE_MAX_SIZE = (1024, 768) THUMB_MAX_SIZE = (300, 300) @@ -17,13 +20,17 @@ CACHE_SMALLTIMEOUT = 120 CACHE_TIMEOUT = 3600 CACHE_BACKEND = 'memcached://127.0.0.1:11211/' -ROOT_PATH = os.path.abspath(os.path.curdir) + os.path.sep +SEP = os.path.sep +ROOT_PATH = SEP.join( + os.path.abspath(__file__).split(SEP)[:-1]) + SEP STATIC_URL = '/static/' STATIC_ROOT = ROOT_PATH + 'static/' BASE_URL = "/" - URL_PATH = "" +# prefix for archaeological files code +FILE_PREFIX = "SRA" + ODT_TEMPLATE = ROOT_PATH + "../ishtar_common/static/template.odt" LOGIN_REDIRECT_URL = "/" + URL_PATH diff --git a/ishtar_common/__init__.py b/ishtar_common/__init__.py index 7b8a90c36..84ec7c204 100644 --- a/ishtar_common/__init__.py +++ b/ishtar_common/__init__.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2014 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2014-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> from django.utils.translation import ugettext as _ @@ -10,8 +10,10 @@ _(u"email address") VERSION = (0, 9) +_(u"Related item") + + def get_version(): return u'.'.join((unicode(num) for num in VERSION)) __version__ = get_version() - diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 34f8ebec8..09ef64c26 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -1180,6 +1180,15 @@ class Importer(object): # contruct many dict for each values default_dict = {} + + # # get default values + p = [attribute] + if c_path: + p = list(c_path) + p + p = tuple(p) + if p in self._defaults: + for k in self._defaults[p]: + default_dict[k] = self._defaults[p][k] # # init with simple values that will be duplicated for key in val.keys(): if type(val[key]) not in (list, tuple): diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 93f6b9ec6..f194caffa 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -574,12 +574,24 @@ class SourceForm(forms.Form): title = forms.CharField(label=_(u"Title"), validators=[validators.MaxLengthValidator(200)]) source_type = forms.ChoiceField(label=_(u"Source type"), choices=[]) + reference = forms.CharField( + label=_(u"Reference"), + validators=[validators.MaxLengthValidator(100)], required=False) + internal_reference = forms.CharField( + label=_(u"Internal reference"), + validators=[validators.MaxLengthValidator(100)], required=False) associated_url = forms.URLField( required=False, label=_(u"Numerical ressource (web address)")) receipt_date = forms.DateField(label=_(u"Receipt date"), required=False, widget=widgets.JQueryDate) creation_date = forms.DateField(label=_(u"Creation date"), required=False, widget=widgets.JQueryDate) + comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea, + required=False) + description = forms.CharField(label=_(u"Description"), + widget=forms.Textarea, required=False) + duplicate = forms.BooleanField(label=_(u"Has a duplicate"), + required=False) def __init__(self, *args, **kwargs): super(SourceForm, self).__init__(*args, **kwargs) @@ -595,6 +607,9 @@ class SourceSelect(TableSelect): required=False) source_type = forms.ChoiceField(label=_("Source type"), choices=[]) + reference = forms.CharField(label=_(u"Reference")) + internal_reference = forms.CharField(label=_(u"Internal reference")) + duplicate = forms.NullBooleanField(label=_(u"Has a duplicate")) def __init__(self, *args, **kwargs): super(SourceSelect, self).__init__(*args, **kwargs) diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index f4deb1cbf..338719184 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -18,7 +18,7 @@ msgstr "" msgid "Archaeological file" msgstr "" -#: context_processors.py:34 models.py:1110 +#: context_processors.py:34 models.py:1133 msgid "Operation" msgstr "" @@ -141,7 +141,7 @@ msgstr "" msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "" -#: forms.py:71 forms_common.py:419 +#: forms.py:71 forms_common.py:420 msgid "Confirm" msgstr "" @@ -165,15 +165,14 @@ msgstr "" msgid "Add a new item" msgstr "" -#: forms.py:171 models.py:970 +#: forms.py:171 models.py:993 msgid "Template" msgstr "" #: forms_common.py:39 forms_common.py:57 forms_common.py:169 -#: forms_common.py:268 forms_common.py:273 models.py:1036 models.py:2168 +#: forms_common.py:269 forms_common.py:274 models.py:1059 models.py:2202 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:17 -#: templates/ishtar/sheet_person.html:30 msgid "Town" msgstr "" @@ -187,70 +186,64 @@ msgid "" "french town Saint-Denis in the Seine-Saint-Denis department.</p>" msgstr "" -#: forms_common.py:66 forms_common.py:621 ishtar_menu.py:40 models.py:1895 -#: models.py:2007 models.py:2061 templates/ishtar/sheet_person.html:6 +#: forms_common.py:66 forms_common.py:622 ishtar_menu.py:42 models.py:1918 +#: models.py:2041 models.py:2095 templates/ishtar/sheet_person.html:6 msgid "Person" msgstr "" -#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:58 models.py:1824 +#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1847 #: templates/ishtar/sheet_organization.html:6 msgid "Organization" msgstr "" #: forms_common.py:160 forms_common.py:196 forms_common.py:226 -#: forms_common.py:259 models.py:969 models.py:1158 models.py:1375 -#: models.py:1818 models.py:1885 models.py:2154 +#: forms_common.py:259 models.py:992 models.py:1181 models.py:1398 +#: models.py:1841 models.py:1908 models.py:2188 #: templates/ishtar/sheet_organization.html:12 #: templates/ishtar/sheet_organization.html:25 -#: templates/ishtar/sheet_person.html:26 msgid "Name" msgstr "" -#: forms_common.py:161 models.py:1105 models.py:1506 +#: forms_common.py:161 models.py:1128 models.py:1529 msgid "Organization type" msgstr "" -#: forms_common.py:163 forms_common.py:262 models.py:1031 +#: forms_common.py:163 forms_common.py:263 models.py:1054 #: templates/ishtar/sheet_organization.html:14 -#: templates/ishtar/sheet_person.html:27 msgid "Address" msgstr "" -#: forms_common.py:165 forms_common.py:264 models.py:1032 +#: forms_common.py:165 forms_common.py:265 models.py:1055 #: templates/ishtar/sheet_organization.html:15 -#: templates/ishtar/sheet_person.html:28 msgid "Address complement" msgstr "" -#: forms_common.py:167 forms_common.py:266 models.py:1034 +#: forms_common.py:167 forms_common.py:267 models.py:1057 #: templates/ishtar/sheet_organization.html:16 -#: templates/ishtar/sheet_person.html:29 msgid "Postal code" msgstr "" -#: forms_common.py:170 forms_common.py:269 models.py:1037 +#: forms_common.py:170 forms_common.py:270 models.py:1060 msgid "Country" msgstr "" -#: forms_common.py:172 forms_common.py:228 forms_common.py:271 -#: forms_common.py:375 models.py:1043 +#: forms_common.py:172 forms_common.py:228 forms_common.py:272 +#: forms_common.py:376 models.py:1066 msgid "Email" msgstr "" -#: forms_common.py:173 forms_common.py:272 models.py:1039 +#: forms_common.py:173 forms_common.py:273 models.py:1062 #: templates/ishtar/sheet_organization.html:18 -#: templates/ishtar/sheet_person.html:31 msgid "Phone" msgstr "" -#: forms_common.py:174 models.py:1040 +#: forms_common.py:174 models.py:1063 #: templates/ishtar/sheet_organization.html:19 -#: templates/ishtar/sheet_person.html:32 msgid "Mobile phone" msgstr "" -#: forms_common.py:197 forms_common.py:229 models.py:1529 models.py:1820 -#: models.py:2102 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105 +#: forms_common.py:197 forms_common.py:229 models.py:1552 models.py:1843 +#: models.py:2136 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105 #: templates/sheet_ope.html:126 templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:27 #: templates/ishtar/sheet_person.html:56 @@ -262,7 +255,7 @@ msgstr "" msgid "Organization search" msgstr "" -#: forms_common.py:227 forms_common.py:257 models.py:1883 +#: forms_common.py:227 forms_common.py:257 models.py:1906 #: templates/ishtar/sheet_organization.html:26 msgid "Surname" msgstr "" @@ -275,160 +268,160 @@ msgstr "" msgid "Identity" msgstr "" -#: forms_common.py:256 forms_common.py:573 models.py:1881 models.py:2099 +#: forms_common.py:256 forms_common.py:574 models.py:1904 models.py:2133 #: templates/sheet_ope.html:104 templates/ishtar/sheet_person.html:55 #: templates/ishtar/blocks/window_tables/documents.html:5 msgid "Title" msgstr "" -#: forms_common.py:261 models.py:1887 +#: forms_common.py:261 models.py:1910 msgid "Raw name" msgstr "" -#: forms_common.py:276 +#: forms_common.py:277 msgid "Current organization" msgstr "" -#: forms_common.py:324 forms_common.py:354 forms_common.py:358 models.py:1865 +#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:1888 msgid "Person type" msgstr "" -#: forms_common.py:369 forms_common.py:374 +#: forms_common.py:370 forms_common.py:375 msgid "Account" msgstr "" -#: forms_common.py:378 wizards.py:1029 +#: forms_common.py:379 wizards.py:1141 msgid "New password" msgstr "" -#: forms_common.py:381 +#: forms_common.py:382 msgid "New password (confirmation)" msgstr "" -#: forms_common.py:400 +#: forms_common.py:401 msgid "Your password and confirmation password do not match." msgstr "" -#: forms_common.py:405 +#: forms_common.py:406 msgid "You must provide a correct password." msgstr "" -#: forms_common.py:413 +#: forms_common.py:414 msgid "This username already exists." msgstr "" -#: forms_common.py:420 +#: forms_common.py:421 msgid "Send the new password by email?" msgstr "" -#: forms_common.py:429 forms_common.py:442 models.py:2169 +#: forms_common.py:430 forms_common.py:443 models.py:2203 msgid "Towns" msgstr "" -#: forms_common.py:439 +#: forms_common.py:440 msgid "There are identical towns." msgstr "" -#: forms_common.py:523 +#: forms_common.py:524 msgid "Only one choice can be checked." msgstr "" -#: forms_common.py:571 +#: forms_common.py:572 msgid "Documentation informations" msgstr "" -#: forms_common.py:575 forms_common.py:596 models.py:1507 models.py:2082 +#: forms_common.py:576 forms_common.py:597 models.py:1530 models.py:2116 msgid "Source type" msgstr "" -#: forms_common.py:577 models.py:2113 +#: forms_common.py:578 models.py:2147 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:578 models.py:2115 +#: forms_common.py:579 models.py:2149 msgid "Receipt date" msgstr "" -#: forms_common.py:580 models.py:1656 models.py:2117 +#: forms_common.py:581 models.py:1679 models.py:2151 msgid "Creation date" msgstr "" -#: forms_common.py:593 forms_common.py:614 forms_common.py:647 models.py:2066 +#: forms_common.py:594 forms_common.py:615 forms_common.py:648 models.py:2100 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" -#: forms_common.py:606 +#: forms_common.py:607 msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:622 models.py:1508 models.py:2056 models.py:2063 +#: forms_common.py:623 models.py:1531 models.py:2090 models.py:2097 msgid "Author type" msgstr "" -#: forms_common.py:640 +#: forms_common.py:641 msgid "Author selection" msgstr "" -#: forms_common.py:654 +#: forms_common.py:655 msgid "There are identical authors." msgstr "" -#: forms_common.py:658 models.py:2067 models.py:2109 +#: forms_common.py:659 models.py:2101 models.py:2143 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Authors" msgstr "" -#: ishtar_menu.py:28 +#: ishtar_menu.py:29 msgid "Administration" msgstr "" -#: ishtar_menu.py:30 views.py:135 +#: ishtar_menu.py:31 views.py:135 msgid "Account management" msgstr "" -#: ishtar_menu.py:33 models.py:753 views.py:1075 +#: ishtar_menu.py:34 models.py:776 views.py:1077 msgid "Global variables" msgstr "" -#: ishtar_menu.py:38 +#: ishtar_menu.py:39 msgid "Directory" msgstr "" -#: ishtar_menu.py:42 ishtar_menu.py:60 templates/blocks/JQueryJqGrid.html:4 +#: ishtar_menu.py:45 ishtar_menu.py:69 templates/blocks/JQueryJqGrid.html:4 msgid "Search" msgstr "" -#: ishtar_menu.py:45 ishtar_menu.py:64 templates/ishtar/import_list.html:15 +#: ishtar_menu.py:49 ishtar_menu.py:74 templates/ishtar/import_list.html:15 msgid "Creation" msgstr "" -#: ishtar_menu.py:48 ishtar_menu.py:68 +#: ishtar_menu.py:53 ishtar_menu.py:79 msgid "Modification" msgstr "" -#: ishtar_menu.py:51 ishtar_menu.py:72 templates/ishtar/merge.html:5 +#: ishtar_menu.py:57 ishtar_menu.py:84 templates/ishtar/merge.html:5 msgid "Merge" msgstr "" -#: ishtar_menu.py:54 ishtar_menu.py:75 models.py:1693 widgets.py:110 +#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1716 widgets.py:110 msgid "Delete" msgstr "" -#: ishtar_menu.py:82 models.py:1667 +#: ishtar_menu.py:96 models.py:1690 msgid "Imports" msgstr "" -#: ishtar_menu.py:84 views.py:1083 +#: ishtar_menu.py:99 views.py:1085 msgid "New import" msgstr "" -#: ishtar_menu.py:87 views.py:1097 +#: ishtar_menu.py:103 views.py:1099 msgid "Current imports" msgstr "" -#: ishtar_menu.py:90 +#: ishtar_menu.py:107 msgid "Old imports" msgstr "" @@ -444,7 +437,7 @@ msgstr "" msgid "This item already exist." msgstr "" -#: models.py:256 models.py:1004 models.py:1016 +#: models.py:256 models.py:1027 models.py:1039 msgid "Label" msgstr "" @@ -452,613 +445,613 @@ msgstr "" msgid "Textual ID" msgstr "" -#: models.py:260 models.py:1402 models.py:2124 +#: models.py:260 models.py:1425 models.py:2158 msgid "Comment" msgstr "" -#: models.py:261 models.py:973 +#: models.py:261 models.py:996 msgid "Available" msgstr "" -#: models.py:451 models.py:1448 +#: models.py:474 models.py:1471 msgid "Key" msgstr "" -#: models.py:457 +#: models.py:480 msgid "Key specific to an import" msgstr "" -#: models.py:528 +#: models.py:551 msgid "Last editor" msgstr "" -#: models.py:531 +#: models.py:554 msgid "Creator" msgstr "" -#: models.py:664 models.py:2180 +#: models.py:687 models.py:2214 msgid "Order" msgstr "" -#: models.py:665 +#: models.py:688 msgid "Symmetrical" msgstr "" -#: models.py:678 +#: models.py:701 msgid "Cannot have symmetrical and an inverse_relation" msgstr "" -#: models.py:746 +#: models.py:769 msgid "Variable name" msgstr "" -#: models.py:747 +#: models.py:770 msgid "Description of the variable" msgstr "" -#: models.py:749 models.py:1449 +#: models.py:772 models.py:1472 msgid "Value" msgstr "" -#: models.py:752 +#: models.py:775 msgid "Global variable" msgstr "" -#: models.py:874 models.py:904 +#: models.py:897 models.py:927 msgid "Total" msgstr "" -#: models.py:881 models.py:1005 models.py:1017 +#: models.py:904 models.py:1028 models.py:1040 #: templates/ishtar/dashboards/dashboard_main_detail.html:135 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 msgid "Number" msgstr "" -#: models.py:968 +#: models.py:991 msgid "Administrative Act" msgstr "" -#: models.py:972 +#: models.py:995 msgid "Associated object" msgstr "" -#: models.py:976 +#: models.py:999 msgid "Document template" msgstr "" -#: models.py:977 +#: models.py:1000 msgid "Document templates" msgstr "" -#: models.py:1008 models.py:1018 models.py:1651 +#: models.py:1031 models.py:1041 models.py:1674 msgid "State" msgstr "" -#: models.py:1022 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1045 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "" -#: models.py:1023 +#: models.py:1046 msgid "Departments" msgstr "" -#: models.py:1051 +#: models.py:1074 msgid "Merge key" msgstr "" -#: models.py:1106 +#: models.py:1129 msgid "Organization types" msgstr "" -#: models.py:1111 +#: models.py:1134 msgid "Parcels" msgstr "" -#: models.py:1113 +#: models.py:1136 msgid "Operation source" msgstr "" -#: models.py:1119 views.py:890 views.py:947 +#: models.py:1142 views.py:892 views.py:949 msgid "Archaeological files" msgstr "" -#: models.py:1126 views.py:893 views.py:957 +#: models.py:1149 views.py:895 views.py:959 msgid "Context records" msgstr "" -#: models.py:1129 views.py:895 views.py:962 +#: models.py:1152 views.py:897 views.py:964 msgid "Finds" msgstr "" -#: models.py:1160 +#: models.py:1183 msgid "Slug" msgstr "" -#: models.py:1162 models.py:1334 models.py:1376 models.py:2123 +#: models.py:1185 models.py:1357 models.py:1399 models.py:2157 #: templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: models.py:1164 templates/ishtar/dashboards/dashboard_main.html:26 +#: models.py:1187 templates/ishtar/dashboards/dashboard_main.html:26 msgid "Users" msgstr "" -#: models.py:1166 +#: models.py:1189 msgid "Associated model" msgstr "" -#: models.py:1168 +#: models.py:1191 msgid "Is template" msgstr "" -#: models.py:1169 +#: models.py:1192 msgid "Unicity keys (separator \";\")" msgstr "" -#: models.py:1173 +#: models.py:1196 msgid "Importer - Type" msgstr "" -#: models.py:1174 +#: models.py:1197 msgid "Importer - Types" msgstr "" -#: models.py:1264 +#: models.py:1287 msgid "Importer - Default" msgstr "" -#: models.py:1265 +#: models.py:1288 msgid "Importer - Defaults" msgstr "" -#: models.py:1300 +#: models.py:1323 msgid "Importer - Default value" msgstr "" -#: models.py:1301 +#: models.py:1324 msgid "Importer - Default values" msgstr "" -#: models.py:1333 +#: models.py:1356 msgid "Column number" msgstr "" -#: models.py:1336 +#: models.py:1359 msgid "Required" msgstr "" -#: models.py:1339 +#: models.py:1362 msgid "Importer - Column" msgstr "" -#: models.py:1340 +#: models.py:1363 msgid "Importer - Columns" msgstr "" -#: models.py:1360 +#: models.py:1383 msgid "Field name" msgstr "" -#: models.py:1362 models.py:1396 +#: models.py:1385 models.py:1419 msgid "Force creation of new item" msgstr "" -#: models.py:1364 models.py:1398 +#: models.py:1387 models.py:1421 msgid "Concatenate with existing" msgstr "" -#: models.py:1366 models.py:1400 +#: models.py:1389 models.py:1423 msgid "Concatenate character" msgstr "" -#: models.py:1370 +#: models.py:1393 msgid "Importer - Duplicate field" msgstr "" -#: models.py:1371 +#: models.py:1394 msgid "Importer - Duplicate fields" msgstr "" -#: models.py:1378 +#: models.py:1401 msgid "Regular expression" msgstr "" -#: models.py:1381 +#: models.py:1404 msgid "Importer - Regular expression" msgstr "" -#: models.py:1382 +#: models.py:1405 msgid "Importer - Regular expressions" msgstr "" -#: models.py:1405 +#: models.py:1428 msgid "Importer - Target" msgstr "" -#: models.py:1406 +#: models.py:1429 msgid "Importer - Targets" msgstr "" -#: models.py:1430 views.py:306 +#: models.py:1453 views.py:306 msgid "True" msgstr "" -#: models.py:1431 views.py:308 +#: models.py:1454 views.py:308 msgid "False" msgstr "" -#: models.py:1450 +#: models.py:1473 msgid "Is set" msgstr "" -#: models.py:1457 +#: models.py:1480 msgid "Importer - Target key" msgstr "" -#: models.py:1458 +#: models.py:1481 msgid "Importer - Targets keys" msgstr "" -#: models.py:1509 models.py:2094 models.py:2105 +#: models.py:1532 models.py:2128 models.py:2139 msgid "Format" msgstr "" -#: models.py:1510 models.py:2184 +#: models.py:1533 models.py:2218 msgid "Operation type" msgstr "" -#: models.py:1511 +#: models.py:1534 msgid "Period" msgstr "" -#: models.py:1512 +#: models.py:1535 msgid "Unit" msgstr "" -#: models.py:1513 +#: models.py:1536 msgid "Material" msgstr "" -#: models.py:1515 +#: models.py:1538 msgid "Conservatory state" msgstr "" -#: models.py:1516 +#: models.py:1539 msgid "Preservation type" msgstr "" -#: models.py:1517 +#: models.py:1540 msgid "Object type" msgstr "" -#: models.py:1519 +#: models.py:1542 msgid "Identification type" msgstr "" -#: models.py:1525 +#: models.py:1548 msgid "Integer" msgstr "" -#: models.py:1526 +#: models.py:1549 msgid "Float" msgstr "" -#: models.py:1527 +#: models.py:1550 msgid "String" msgstr "" -#: models.py:1528 templates/sheet_ope.html:86 +#: models.py:1551 templates/sheet_ope.html:86 msgid "Date" msgstr "" -#: models.py:1530 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:1553 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/sheet_person.html:54 #: templates/ishtar/dashboards/dashboard_main_detail.html:120 msgid "Year" msgstr "" -#: models.py:1531 +#: models.py:1554 msgid "String to boolean" msgstr "" -#: models.py:1532 +#: models.py:1555 msgctxt "filesystem" msgid "File" msgstr "" -#: models.py:1533 +#: models.py:1556 msgid "Unknow type" msgstr "" -#: models.py:1549 +#: models.py:1572 msgid "4 digit year. e.g.: \"2015\"" msgstr "" -#: models.py:1550 +#: models.py:1573 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "" -#: models.py:1551 +#: models.py:1574 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "" -#: models.py:1561 +#: models.py:1584 msgid "Options" msgstr "" -#: models.py:1563 +#: models.py:1586 msgid "Split character(s)" msgstr "" -#: models.py:1567 +#: models.py:1590 msgid "Importer - Formater type" msgstr "" -#: models.py:1568 +#: models.py:1591 msgid "Importer - Formater types" msgstr "" -#: models.py:1615 templates/ishtar/dashboards/dashboard_main_detail.html:61 +#: models.py:1638 templates/ishtar/dashboards/dashboard_main_detail.html:61 msgid "Created" msgstr "" -#: models.py:1616 +#: models.py:1639 msgid "Analyse in progress" msgstr "" -#: models.py:1617 +#: models.py:1640 msgid "Analysed" msgstr "" -#: models.py:1618 +#: models.py:1641 msgid "Import pending" msgstr "" -#: models.py:1619 +#: models.py:1642 msgid "Import in progress" msgstr "" -#: models.py:1620 +#: models.py:1643 msgid "Finished with errors" msgstr "" -#: models.py:1621 +#: models.py:1644 msgid "Finished" msgstr "" -#: models.py:1622 +#: models.py:1645 msgid "Archived" msgstr "" -#: models.py:1634 +#: models.py:1657 msgid "Imported file" msgstr "" -#: models.py:1637 +#: models.py:1660 msgid "Associated images (zip file)" msgstr "" -#: models.py:1639 +#: models.py:1662 msgid "Encoding" msgstr "" -#: models.py:1641 +#: models.py:1664 msgid "Skip lines" msgstr "" -#: models.py:1642 templates/ishtar/import_list.html:47 +#: models.py:1665 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "" -#: models.py:1645 +#: models.py:1668 msgid "Result file" msgstr "" -#: models.py:1648 templates/ishtar/import_list.html:53 +#: models.py:1671 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "" -#: models.py:1654 +#: models.py:1677 msgid "Conservative import" msgstr "" -#: models.py:1659 +#: models.py:1682 msgid "End date" msgstr "" -#: models.py:1661 +#: models.py:1684 msgid "Seconds remaining" msgstr "" -#: models.py:1666 +#: models.py:1689 msgid "Import" msgstr "" -#: models.py:1683 +#: models.py:1706 msgid "Analyse" msgstr "" -#: models.py:1685 models.py:1688 +#: models.py:1708 models.py:1711 msgid "Re-analyse" msgstr "" -#: models.py:1686 +#: models.py:1709 msgid "Launch import" msgstr "" -#: models.py:1689 +#: models.py:1712 msgid "Re-import" msgstr "" -#: models.py:1690 +#: models.py:1713 msgid "Archive" msgstr "" -#: models.py:1692 +#: models.py:1715 msgid "Unarchive" msgstr "" -#: models.py:1825 +#: models.py:1848 msgid "Organizations" msgstr "" -#: models.py:1827 +#: models.py:1850 msgid "Can view all Organization" msgstr "" -#: models.py:1828 +#: models.py:1851 msgid "Can view own Organization" msgstr "" -#: models.py:1829 +#: models.py:1852 msgid "Can add own Organization" msgstr "" -#: models.py:1831 +#: models.py:1854 msgid "Can change own Organization" msgstr "" -#: models.py:1833 +#: models.py:1856 msgid "Can delete own Organization" msgstr "" -#: models.py:1861 +#: models.py:1884 msgid "Groups" msgstr "" -#: models.py:1866 +#: models.py:1889 msgid "Person types" msgstr "" -#: models.py:1873 +#: models.py:1896 msgid "Mr" msgstr "" -#: models.py:1874 +#: models.py:1897 msgid "Miss" msgstr "" -#: models.py:1875 +#: models.py:1898 msgid "Mr and Miss" msgstr "" -#: models.py:1876 +#: models.py:1899 msgid "Mrs" msgstr "" -#: models.py:1877 +#: models.py:1900 msgid "Doctor" msgstr "" -#: models.py:1889 models.py:1929 +#: models.py:1912 models.py:1952 msgid "Types" msgstr "" -#: models.py:1892 +#: models.py:1915 msgid "Is attached to" msgstr "" -#: models.py:1896 +#: models.py:1919 msgid "Persons" msgstr "" -#: models.py:1898 +#: models.py:1921 msgid "Can view all Person" msgstr "" -#: models.py:1899 +#: models.py:1922 msgid "Can view own Person" msgstr "" -#: models.py:1900 +#: models.py:1923 msgid "Can add own Person" msgstr "" -#: models.py:1901 +#: models.py:1924 msgid "Can change own Person" msgstr "" -#: models.py:1902 +#: models.py:1925 msgid "Can delete own Person" msgstr "" -#: models.py:2011 +#: models.py:2045 msgid "Ishtar user" msgstr "" -#: models.py:2012 +#: models.py:2046 msgid "Ishtar users" msgstr "" -#: models.py:2057 +#: models.py:2091 msgid "Author types" msgstr "" -#: models.py:2083 +#: models.py:2117 msgid "Source types" msgstr "" -#: models.py:2088 +#: models.py:2122 msgid "Support type" msgstr "" -#: models.py:2089 +#: models.py:2123 msgid "Support types" msgstr "" -#: models.py:2095 +#: models.py:2129 msgid "Formats" msgstr "" -#: models.py:2100 +#: models.py:2134 msgid "External ID" msgstr "" -#: models.py:2103 +#: models.py:2137 msgid "Support" msgstr "" -#: models.py:2107 +#: models.py:2141 msgid "Scale" msgstr "" -#: models.py:2118 +#: models.py:2152 msgid "Item number" msgstr "" -#: models.py:2119 +#: models.py:2153 msgid "Ref." msgstr "" -#: models.py:2121 +#: models.py:2155 msgid "Internal reference" msgstr "" -#: models.py:2125 +#: models.py:2159 msgid "Additional information" msgstr "" -#: models.py:2155 +#: models.py:2189 msgid "Surface (m2)" msgstr "" -#: models.py:2156 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2190 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2181 +#: models.py:2215 msgid "Is preventive" msgstr "" -#: models.py:2185 +#: models.py:2219 msgid "Operation types" msgstr "" -#: models.py:2211 +#: models.py:2245 msgid "Preventive" msgstr "" -#: models.py:2212 +#: models.py:2246 msgid "Research" msgstr "" @@ -1090,33 +1083,33 @@ msgstr "" msgid "Organization deletion" msgstr "" -#: views.py:592 templates/base.html:80 +#: views.py:594 templates/base.html:80 #: templates/ishtar/sheet_organization.html:35 msgid "Details" msgstr "" -#: views.py:820 views.py:873 +#: views.py:822 views.py:875 msgid "Operation not permitted." msgstr "" -#: views.py:822 +#: views.py:824 #, python-format msgid "New %s" msgstr "" -#: views.py:891 views.py:951 +#: views.py:893 views.py:953 msgid "Operations" msgstr "" -#: views.py:1144 templates/ishtar/import_list.html:43 +#: views.py:1146 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "" -#: views.py:1159 +#: views.py:1161 msgid "Delete import" msgstr "" -#: views.py:1218 views.py:1234 +#: views.py:1220 views.py:1236 msgid "Corporation manager" msgstr "" @@ -1136,15 +1129,15 @@ msgstr "" msgid "Remove" msgstr "" -#: wizards.py:242 templates/ishtar/import_delete.html:20 +#: wizards.py:313 templates/ishtar/import_delete.html:20 msgid "Yes" msgstr "" -#: wizards.py:244 +#: wizards.py:315 msgid "No" msgstr "" -#: wizards.py:1085 +#: wizards.py:1198 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" @@ -1654,7 +1647,7 @@ msgstr "" msgid "Link" msgstr "" -#: templates/ishtar/sheet_person.html:68 +#: templates/ishtar/sheet_person.html:69 msgid "No document associated to this person" msgstr "" @@ -1759,6 +1752,7 @@ msgstr "" #: templates/ishtar/wizard/default_wizard.html:35 #: templates/ishtar/wizard/parcels_wizard.html:24 +#: templates/ishtar/wizard/relations_wizard.html:23 #: templates/ishtar/wizard/search.html:20 #: templates/ishtar/wizard/towns_wizard.html:19 msgid "Add/Modify" @@ -1776,6 +1770,7 @@ msgid "" msgstr "" #: templates/ishtar/wizard/parcels_wizard.html:20 +#: templates/ishtar/wizard/relations_wizard.html:20 msgid "all" msgstr "" diff --git a/ishtar_common/management/commands/ishtar_import.py b/ishtar_common/management/commands/ishtar_import.py new file mode 100644 index 000000000..aba1e45d5 --- /dev/null +++ b/ishtar_common/management/commands/ishtar_import.py @@ -0,0 +1,38 @@ +#!/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_import <command> <import_id>\n\n"\ + "Launch the importation a configured import.\n"\ + "<command> must be: \"analyse\", \"import\" or \"archive\"." + + def handle(self, *args, **options): + if not args or len(args) < 2: + raise CommandError("<command> and <import_id> are mandatory") + command = args[0] + if args[0] not in ["analyse", "import", "archive"]: + raise CommandError( + "<command> must be: \"analyse\", \"import\" or \"archive\"." + ) + try: + imp = models.Import.objects.get(pk=args[1]) + except (ValueError, models.Import.DoesNotExist): + raise CommandError("{} is not a valid import ID".format(args[0])) + if command == 'analyse': + imp.initialize() + self.stdout.write("* {} analysed\n".format(imp)) + self.stdout.flush() + elif command == 'import': + self.stdout.write("* import {}\n".format(imp)) + imp.importation() + self.stdout.write("* {} imported\n".format(imp)) + self.stdout.flush() + elif command == 'archive': + imp.archive() + self.stdout.write("*{} archived\n".format(imp)) + self.stdout.flush() diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 20b8a6f46..af1c70dce 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1539,7 +1539,8 @@ TARGET_MODELS = [ ('archaeological_finds.models.PreservationType', _(u"Preservation type")), ('archaeological_finds.models.ObjectType', _(u"Object type")), ('archaeological_context_records.models.IdentificationType', - _("Identification type")) + _("Identification type")), + ('SupportType', _(u"Support type")), ] TARGET_MODELS_KEYS = [tm[0] for tm in TARGET_MODELS] @@ -1690,8 +1691,8 @@ class Import(models.Model): verbose_name_plural = _(u"Imports") def __unicode__(self): - return u"%s - %s" % (unicode(self.importer_type), - unicode(self.user)) + return u"%s - %s - %d" % (unicode(self.importer_type), + unicode(self.user), self.pk) def need_matching(self): return bool(TargetKey.objects.filter(associated_import=self, @@ -2150,14 +2151,15 @@ class Source(models.Model): creation_date = models.DateField(blank=True, null=True, verbose_name=_(u"Creation date")) item_number = models.IntegerField(_(u"Item number"), default=1) - reference = models.CharField(_(u"Ref."), max_length=25, null=True, + reference = models.CharField(_(u"Ref."), max_length=100, null=True, blank=True) - internal_reference = models.CharField(_(u"Internal reference"), - max_length=25, null=True, blank=True) + internal_reference = models.CharField( + _(u"Internal ref."), max_length=100, null=True, blank=True) description = models.TextField(_(u"Description"), blank=True, null=True) comment = models.TextField(_(u"Comment"), blank=True, null=True) additional_information = models.TextField(_(u"Additional information"), blank=True, null=True) + duplicate = models.BooleanField(_(u"Has a duplicate"), default=False) TABLE_COLS = ['title', 'source_type', 'authors', ] class Meta: @@ -2166,6 +2168,13 @@ class Source(models.Model): def __unicode__(self): return self.title + @property + def associated_filename(self): + values = [unicode(getattr(self, attr)) + for attr in ('source_type', 'title') + if getattr(self, attr)] + return slugify(u"-".join(values)) + if settings.COUNTRY == 'fr': class Arrondissement(models.Model): name = models.CharField(u"Nom", max_length=30) diff --git a/ishtar_common/templates/blocks/JQueryJqGrid.html b/ishtar_common/templates/blocks/JQueryJqGrid.html index 7e7086738..e8647dadf 100644 --- a/ishtar_common/templates/blocks/JQueryJqGrid.html +++ b/ishtar_common/templates/blocks/JQueryJqGrid.html @@ -73,6 +73,7 @@ jQuery(document).ready(function(){ {name:'link', index:'link', width:30}, {{extra_cols|safe}} ], + height: 300, sortname: 'value', viewrecords: true, sortorder: "asc", diff --git a/ishtar_common/templates/blocks/inline_formset.html b/ishtar_common/templates/blocks/inline_formset.html index 3affb7bf3..4d4042985 100644 --- a/ishtar_common/templates/blocks/inline_formset.html +++ b/ishtar_common/templates/blocks/inline_formset.html @@ -12,7 +12,7 @@ {% if frm.errors %}<tr><td colspan='3'><ul>{% for error in frm.errors.values %}<li>{{error}}</li>{% endfor%}</ul></td></tr>{% endif %} <tr>{% endif %}{% for field in frm.visible_fields %}<td> {% if field.errors %}<div class='errors'>{{ field.errors.as_ul }}</div>{% endif %} - {{ field }} + {{ field|safe }} {# Include the hidden fields in the form #} {% if forloop.first %} {{ formset.management_form }} diff --git a/ishtar_common/templates/ishtar/blocks/window_field_url.html b/ishtar_common/templates/ishtar/blocks/window_field_url.html new file mode 100644 index 000000000..b91f318b6 --- /dev/null +++ b/ishtar_common/templates/ishtar/blocks/window_field_url.html @@ -0,0 +1,3 @@ +{% load i18n %} +{% if link %}<p><label>{% trans caption %}{% trans ":"%}</label> +<span class='value'><a target="_blank" href='{{link|safe}}'>{% if link_name %}{{link_name}}{% else %}{% trans "link" %}{% endif %}</a></span></p>{% endif%} diff --git a/ishtar_common/templates/ishtar/sheet.html b/ishtar_common/templates/ishtar/sheet.html index 915376938..1302e4637 100644 --- a/ishtar_common/templates/ishtar/sheet.html +++ b/ishtar_common/templates/ishtar/sheet.html @@ -45,7 +45,9 @@ jQuery(document).ready(function(){ </script> {% endblock %} <div class="body"> -{% block content %}{% endblock %} +{% block toolbar %}{% endblock %} +{% block content %} +{% endblock %} </div> </div> {%block main_foot%} diff --git a/ishtar_common/templates/ishtar/sheet_source.html b/ishtar_common/templates/ishtar/sheet_source.html new file mode 100644 index 000000000..47e285017 --- /dev/null +++ b/ishtar_common/templates/ishtar/sheet_source.html @@ -0,0 +1,24 @@ +{% extends "ishtar/sheet.html" %} +{% load i18n window_field link_to_window %} +{% block toolbar %}{% include "ishtar/sheet_toolbar.html" %}{% endblock %} +{% block content %} +{% block general %} +{% field "Title" item.title %} +{% field "Source type" item.source_type %} +{% field "Format type" item.format_type %} +{% field "Scale" item.scale %} +{% field_url "Web link" item.associated_url %} +{% field_multiple "Authors" item.authors %} +{% field "Item number" item.item_number %} +{% field "Ref." item.reference %} +{% field "Internal ref." item.internal_reference %} +{% field "Has a duplicate" item.duplicate %} +{% field "Description" item.description %} +{% field "Comment" item.comment %} +{% field "Additional information" item.additional_information %} +{% endblock %} +{% block related %} +{% field "Related item" item.owner %} +{% endblock %} +{% endblock %} + diff --git a/ishtar_common/templates/ishtar/sheet_toolbar.html b/ishtar_common/templates/ishtar/sheet_toolbar.html new file mode 100644 index 000000000..2e059781e --- /dev/null +++ b/ishtar_common/templates/ishtar/sheet_toolbar.html @@ -0,0 +1,2 @@ +{% load i18n link_to_window %}<div class='tool'>{%trans "Export as:"%} <a href='{{item|link_to_odt}}'>{%trans "OpenOffice.org file"%}</a>, <a href='{{item|link_to_pdf}}'>{%trans "PDF file"%}</a></div> + diff --git a/ishtar_common/templates/ishtar/wizard/relations_wizard.html b/ishtar_common/templates/ishtar/wizard/relations_wizard.html new file mode 100644 index 000000000..9ca592ca8 --- /dev/null +++ b/ishtar_common/templates/ishtar/wizard/relations_wizard.html @@ -0,0 +1,32 @@ +{% extends "ishtar/wizard/default_wizard.html" %} +{% load i18n range inline_formset %} +{% block extra_head %} +{{wizard.form.media}} +{% endblock %} +{% block wizard_form %} +<form action="." method="post">{% csrf_token %} +<div class='form'> +{{ wizard.form.media }} +{{ wizard.management_form }} +{{ wizard.form.management_form }} + +{% if wizard.form.non_form_errors%} +<table class='formset'> +<tr class='error'><th colspan='2'>{{wizard.form.non_form_errors}}</th></tr> +</table>{%endif%} + +<table class='inline-table'> + <tr>{% for field in wizard.form.forms.0 %}<th{% if not forloop.last %} rowspan='2'{% endif %}>{{ field.label_tag }}</th>{% endfor %}</tr> + <tr><td>({% trans "all"%} <input type='checkbox' name='check-all' class='check-all'/>)</td></tr> + {% inline_formset 'Parcels' wizard.form.forms False %} +</table> +<p><button name="formset_modify" value="{{wizard.steps.current}}">{% trans "Add/Modify" %}</button></p> +<input type="hidden" name="{{ step_field }}" value="{{ step0 }}" /> +{{ previous_fields|safe }} +{% block "validation_bar" %} +{% include 'ishtar/wizard/validation_bar.html' %} +{% endblock %} +</div> +</form> +{% endblock %} + diff --git a/ishtar_common/templatetags/inline_formset.py b/ishtar_common/templatetags/inline_formset.py index c3220f207..5e833c06f 100644 --- a/ishtar_common/templatetags/inline_formset.py +++ b/ishtar_common/templatetags/inline_formset.py @@ -2,11 +2,10 @@ # -*- coding: utf-8 -*- from django import template -from django.utils.translation import ugettext as _ -import re register = template.Library() + @register.inclusion_tag('blocks/inline_formset.html') def inline_formset(caption, formset, header=True, skip=False): u""" @@ -14,5 +13,5 @@ def inline_formset(caption, formset, header=True, skip=False): For i18n of the caption be carreful to add manualy the caption label to the translated fields """ - return {'caption':caption, 'formset':formset, 'header':header, 'skip':skip} - + return {'caption': caption, 'formset': formset, 'header': header, + 'skip': skip} diff --git a/ishtar_common/templatetags/link_to_window.py b/ishtar_common/templatetags/link_to_window.py new file mode 100644 index 000000000..65e8b23ca --- /dev/null +++ b/ishtar_common/templatetags/link_to_window.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from django.core.urlresolvers import reverse +from django.template import Library +from django.utils.translation import ugettext as _ + +register = Library() + + +@register.filter +def link_to_window(item): + return u' <a class="display_details" href="#" '\ + 'onclick="load_window(\'{}\')">{}</a>'.format( + reverse(item.SHOW_URL, args=[item.pk, '']), + _("Details")) + + +@register.filter +def link_to_odt(item): + return reverse(item.SHOW_URL, args=[item.pk, 'odt']) + + +@register.filter +def link_to_pdf(item): + return reverse(item.SHOW_URL, args=[item.pk, 'pdf']) diff --git a/ishtar_common/templatetags/window_field.py b/ishtar_common/templatetags/window_field.py index 4a764166a..34071f60f 100644 --- a/ishtar_common/templatetags/window_field.py +++ b/ishtar_common/templatetags/window_field.py @@ -1,14 +1,26 @@ from django import template +from django.utils.translation import ugettext_lazy as _ register = template.Library() @register.inclusion_tag('ishtar/blocks/window_field.html') def field(caption, data, pre_data='', post_data=''): + if data in (True, False): + data = _(unicode(data)) return {'caption': caption, 'data': data, "pre_data": pre_data, 'post_data': post_data} +@register.inclusion_tag('ishtar/blocks/window_field_url.html') +def field_url(caption, link, link_name=''): + if not link: + return u'' + if not link.startswith('http://'): + link = 'http://' + link + return {'caption': caption, 'link': link, "link_name": link_name} + + @register.inclusion_tag('ishtar/blocks/window_field_multiple.html') def field_multiple(caption, data): return {'caption': caption, 'data': data} diff --git a/ishtar_common/views.py b/ishtar_common/views.py index a18673b44..1320517ff 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -325,18 +325,24 @@ def get_item(model, func_name, default_name, extra_request_keys=[], # check rights own = True # more restrictive by default allowed = False - for perm, lbl in model._meta.permissions: - # if not specific any perm is relevant (read right) - if specific_perms and perm not in specific_perms: - continue - if request.user.has_perm(model._meta.app_label + '.' + perm) \ - or (request.user.is_authenticated() - and request.user.ishtaruser.has_right( - perm, session=request.session)): - allowed = True - if "_own_" not in perm: - own = False - break # max right reach + if request.user.is_authenticated() and \ + request.user.ishtaruser.has_right('administrator', + session=request.session): + allowed = True + own = False + else: + for perm, lbl in model._meta.permissions: + # if not specific any perm is relevant (read right) + if specific_perms and perm not in specific_perms: + continue + if request.user.has_perm(model._meta.app_label + '.' + perm) \ + or (request.user.is_authenticated() + and request.user.ishtaruser.has_right( + perm, session=request.session)): + allowed = True + if "_own_" not in perm: + own = False + break # max right reach if force_own: own = True EMPTY = '' diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index d00766978..031498ca3 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -326,7 +326,7 @@ class Wizard(NamedUrlWizardView): for val in values: item = associated_models[key].objects.get(pk=val) if hasattr(item, 'short_label'): - value = item.short_label + value = unicode(item.short_label) else: value = unicode(item) rendered_values.append(value) @@ -545,30 +545,46 @@ class Wizard(NamedUrlWizardView): # material_index management for baseitems obj.save() m2m_items = {} + # clear + # TODO! perf - to be really optimized for model in whole_associated_models: - getattr(obj, model + 's').clear() + related_model = getattr(obj, model + 's') + # clear real m2m + if hasattr(related_model, 'clear'): + related_model.clear() + else: + for r in related_model.all(): + r.delete() for key, value in m2m: + related_model = getattr(obj, key + 's') if key not in m2m_items: if type(key) == dict: vals = [] - for item in getattr(obj, key + 's').all(): + for item in related_model.all(): v = {} for k in value.keys(): v[k] = getattr(item, k) vals.append(v) m2m_items[key] = vals else: - m2m_items[key] = getattr(obj, key + 's').all() + m2m_items[key] = related_model.all() if value not in m2m_items[key]: if type(value) == dict: - model = getattr(obj, key + 's').model + model = related_model.model if issubclass(model, models.BaseHistorizedItem): value['history_modifier'] = self.request.user + # not m2m -> foreign key + if not hasattr(related_model, 'clear'): + assert hasattr(model, 'MAIN_ATTR'), \ + u"Must define a MAIN_ATTR for " + \ + unicode(model.__class__) + value[getattr(model, 'MAIN_ATTR')] = obj value = model.objects.create(**value) value.save() # check that an item is not add multiple times (forged forms) - if value not in getattr(obj, key + 's').all(): - getattr(obj, key + 's').add(value) + if value not in related_model.all() and\ + hasattr(related_model, 'add'): + related_model.add(value) # necessary to manage interaction between models like # material_index management for baseitems obj.save() diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 9dfa7a2f7..86f2433a4 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -5,295 +5,297 @@ # Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata msgid "" msgstr "" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-09 00:28+0100\n" -"PO-Revision-Date: \n" -"Last-Translator: Étienne Loks <etienne.loks at peacefrogs net>\n" -"Language-Team: \n" -"Language: fr\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=UTF-8\n" +"PO-Revision-Date: 2015-12-23 05:03-0500\n" +"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n" +"Language-Team: \n" +"Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.7.3\n" -#: forms.py:43 forms.py:96 models.py:123 +#: forms.py:44 forms.py:97 models.py:124 #: templates/ishtar/sheet_contextrecord.html:72 msgid "ID" msgstr "Identifiant" -#: forms.py:47 +#: forms.py:48 msgid "Code PATRIARCHE" msgstr "Code PATRIARCHE" -#: forms.py:48 +#: forms.py:49 msgid "Operation's year" msgstr "Année de l'opération" -#: forms.py:50 +#: forms.py:51 msgid "Operation's number (index by year)" msgstr "Numéro de l'opération (index par année)" -#: forms.py:51 forms.py:162 models.py:47 +#: forms.py:52 forms.py:163 models.py:48 msgid "Period" msgstr "Période" -#: forms.py:52 +#: forms.py:53 msgid "Unit type" msgstr "Type d'unité" -#: forms.py:53 +#: forms.py:54 msgid "Parcel (section/number)" msgstr "Parcelle (section/numéro)" -#: forms.py:71 forms.py:229 views.py:68 +#: forms.py:72 forms.py:259 views.py:68 msgid "Context record search" msgstr "Recherche d'Unité d'Enregistrement" -#: forms.py:85 +#: forms.py:86 msgid "You should at least select one context record." msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement." -#: forms.py:91 +#: forms.py:92 msgid "General" msgstr "Général" -#: forms.py:95 models.py:116 models.py:119 +#: forms.py:96 models.py:117 models.py:120 #: templates/ishtar/sheet_contextrecord.html:76 msgid "Parcel" msgstr "Parcelle" -#: forms.py:98 models.py:124 templates/ishtar/sheet_contextrecord.html:42 +#: forms.py:99 models.py:125 templates/ishtar/sheet_contextrecord.html:42 #: templates/ishtar/sheet_contextrecord.html:75 msgid "Description" msgstr "Description" -#: forms.py:100 models.py:129 +#: forms.py:101 models.py:130 msgid "Length (cm)" msgstr "Longueur (cm)" -#: forms.py:101 models.py:130 +#: forms.py:102 models.py:131 msgid "Width (cm)" msgstr "Largeur (cm)" -#: forms.py:102 models.py:131 +#: forms.py:103 models.py:132 msgid "Thickness (cm)" msgstr "Épaisseur (cm)" -#: forms.py:103 models.py:133 +#: forms.py:104 models.py:134 msgid "Depth (cm)" msgstr "Profondeur (cm)" -#: forms.py:104 models.py:139 +#: forms.py:105 models.py:140 msgid "Unit" msgstr "Unité" -#: forms.py:106 models.py:135 +#: forms.py:107 models.py:136 msgid "Location" msgstr "Lieu" -#: forms.py:151 +#: forms.py:152 msgid "This ID already exist for this operation." msgstr "Cet identifiant existe déjà pour cette opération." -#: forms.py:157 forms.py:181 models.py:58 +#: forms.py:158 forms.py:182 models.py:59 msgid "Dating" msgstr "Datation" -#: forms.py:163 models.py:48 +#: forms.py:164 models.py:49 msgid "Start date" msgstr "Date de début" -#: forms.py:164 models.py:49 models.py:128 +#: forms.py:165 models.py:50 models.py:129 msgid "End date" msgstr "Date de fin" -#: forms.py:165 models.py:52 +#: forms.py:166 models.py:53 msgid "Quality" msgstr "Qualité" -#: forms.py:166 models.py:34 models.py:50 +#: forms.py:167 models.py:35 models.py:51 msgid "Dating type" msgstr "Type de datation" -#: forms.py:185 forms.py:192 models.py:144 +#: forms.py:191 ishtar_menu.py:29 models.py:318 +msgid "Context record" +msgstr "Unité d'Enregistrement" + +#: forms.py:211 +msgid "Relations" +msgstr "Relations" + +#: forms.py:215 forms.py:222 models.py:145 #: templates/ishtar/sheet_contextrecord.html:52 msgid "Interpretation" msgstr "Interprétation" -#: forms.py:188 models.py:141 +#: forms.py:218 models.py:142 msgid "Has furniture?" msgstr "Contient du mobilier ?" -#: forms.py:190 models.py:143 +#: forms.py:220 models.py:144 msgid "Filling" msgstr "Remplissage" -#: forms.py:194 models.py:164 +#: forms.py:224 models.py:165 msgid "Activity" msgstr "Activité" -#: forms.py:196 models.py:162 +#: forms.py:226 models.py:163 msgid "Identification" msgstr "Identification" -#: forms.py:198 models.py:147 +#: forms.py:228 models.py:148 msgid "TAQ" msgstr "TAQ" -#: forms.py:199 models.py:151 +#: forms.py:229 models.py:152 msgid "Estimated TAQ" msgstr "TAQ estimé" -#: forms.py:201 models.py:154 +#: forms.py:231 models.py:155 msgid "TPQ" msgstr "TPQ" -#: forms.py:202 models.py:158 +#: forms.py:232 models.py:159 msgid "Estimated TPQ" msgstr "TPQ estimé" -#: forms.py:215 +#: forms.py:245 msgid "Operation search" msgstr "Recherche d'opérations" -#: forms.py:217 +#: forms.py:247 msgid "You should select an operation." msgstr "Vous devez sélectionner une opération." -#: forms.py:222 +#: forms.py:252 msgid "Would you like to delete this context record?" msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?" -#: forms.py:231 +#: forms.py:261 msgid "You should select a context record." msgstr "Vous devez sélectionner une Unité d'Enregistrement." -#: forms.py:236 +#: forms.py:266 msgid "Town of the operation" msgstr "Commune de l'opération" -#: forms.py:238 +#: forms.py:268 msgid "Year of the operation" msgstr "Année de l'opération" -#: forms.py:240 +#: forms.py:270 msgid "Period of the context record" msgstr "Période de l'Unité d'Enregistrement" -#: forms.py:242 +#: forms.py:272 msgid "Unit type of the context record" msgstr "Type d'unité de l'Unité d'Enregistrement" -#: forms.py:255 +#: forms.py:285 msgid "Documentation search" msgstr "Recherche de document" -#: forms.py:257 +#: forms.py:287 msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: ishtar_menu.py:27 models.py:310 -msgid "Context record" -msgstr "Unité d'Enregistrement" - -#: ishtar_menu.py:28 +#: ishtar_menu.py:30 msgid "Search" msgstr "Recherche" -#: ishtar_menu.py:32 +#: ishtar_menu.py:34 msgid "Creation" msgstr "Ajout" -#: ishtar_menu.py:36 ishtar_menu.py:53 +#: ishtar_menu.py:38 ishtar_menu.py:55 msgid "Modification" msgstr "Modification" -#: ishtar_menu.py:40 ishtar_menu.py:59 +#: ishtar_menu.py:42 ishtar_menu.py:61 msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:44 +#: ishtar_menu.py:46 msgid "Documentation" msgstr "Documentation" -#: ishtar_menu.py:47 +#: ishtar_menu.py:49 msgid "Add" msgstr "Ajout" -#: models.py:35 +#: models.py:36 msgid "Dating types" msgstr "Types de datation" -#: models.py:41 +#: models.py:42 msgid "Dating quality" msgstr "Qualité de datation" -#: models.py:42 +#: models.py:43 msgid "Dating qualities" msgstr "Qualités de datation" -#: models.py:54 +#: models.py:55 msgid "Precise dating" msgstr "Datation précise" -#: models.py:59 +#: models.py:60 msgid "Datings" msgstr "Datations" -#: models.py:70 models.py:84 models.py:96 +#: models.py:71 models.py:85 models.py:97 msgid "Order" msgstr "Ordre" -#: models.py:71 +#: models.py:72 msgid "Parent unit" msgstr "Unité parente" -#: models.py:75 +#: models.py:76 msgid "Type Unit" msgstr "Type d'unité" -#: models.py:76 +#: models.py:77 msgid "Types Unit" msgstr "Types d'unité" -#: models.py:87 +#: models.py:88 msgid "Type Activity" msgstr "Type d'activité" -#: models.py:88 +#: models.py:89 msgid "Types Activity" msgstr "Types d'activité" -#: models.py:99 +#: models.py:100 msgid "Type Identification" msgstr "Type d'identification" -#: models.py:100 +#: models.py:101 msgid "Types Identification" msgstr "Types d'identification" -#: models.py:117 +#: models.py:118 msgid "External ID" msgstr "ID externe" -#: models.py:121 wizards.py:60 +#: models.py:122 wizards.py:68 msgid "Operation" msgstr "Opération" -#: models.py:125 +#: models.py:126 msgid "Comment" msgstr "Commentaires" -#: models.py:126 +#: models.py:127 msgid "Date d'ouverture" msgstr "Date d'ouverture" -#: models.py:136 +#: models.py:137 msgid "A short description of the location of the context record" msgstr "Une courte description de la situation de l'Unité d'Enregistrement" -#: models.py:148 +#: models.py:149 msgid "" "\"Terminus Ante Quem\" the context record can't have been created after this " "date" @@ -301,11 +303,11 @@ msgstr "" "« Terminus Ante Quem » l'Unité d'Enregistrement ne peut avoir été créée " "après cette date" -#: models.py:152 +#: models.py:153 msgid "Estimation of a \"Terminus Ante Quem\"" msgstr "Estimation d'un « Terminus Ante Quem »" -#: models.py:155 +#: models.py:156 msgid "" "\"Terminus Post Quem\" the context record can't have been created before " "this date" @@ -313,88 +315,88 @@ msgstr "" "« Terminus Post Quem » l'Unité d'Enregistrement ne peut avoir été créée " "avant cette date" -#: models.py:159 +#: models.py:160 msgid "Estimation of a \"Terminus Post Quem\"" msgstr "Estimation d'un « Terminus Post Quem »" -#: models.py:170 models.py:171 templates/ishtar/sheet_contextrecord.html:6 +#: models.py:171 models.py:172 templates/ishtar/sheet_contextrecord.html:6 msgid "Context Record" msgstr "Unité d'Enregistrement" -#: models.py:173 +#: models.py:174 msgid "Can view all Context Record" msgstr "Peut voir toutes les Unités d'Enregistrement" -#: models.py:175 +#: models.py:176 msgid "Can view own Context Record" msgstr "Peut voir sa propre Unité d'Enregistrement" -#: models.py:177 +#: models.py:178 msgid "Can add own Context Record" msgstr "Peut ajouter sa propre Unité d'Enregistrement" -#: models.py:179 +#: models.py:180 msgid "Can change own Context Record" msgstr "Peut changer sa propre Unité d'Enregistrement" -#: models.py:181 +#: models.py:182 msgid "Can delete own Context Record" msgstr "Peut supprimer sa propre Unité d'Enregistrement" -#: models.py:190 +#: models.py:191 msgctxt "short" msgid "Context record" msgstr "UE" -#: models.py:282 +#: models.py:289 msgid "Inverse relation" msgstr "Relation inverse" -#: models.py:286 templates/ishtar/sheet_contextrecord.html:71 +#: models.py:293 templates/ishtar/sheet_contextrecord.html:71 msgid "Relation type" msgstr "Type de relation" -#: models.py:287 +#: models.py:294 msgid "Relation types" msgstr "Types de relation" -#: models.py:299 +#: models.py:307 msgid "Record relation" msgstr "Relation entre Unités d'Enregistrement" -#: models.py:300 +#: models.py:308 msgid "Record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:307 +#: models.py:315 msgid "Context record documentation" msgstr "Documentation d'une Unité d'Enregistrement" -#: models.py:308 +#: models.py:316 msgid "Context record documentations" msgstr "Documentations des Unités d'Enregistrement" -#: views.py:77 +#: views.py:78 msgid "New context record" msgstr "Nouvelle Unité d'Enregistrement" -#: views.py:86 +#: views.py:88 msgid "Context record modification" msgstr "Modification d'une Unité d'Enregistrement" -#: views.py:100 +#: views.py:102 msgid "Context record deletion" msgstr "Suppression d'une Unité d'Enregistrement" -#: views.py:108 +#: views.py:110 msgid "Context record: new source" msgstr "Unité d'Enregistrement : nouvelle documentation associée" -#: views.py:116 +#: views.py:118 msgid "Context record: source modification" msgstr "Unité d'Enregistrement : modification d'une documentation associée" -#: views.py:122 +#: views.py:124 msgid "Context record: source deletion" msgstr "Unité d'Enregistrement : suppression d'une documentation associée" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 869358299..ca3f61ba1 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -5,32 +5,30 @@ # Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata msgid "" msgstr "" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-09 00:28+0100\n" -"PO-Revision-Date: 2015-12-08 06:25-0500\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=UTF-8\n" +"PO-Revision-Date: 2015-12-28 06:34-0500\n" "Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n" "Language-Team: \n" "Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.7.3\n" -#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:429 +#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:431 #: models.py:75 templates/ishtar/sheet_file.html:137 msgid "Year" msgstr "Année" -#: forms.py:52 forms.py:196 forms.py:237 forms.py:428 models.py:78 +#: forms.py:52 forms.py:196 forms.py:237 forms.py:430 models.py:78 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:54 forms.py:198 forms.py:431 +#: forms.py:54 forms.py:198 forms.py:433 msgid "Other reference" msgstr "Autre référence" -#: forms.py:56 forms.py:409 +#: forms.py:56 forms.py:411 msgid "File name" msgstr "Nom du dossier" @@ -50,23 +48,23 @@ msgstr "Parcelle (section/numéro)" msgid "Is active?" msgstr "Est actif ?" -#: forms.py:62 forms.py:267 forms.py:411 models.py:91 +#: forms.py:62 forms.py:267 forms.py:413 models.py:91 msgid "General contractor" msgstr "Aménageur" -#: forms.py:69 forms.py:420 +#: forms.py:69 forms.py:422 msgid "Organization of general contractor" msgstr "Organisation de l'aménageur" -#: forms.py:76 forms.py:433 templates/ishtar/sheet_file.html:114 +#: forms.py:76 forms.py:435 templates/ishtar/sheet_file.html:114 msgid "In charge" msgstr "Responsable" -#: forms.py:83 forms.py:446 +#: forms.py:83 forms.py:450 msgid "Created by" msgstr "Créé par" -#: forms.py:90 forms.py:292 forms.py:441 models.py:117 +#: forms.py:90 forms.py:292 forms.py:443 models.py:117 msgid "Permit reference" msgstr "Référence du permis" @@ -204,67 +202,71 @@ msgstr "Voulez vous supprimer ce dossier archéologique ?" msgid "Index" msgstr "Index" -#: forms.py:381 forms.py:403 forms.py:489 +#: forms.py:381 forms.py:405 forms.py:493 msgid "Act type" msgstr "Type d'acte" -#: forms.py:385 forms.py:444 models.py:514 +#: forms.py:382 forms.py:447 +msgid "Object (full text search)" +msgstr "Objet (recherche texte intégral)" + +#: forms.py:387 forms.py:446 models.py:514 msgid "Department" msgstr "Département" -#: forms.py:405 +#: forms.py:407 msgid "Signature date after" msgstr "Date de signature après" -#: forms.py:407 +#: forms.py:409 msgid "Signature date before" msgstr "Date de signature avant" -#: ishtar_menu.py:30 models.py:186 templates/ishtar/sheet_file.html:6 +#: ishtar_menu.py:33 models.py:186 templates/ishtar/sheet_file.html:6 msgid "Archaeological file" msgstr "Dossier" -#: ishtar_menu.py:32 ishtar_menu.py:50 +#: ishtar_menu.py:36 ishtar_menu.py:59 msgid "Search" msgstr "Recherche" -#: ishtar_menu.py:35 +#: ishtar_menu.py:40 msgid "Creation" msgstr "Ajout" -#: ishtar_menu.py:38 ishtar_menu.py:58 +#: ishtar_menu.py:44 ishtar_menu.py:67 msgid "Modification" msgstr "Modification" -#: ishtar_menu.py:41 +#: ishtar_menu.py:48 msgid "Closing" msgstr "Clotûre" -#: ishtar_menu.py:44 ishtar_menu.py:62 +#: ishtar_menu.py:52 ishtar_menu.py:71 msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:47 +#: ishtar_menu.py:56 msgid "Administrative act" msgstr "Acte administratif" -#: ishtar_menu.py:54 +#: ishtar_menu.py:63 msgid "Add" msgstr "Ajout" -#: ishtar_menu.py:66 +#: ishtar_menu.py:75 msgid "Documents" msgstr "Documents" -#: ishtar_menu.py:72 +#: ishtar_menu.py:81 msgid "Dashboard" msgstr "Tableau de bord" -#: ishtar_menu.py:74 +#: ishtar_menu.py:82 msgid "General informations" msgstr "Informations générales" -#: ishtar_menu.py:77 models.py:187 +#: ishtar_menu.py:85 models.py:187 #: templates/ishtar/dashboards/dashboard_file.html:8 msgid "Archaeological files" msgstr "Dossiers archéologiques" @@ -393,39 +395,39 @@ msgstr "Pas de commune" msgid "File" msgstr "Dossier" -#: views.py:141 +#: views.py:142 msgid "File search" msgstr "Recherche de dossier archéologique" -#: views.py:150 +#: views.py:151 msgid "New file" msgstr "Nouveau dossier archéologique" -#: views.py:169 +#: views.py:170 msgid "File modification" msgstr "Modification de dossier archéologique" -#: views.py:192 +#: views.py:193 msgid "File closing" msgstr "Clotûre de dossier" -#: views.py:197 +#: views.py:198 msgid "File deletion" msgstr "Suppression de dossier archéologique" -#: views.py:204 +#: views.py:205 msgid "File: search administrative act" msgstr "Dossier : rechercher un acte administratif" -#: views.py:213 +#: views.py:214 msgid "File: new administrative act" msgstr "Dossier : nouvel acte administratif" -#: views.py:223 +#: views.py:224 msgid "File: administrative act modification" msgstr "Dossier : modification d'acte administratif" -#: views.py:232 +#: views.py:233 msgid "File: administrative act deletion" msgstr "Dossier : suppression acte administratif" diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index 1039d1d51..648d6a566 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -5,15 +5,13 @@ # Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata msgid "" msgstr "" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-09 00:28+0100\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=UTF-8\n" "PO-Revision-Date: 2015-12-08 06:24-0500\n" "Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n" "Language-Team: \n" "Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Zanata 3.7.3\n" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 2a2a14a67..8c13f4a07 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -5,33 +5,31 @@ # Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata msgid "" msgstr "" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-09 00:28+0100\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=UTF-8\n" "PO-Revision-Date: 2015-11-27 07:42-0500\n" "Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n" "Language-Team: \n" "Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.7.3\n" -#: forms.py:45 ishtar_menu.py:27 models.py:344 models.py:530 models.py:600 +#: forms.py:45 ishtar_menu.py:31 models.py:345 models.py:539 models.py:609 #: templates/ishtar/sheet_find.html:6 msgid "Find" msgstr "Mobilier" -#: forms.py:54 forms.py:289 models.py:108 models.py:286 +#: forms.py:54 forms.py:289 models.py:108 models.py:287 msgid "Free-ID" msgstr "Identifiant libre" -#: forms.py:56 models.py:328 +#: forms.py:56 models.py:329 msgid "Previous ID" msgstr "Identifiant précédent" -#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:287 -#: models.py:553 templates/ishtar/sheet_find.html:87 +#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:288 +#: models.py:562 templates/ishtar/sheet_find.html:87 msgid "Description" msgstr "Description" @@ -39,7 +37,7 @@ msgstr "Description" msgid "Batch/object" msgstr "Lot/objet" -#: forms.py:62 models.py:314 +#: forms.py:62 models.py:315 msgid "Is complete?" msgstr "Est complet ?" @@ -47,11 +45,11 @@ msgstr "Est complet ?" msgid "Material type" msgstr "Type de matériau" -#: forms.py:66 forms.py:162 models.py:60 models.py:291 +#: forms.py:66 forms.py:162 models.py:60 models.py:292 msgid "Conservatory state" msgstr "État sanitaire" -#: forms.py:69 models.py:85 models.py:317 +#: forms.py:69 models.py:85 models.py:318 msgid "Object types" msgstr "Types d'objet" @@ -59,55 +57,55 @@ msgstr "Types d'objet" msgid "Preservation type" msgstr "Type de conservation" -#: forms.py:74 forms.py:164 models.py:319 +#: forms.py:74 forms.py:164 models.py:320 msgid "Integrity" msgstr "Intégrité" -#: forms.py:76 models.py:320 +#: forms.py:76 models.py:321 msgid "Length (cm)" msgstr "Longueur (cm)" -#: forms.py:77 models.py:321 +#: forms.py:77 models.py:322 msgid "Width (cm)" msgstr "Largeur (cm)" -#: forms.py:78 models.py:322 +#: forms.py:78 models.py:323 msgid "Height (cm)" msgstr "Hauteur (cm)" -#: forms.py:79 models.py:323 +#: forms.py:79 models.py:324 msgid "Diameter (cm)" msgstr "Diametre (cm)" -#: forms.py:80 forms.py:294 models.py:296 +#: forms.py:80 forms.py:294 models.py:297 msgid "Volume (l)" msgstr "Volume (l)" -#: forms.py:81 forms.py:295 models.py:297 +#: forms.py:81 forms.py:295 models.py:298 msgid "Weight (g)" msgstr "Poids (g)" -#: forms.py:82 forms.py:296 models.py:300 +#: forms.py:82 forms.py:296 models.py:301 msgid "Find number" msgstr "Mobilier (en nombre)" -#: forms.py:83 models.py:324 +#: forms.py:83 models.py:325 msgid "Mark" msgstr "Marque" -#: forms.py:84 forms.py:169 models.py:330 +#: forms.py:84 forms.py:169 models.py:331 msgid "Check" msgstr "Vérification" -#: forms.py:86 models.py:332 +#: forms.py:86 models.py:333 msgid "Check date" msgstr "Date de vérification" -#: forms.py:87 models.py:112 models.py:325 models.py:554 +#: forms.py:87 models.py:112 models.py:326 models.py:563 msgid "Comment" msgstr "Commentaire" -#: forms.py:90 models.py:326 +#: forms.py:90 models.py:327 msgid "Comment on dating" msgstr "Commentaire général sur les datations" @@ -124,7 +122,7 @@ msgstr "" "<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).</p>" -#: forms.py:119 forms.py:147 models.py:308 +#: forms.py:119 forms.py:147 models.py:309 msgid "Dating" msgstr "Datation" @@ -132,11 +130,11 @@ msgstr "Datation" msgid "Period" msgstr "Période" -#: forms.py:125 forms.py:231 models.py:565 models.py:606 +#: forms.py:125 forms.py:231 models.py:574 models.py:615 msgid "Start date" msgstr "Date de début" -#: forms.py:127 forms.py:233 models.py:566 models.py:607 +#: forms.py:127 forms.py:233 models.py:575 models.py:616 msgid "End date" msgstr "Date de fin" @@ -176,15 +174,15 @@ msgstr "Recherche de mobilier" msgid "Base treatment" msgstr "Traitement de base" -#: forms.py:216 models.py:542 models.py:556 +#: forms.py:216 models.py:551 models.py:565 msgid "Treatment type" msgstr "Type de traitement" -#: forms.py:218 models.py:563 models.py:604 +#: forms.py:218 models.py:572 models.py:613 msgid "Person" msgstr "Individu" -#: forms.py:224 models.py:558 +#: forms.py:224 models.py:567 msgid "Location" msgstr "Lieu" @@ -192,7 +190,7 @@ msgstr "Lieu" msgid "Upstream finds" msgstr "Mobilier amont" -#: forms.py:247 models.py:345 +#: forms.py:247 models.py:346 msgid "Finds" msgstr "Mobilier" @@ -248,23 +246,23 @@ msgstr "Recherche de document" msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: ishtar_menu.py:29 +#: ishtar_menu.py:34 msgid "Search" msgstr "Recherche" -#: ishtar_menu.py:33 ishtar_menu.py:48 +#: ishtar_menu.py:39 ishtar_menu.py:56 msgid "Creation" msgstr "Ajout" -#: ishtar_menu.py:37 ishtar_menu.py:53 +#: ishtar_menu.py:44 ishtar_menu.py:61 msgid "Modification" msgstr "Modification" -#: ishtar_menu.py:45 +#: ishtar_menu.py:53 msgid "Documentation" msgstr "Documentation" -#: ishtar_menu.py:58 +#: ishtar_menu.py:66 msgid "Deletion" msgstr "Suppression" @@ -280,7 +278,7 @@ msgstr "Recommandation" msgid "Parent material" msgstr "Matériau parent" -#: models.py:51 models.py:289 +#: models.py:51 models.py:290 msgid "Material types" msgstr "Types de matériau" @@ -316,7 +314,7 @@ msgstr "Objet" msgid "Batch" msgstr "Lot" -#: models.py:109 models.py:283 models.py:548 +#: models.py:109 models.py:284 models.py:557 msgid "External ID" msgstr "ID externe" @@ -348,7 +346,7 @@ msgstr "Valeur en cache - ne pas éditer" msgid "Complete ID" msgstr "ID complet" -#: models.py:136 models.py:281 +#: models.py:136 models.py:282 msgid "Base find" msgstr "Mobilier de base" @@ -424,123 +422,123 @@ msgstr "Mobilier de base - Intérêt spécifique" msgid "Base find - Discovery date" msgstr "Mobilier de base - Date de découverte" -#: models.py:285 +#: models.py:286 msgid "Order" msgstr "Ordre" -#: models.py:294 +#: models.py:295 msgid "Type of preservation to consider" msgstr "Mesures de conservation à envisager" -#: models.py:298 +#: models.py:299 msgid "Weight unit" msgstr "Unité de poids" -#: models.py:304 templates/ishtar/sheet_find.html:61 +#: models.py:305 templates/ishtar/sheet_find.html:61 msgid "Upstream treatment" msgstr "Traitement amont" -#: models.py:307 templates/ishtar/sheet_find.html:63 +#: models.py:308 templates/ishtar/sheet_find.html:63 msgid "Downstream treatment" msgstr "Traitement aval" -#: models.py:312 models.py:551 templates/ishtar/sheet_find.html:65 +#: models.py:313 models.py:560 templates/ishtar/sheet_find.html:65 msgid "Container" msgstr "Contenant" -#: models.py:347 +#: models.py:348 msgid "Can view all Find" msgstr "Peut voir tout le Mobilier" -#: models.py:348 +#: models.py:349 msgid "Can view own Find" msgstr "Peut voir son propre Mobilier" -#: models.py:349 +#: models.py:350 msgid "Can add own Find" msgstr "Peut ajouter son propre Mobilier" -#: models.py:350 +#: models.py:351 msgid "Can change own Find" msgstr "Peut changer son propre Mobilier" -#: models.py:351 +#: models.py:352 msgid "Can delete own Find" msgstr "Peut supprimer son propre Mobilier" -#: models.py:356 +#: models.py:357 msgid "FIND" msgstr "MOBILIER" -#: models.py:528 +#: models.py:537 msgid "Find documentation" msgstr "Documentation de mobilier" -#: models.py:529 +#: models.py:538 msgid "Find documentations" msgstr "Documentations de mobilier" -#: models.py:539 +#: models.py:548 msgid "Virtual" msgstr "Virtuel" -#: models.py:543 +#: models.py:552 msgid "Treatment types" msgstr "Types de traitement" -#: models.py:560 +#: models.py:569 msgid "Other location" msgstr "Autre lieu" -#: models.py:570 models.py:592 +#: models.py:579 models.py:601 msgid "Treatment" msgstr "Traitement" -#: models.py:571 +#: models.py:580 msgid "Treatments" msgstr "Traitements" -#: models.py:573 +#: models.py:582 msgid "Can view all Treatment" msgstr "Peut voir tous les Traitements" -#: models.py:574 +#: models.py:583 msgid "Can view own Treatment" msgstr "Peut voir son propre Traitement" -#: models.py:575 +#: models.py:584 msgid "Can add own Treatment" msgstr "Peut ajouter son propre Traitement" -#: models.py:576 +#: models.py:585 msgid "Can change own Treatment" msgstr "Peut changer son propre Traitement" -#: models.py:577 +#: models.py:586 msgid "Can delete own Treatment" msgstr "Peut supprimer son propre Traitement" -#: models.py:583 +#: models.py:592 msgid "by" msgstr "par" -#: models.py:589 +#: models.py:598 msgid "Treatment documentation" msgstr "Documentation d'un traitement" -#: models.py:590 +#: models.py:599 msgid "Treament documentations" msgstr "Documentations des traitements" -#: models.py:603 +#: models.py:612 msgid "Administrative act" msgstr "Acte administratif" -#: models.py:610 +#: models.py:619 msgid "Property" msgstr "Propriété" -#: models.py:611 +#: models.py:620 msgid "Properties" msgstr "Propriétés" @@ -564,11 +562,11 @@ msgstr "Mobilier : modification de documentation associée" msgid "Find: source deletion" msgstr "Mobilier : suppression de mobilier associé" -#: wizards.py:63 +#: wizards.py:61 msgid "Operation" msgstr "Opération" -#: wizards.py:64 +#: wizards.py:62 msgid "Context record" msgstr "Unité d'Enregistrement" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index 702820cc8..f12f83eaa 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -2,27 +2,25 @@ # Copyright (C) 2010-2015 # This file is distributed under the same license as the Ishtar package. # Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015. -# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata +# Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata msgid "" msgstr "" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-09 00:28+0100\n" -"PO-Revision-Date: 2015-11-20 06:39-0500\n" -"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n" -"Language-Team: \n" -"Language: fr\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=UTF-8\n" +"PO-Revision-Date: 2015-12-28 06:35-0500\n" +"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n" +"Language-Team: \n" +"Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.7.3\n" -#: forms.py:69 forms.py:336 forms.py:775 forms.py:797 forms.py:801 -#: models.py:774 templates/ishtar/blocks/window_tables/parcels.html:8 +#: forms.py:69 forms.py:336 forms.py:856 forms.py:878 forms.py:882 +#: models.py:788 templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Parcels" msgstr "Parcelles" -#: forms.py:72 forms.py:188 forms.py:751 models.py:764 +#: forms.py:72 forms.py:188 forms.py:832 models.py:778 #: templates/ishtar/blocks/window_tables/parcels.html:5 #: templates/ishtar/dashboards/dashboard_operation.html:302 #: templates/ishtar/dashboards/dashboard_operation.html:315 @@ -31,18 +29,18 @@ msgstr "Parcelles" msgid "Town" msgstr "Commune" -#: forms.py:74 forms.py:346 forms.py:603 forms.py:982 models.py:148 -#: models.py:580 models.py:762 +#: forms.py:74 forms.py:414 forms.py:680 forms.py:1045 models.py:160 +#: models.py:594 models.py:776 #: templates/ishtar/blocks/window_tables/parcels.html:6 msgid "Year" msgstr "Année" -#: forms.py:77 models.py:765 +#: forms.py:77 models.py:779 #: templates/ishtar/blocks/window_tables/parcels.html:7 msgid "Section" msgstr "Section" -#: forms.py:80 models.py:766 +#: forms.py:80 models.py:780 msgid "Parcel number" msgstr "Numéro de parcelle" @@ -70,208 +68,238 @@ msgstr "exemple : \"2013: XD:1 à 13,24,33 à 39, YD:24\" ou \"AB:24,AC:42\"" msgid "There are identical parcels." msgstr "Il y a des parcelles identiques." -#: forms.py:347 +#: forms.py:345 +msgid "Relation type" +msgstr "Type de relation" + +#: forms.py:348 ishtar_menu.py:33 models.py:239 models.py:494 models.py:519 +#: models.py:533 models.py:585 models.py:775 wizards.py:341 wizards.py:352 +#: templates/ishtar/sheet_operation.html:6 +msgid "Operation" +msgstr "Opération" + +#: forms.py:367 +msgid ":" +msgstr ": " + +#: forms.py:398 +msgid "Current relations" +msgstr "Relations actuelles" + +#: forms.py:400 +msgid "Deleted relations" +msgstr "Relations supprimées" + +#: forms.py:404 templates/ishtar/sheet_operation.html:100 +msgid "Relations" +msgstr "Relations" + +#: forms.py:415 msgid "Numeric reference" msgstr "Identifiant numérique" -#: forms.py:348 +#: forms.py:416 msgid "Name (full text search)" msgstr "Nom (recherche texte intégral)" -#: forms.py:353 forms.py:493 forms.py:588 forms.py:959 models.py:157 +#: forms.py:421 forms.py:567 forms.py:663 forms.py:1022 models.py:169 msgid "Operation type" msgstr "Type d'opération" -#: forms.py:361 models.py:565 +#: forms.py:429 models.py:579 msgid "Scientist in charge" msgstr "Responsable scientifique" -#: forms.py:370 forms.py:581 models.py:145 +#: forms.py:438 forms.py:656 models.py:157 msgid "In charge" msgstr "Responsable" -#: forms.py:372 forms.py:495 forms.py:574 models.py:143 +#: forms.py:440 forms.py:569 forms.py:649 models.py:155 msgid "Operator" msgstr "Opérateur" -#: forms.py:377 forms.py:859 models.py:71 models.py:159 +#: forms.py:445 forms.py:922 models.py:83 models.py:171 msgid "Remains" msgstr "Vestiges" -#: forms.py:378 forms.py:829 forms.py:849 forms.py:856 models.py:69 -#: models.py:164 +#: forms.py:446 forms.py:901 forms.py:919 models.py:81 models.py:176 msgid "Periods" msgstr "Périodes" -#: forms.py:379 +#: forms.py:447 msgid "Started before" msgstr "Commencé avant" -#: forms.py:381 +#: forms.py:449 msgid "Started after" msgstr "Commencé après" -#: forms.py:383 +#: forms.py:451 msgid "Ended before" msgstr "Terminé avant" -#: forms.py:385 +#: forms.py:453 msgid "Ended after" msgstr "Terminé après" -#: forms.py:387 +#: forms.py:455 msgid "Parcel (section/number)" msgstr "Parcelle (section/numéro)" -#: forms.py:388 +#: forms.py:456 msgid "Is open?" msgstr "Est ouvert ?" -#: forms.py:390 forms.py:993 +#: forms.py:458 forms.py:1058 msgid "Created by" msgstr "Créé par" -#: forms.py:395 forms.py:642 models.py:219 +#: forms.py:463 forms.py:719 models.py:234 msgid "Record quality" msgstr "Qualité d'enregistrement" -#: forms.py:396 forms.py:645 models.py:214 +#: forms.py:464 forms.py:673 models.py:188 +msgid "Report processing" +msgstr "Traitement du rapport" + +#: forms.py:466 forms.py:722 models.py:229 msgid "Virtual operation" msgstr "Opération virtuelle" -#: forms.py:420 forms.py:952 views.py:201 +#: forms.py:494 forms.py:1015 views.py:203 msgid "Operation search" msgstr "Recherche d'opérations" -#: forms.py:433 forms.py:954 +#: forms.py:507 forms.py:1017 msgid "You should select an operation." msgstr "Vous devez sélectionner une opération." -#: forms.py:464 +#: forms.py:538 msgid "Associated file" msgstr "Dossier associé" -#: forms.py:468 forms.py:700 models.py:577 wizards.py:75 +#: forms.py:542 forms.py:781 models.py:591 wizards.py:78 msgid "Archaelogical file" msgstr "Dossier" -#: forms.py:473 +#: forms.py:547 msgid "months" msgstr "mois" -#: forms.py:473 +#: forms.py:547 msgid "years" msgstr "années" -#: forms.py:475 models.py:129 +#: forms.py:549 models.py:141 msgid "Creation date" msgstr "Date de création" -#: forms.py:476 +#: forms.py:550 msgid "Start of field work" msgstr "Début du travail de terrain" -#: forms.py:478 +#: forms.py:552 msgid "All" msgstr "Tous" -#: forms.py:479 +#: forms.py:553 msgid "Preventive" msgstr "Préventif" -#: forms.py:480 +#: forms.py:554 msgid "Research" msgstr "Programmée" -#: forms.py:484 +#: forms.py:558 msgid "Slicing" msgstr "Découpage" -#: forms.py:487 +#: forms.py:561 msgid "Department detail" msgstr "Détail par département" -#: forms.py:489 +#: forms.py:563 msgid "Date get from" msgstr "Date obtenue depuis" -#: forms.py:491 +#: forms.py:565 msgid "Preventive/Research" msgstr "Préventif/Programmé" -#: forms.py:497 +#: forms.py:571 msgid "Date after" msgstr "Date après" -#: forms.py:499 +#: forms.py:573 msgid "Date before" msgstr "Date avant" -#: forms.py:501 +#: forms.py:575 msgid "With reports" msgstr "Avec un rapport" -#: forms.py:502 +#: forms.py:576 msgid "With finds" msgstr "Avec du matériel" -#: forms.py:554 forms.py:1033 templates/ishtar/sheet_administrativeact.html:11 +#: forms.py:628 forms.py:1098 templates/ishtar/sheet_administrativeact.html:11 #: templates/ishtar/sheet_operation.html:32 msgid "General" msgstr "Général" -#: forms.py:564 +#: forms.py:639 msgid "Head scientist" msgstr "Responsable scientifique" -#: forms.py:591 models.py:51 models.py:132 models.py:934 +#: forms.py:666 models.py:51 models.py:144 models.py:948 msgid "Start date" msgstr "Date de début" -#: forms.py:593 models.py:134 +#: forms.py:668 models.py:146 msgid "Excavation end date" msgstr "Date de fin de chantier" -#: forms.py:596 models.py:135 +#: forms.py:671 models.py:147 msgid "Report delivery date" msgstr "Date de livraison du rapport" -#: forms.py:600 +#: forms.py:677 msgid "Total surface (m2)" msgstr "Surface totale (m2)" -#: forms.py:608 forms.py:696 models.py:149 models.py:358 +#: forms.py:685 forms.py:777 models.py:161 models.py:373 msgid "Operation code" msgstr "Code de l'opération" -#: forms.py:611 models.py:206 +#: forms.py:688 models.py:221 msgid "Generic name" msgstr "Nom générique" -#: forms.py:613 models.py:205 +#: forms.py:690 models.py:220 msgid "Operator reference" msgstr "Référence de l'opérateur" -#: forms.py:617 +#: forms.py:694 msgid "Associated archaeological sites" msgstr "Sites archéologiques associés" -#: forms.py:640 models.py:207 +#: forms.py:717 models.py:222 msgid "Comment" msgstr "Commentaire" -#: forms.py:666 +#: forms.py:747 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:671 +#: forms.py:752 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." +msgstr "" +"La date de fin de chantier ne peut être antérieure à la date de début." -#: forms.py:686 +#: forms.py:767 #, python-format msgid "" "Operation code already exist for year: %(year)d - use a value bigger than " @@ -280,108 +308,100 @@ 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:690 +#: forms.py:771 msgid "Bad operation code" msgstr "Mauvais code d'opération" -#: forms.py:721 +#: forms.py:802 msgid "Preventive informations - excavation" msgstr "Information archéologie préventive - fouille" -#: forms.py:722 models.py:162 +#: forms.py:803 models.py:174 #: templates/ishtar/dashboards/dashboard_operation.html:495 msgid "Cost (euros)" msgstr "Coût (euros)" -#: forms.py:723 models.py:167 +#: forms.py:804 models.py:179 msgid "Scheduled man-days" msgstr "Jours-hommes prévus" -#: forms.py:725 models.py:170 +#: forms.py:806 models.py:182 msgid "Optional man-days" msgstr "Jours-hommes optionnels" -#: forms.py:727 models.py:173 +#: forms.py:808 models.py:185 msgid "Effective man-days" msgstr "Jours-hommes effectifs" -#: forms.py:737 +#: forms.py:818 msgid "Preventive informations - diagnostic" msgstr "Information archéologie préventive - diagnostic" -#: forms.py:740 models.py:189 +#: forms.py:821 models.py:204 msgid "Prescription on zoning" msgstr "Prescription sur zonage" -#: forms.py:742 models.py:192 +#: forms.py:823 models.py:207 msgid "Prescription on large area" msgstr "Prescription sur une vaste surface" -#: forms.py:745 models.py:194 +#: forms.py:826 models.py:209 msgid "Prescription on geoarchaeological context" msgstr "Prescription sur un contexte géoarchéologique" -#: forms.py:749 forms.py:771 models.py:161 models.py:590 +#: forms.py:830 forms.py:852 models.py:173 models.py:604 msgid "Towns" msgstr "Communes" -#: forms.py:778 models.py:773 models.py:932 +#: forms.py:859 models.py:787 models.py:946 msgid "Parcel" msgstr "Parcelle" -#: forms.py:805 forms.py:825 models.py:45 +#: forms.py:886 models.py:45 msgid "Remain types" msgstr "Types de vestige" -#: forms.py:808 models.py:44 +#: forms.py:890 models.py:44 msgid "Remain type" msgstr "Type de vestige" -#: forms.py:821 -msgid "There are identical remain types" -msgstr "Il y a des types de vestige identiques." - -#: forms.py:832 +#: forms.py:905 msgid "Period" msgstr "Période" -#: forms.py:845 -msgid "There are identical periods" -msgstr "Il y a des périodes identiques." - -#: forms.py:853 models.py:66 +#: forms.py:916 models.py:78 msgid "Reference" msgstr "Référence" -#: forms.py:854 models.py:67 +#: forms.py:917 models.py:79 msgid "Name" msgstr "Nom" -#: forms.py:878 +#: forms.py:941 msgid "This reference already exists." msgstr "Cette référence existe déjà." -#: forms.py:895 +#: forms.py:958 msgid "Associated archaelogical sites" msgstr "Entités archéologiques associées" -#: forms.py:901 ishtar_menu.py:34 ishtar_menu.py:61 ishtar_menu.py:123 +#: forms.py:964 ishtar_menu.py:36 ishtar_menu.py:63 ishtar_menu.py:125 msgid "Search" msgstr "Recherche" -#: forms.py:906 +#: forms.py:969 msgid "Would you like to close this operation?" msgstr "Voulez-vous clore cette opération ?" -#: forms.py:911 +#: forms.py:974 msgid "Would you like to delete this operation?" msgstr "Voulez-vous supprimer cette opération ?" -#: forms.py:920 forms.py:983 models.py:507 models.py:556 +#: forms.py:983 forms.py:1046 models.py:521 models.py:570 msgid "Index" msgstr "Index" -#: forms.py:946 +#: forms.py:1009 #, python-format msgid "" "Index already exists for operation: %(operation)s - use a value bigger than " @@ -390,27 +410,27 @@ msgstr "" "Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur " "plus grande que %(last_val)d" -#: forms.py:958 +#: forms.py:1021 msgid "Operation's town" msgstr "Commune de l'opération" -#: forms.py:961 +#: forms.py:1024 msgid "Operation's year" msgstr "Année de l'opération" -#: forms.py:972 +#: forms.py:1035 msgid "Documentation search" msgstr "Recherche de document" -#: forms.py:974 +#: forms.py:1037 msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: forms.py:987 forms.py:1036 models.py:530 models.py:550 +#: forms.py:1050 forms.py:1101 models.py:544 models.py:564 msgid "Act type" msgstr "Type d'acte" -#: forms.py:991 models.py:481 +#: forms.py:1054 models.py:495 #: templates/ishtar/dashboards/dashboard_operation.html:273 #: templates/ishtar/dashboards/dashboard_operation.html:286 #: templates/ishtar/dashboards/dashboard_operation.html:453 @@ -418,112 +438,111 @@ msgstr "Type d'acte" msgid "Department" msgstr "Département" -#: forms.py:1013 views.py:331 +#: forms.py:1055 +msgid "Object (full text search)" +msgstr "Objet (recherche texte intégral)" + +#: forms.py:1078 views.py:337 msgid "Administrative act search" msgstr "Recherche d'actes administratifs" -#: forms.py:1028 forms.py:1082 forms.py:1149 +#: forms.py:1093 forms.py:1147 forms.py:1214 msgid "You should select an administrative act." msgstr "Vous devez sélectionner un acte administratif." -#: forms.py:1041 models.py:581 +#: forms.py:1106 models.py:595 +#: templates/ishtar/blocks/window_tables/administrativacts.html:8 msgid "Object" msgstr "Objet" -#: forms.py:1044 models.py:578 +#: forms.py:1109 models.py:592 msgid "Signature date" msgstr "Date de signature" -#: forms.py:1059 +#: forms.py:1124 msgid "Would you like to delete this administrative act?" msgstr "Voulez-vous supprimer cet acte administratif ?" -#: forms.py:1064 +#: forms.py:1129 msgid "Template" msgstr "Patron" -#: forms.py:1088 forms.py:1092 +#: forms.py:1153 forms.py:1157 msgid "This document is not intended for this type of act." msgstr "Ce document n'est pas destiné à ce type d'acte." -#: forms.py:1110 +#: forms.py:1175 msgid "Doc generation" msgstr "Génération de document" -#: forms.py:1112 +#: forms.py:1177 msgid "Generate the associated doc?" msgstr "Générer le document associé ?" -#: forms.py:1124 +#: forms.py:1189 msgid "Indexed?" msgstr "Indexé ?" -#: forms.py:1133 ishtar_menu.py:108 views.py:365 +#: forms.py:1198 ishtar_menu.py:110 views.py:371 msgctxt "admin act register" msgid "Register" msgstr "Registre" -#: ishtar_menu.py:31 models.py:224 models.py:480 models.py:505 models.py:519 -#: models.py:571 models.py:761 wizards.py:336 wizards.py:347 -#: templates/ishtar/sheet_operation.html:6 -msgid "Operation" -msgstr "Opération" - -#: ishtar_menu.py:39 +#: ishtar_menu.py:41 msgid "Creation" msgstr "Ajout" -#: ishtar_menu.py:44 ishtar_menu.py:71 ishtar_menu.py:135 +#: ishtar_menu.py:46 ishtar_menu.py:73 ishtar_menu.py:136 msgid "Modification" msgstr "Modification" -#: ishtar_menu.py:49 +#: ishtar_menu.py:51 msgid "Closing" msgstr "Clôture" -#: ishtar_menu.py:53 ishtar_menu.py:76 ishtar_menu.py:141 +#: ishtar_menu.py:55 ishtar_menu.py:78 ishtar_menu.py:141 msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:58 +#: ishtar_menu.py:60 msgid "Documentation" msgstr "Documentation" -#: ishtar_menu.py:66 ishtar_menu.py:129 widgets.py:52 +#: ishtar_menu.py:68 ishtar_menu.py:131 widgets.py:52 msgid "Add" msgstr "Ajout" -#: ishtar_menu.py:85 +#: ishtar_menu.py:87 msgid "Dashboard" msgstr "Tableau de bord" -#: ishtar_menu.py:88 +#: ishtar_menu.py:90 msgid "General informations" msgstr "Informations générales" -#: ishtar_menu.py:92 models.py:225 +#: ishtar_menu.py:94 models.py:240 #: templates/ishtar/dashboards/dashboard_operation.html:9 msgid "Operations" msgstr "Opérations" -#: ishtar_menu.py:104 +#: ishtar_menu.py:106 msgid "Administrative Act" msgstr "Acte administratif" -#: ishtar_menu.py:119 models.py:597 +#: ishtar_menu.py:121 models.py:611 #: templates/ishtar/sheet_administrativeact.html:6 msgid "Administrative act" msgstr "Acte administratif" -#: ishtar_menu.py:147 +#: ishtar_menu.py:146 msgid "Documents" msgstr "Documents" -#: models.py:50 models.py:1396 +#: models.py:50 models.py:66 models.py:1410 msgid "Order" msgstr "Ordre" -#: models.py:52 models.py:935 +#: models.py:52 models.py:949 msgid "End date" msgstr "Date de fin" @@ -539,347 +558,355 @@ msgstr "Type de période" msgid "Types Period" msgstr "Types de période" -#: models.py:75 +#: models.py:69 +msgid "Report state" +msgstr "État de rapport" + +#: models.py:70 +msgid "Report states" +msgstr "États de rapports" + +#: models.py:87 msgid "Archaeological site" msgstr "Entité archéologique" -#: models.py:76 models.py:211 +#: models.py:88 models.py:226 msgid "Archaeological sites" msgstr "Entités archéologiques" -#: models.py:79 +#: models.py:91 msgid "Can view all Archaeological site" msgstr "Peut voir toutes les Entités archéologiques" -#: models.py:81 +#: models.py:93 msgid "Can view own Archaeological site" msgstr "Peut voir ses propres Entités archéologiques" -#: models.py:83 +#: models.py:95 msgid "Can add own Archaeological site" msgstr "Peut ajouter ses propres Entités archéologique" -#: models.py:85 +#: models.py:97 msgid "Can change own Archaeological site" msgstr "Peut changer ses propres Entités archéologiques" -#: models.py:87 +#: models.py:99 msgid "Can delete own Archaeological site" msgstr "Peut supprimer ses propres Entités archéologiques" -#: models.py:117 +#: models.py:129 msgid "Not documented" msgstr "Non documenté" -#: models.py:118 +#: models.py:130 msgid "Arbitrary" msgstr "Arbitraire" -#: models.py:119 +#: models.py:131 msgid "Reliable" msgstr "Fiable" -#: models.py:131 +#: models.py:143 msgid "Closing date" msgstr "Date de clôture" -#: models.py:138 +#: models.py:150 msgid "In charge scientist" msgstr "Responsable scientifique" -#: models.py:154 models.py:757 +#: models.py:166 models.py:771 msgid "File" msgstr "Dossier" -#: models.py:158 +#: models.py:170 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:208 +#: models.py:223 msgid "Cached name" msgstr "Nom en cache" -#: models.py:216 +#: models.py:231 msgid "" "If checked, it means that this operation have not been officialy registered." msgstr "" "Si coché, cela signifie que cette opération n'a pas été officiellement " "enregistrée." -#: models.py:227 +#: models.py:242 msgid "Can view all Operation" msgstr "Peut voir toutes les Opérations" -#: models.py:228 +#: models.py:243 msgid "Can view own Operation" msgstr "Peut voir sa propre Opération" -#: models.py:229 +#: models.py:244 msgid "Can add own Operation" msgstr "Peut ajouter sa propre Opération" -#: models.py:230 +#: models.py:245 msgid "Can change own Operation" msgstr "Peut changer sa propre Opération" -#: models.py:231 +#: models.py:246 msgid "Can delete own Operation" msgstr "Peut supprimer sa propre Opération" -#: models.py:232 +#: models.py:247 msgid "Can close Operation" msgstr "Peut fermer une Opération" -#: models.py:255 +#: models.py:270 msgid "OPE" msgstr "OPE" -#: models.py:315 +#: models.py:330 msgid "Intercommunal" msgstr "Intercommunal" -#: models.py:341 models.py:518 +#: models.py:356 models.py:532 msgid "Archaeological file" msgstr "Dossier archéologique" -#: models.py:342 +#: models.py:357 msgid "Code patriarche" msgstr "Code patriarche" -#: models.py:384 +#: models.py:399 msgid "This operation code already exists for this year" msgstr "Ce code d'opération existe déjà pour cette année." -#: models.py:453 +#: models.py:465 msgid "Inverse relation" msgstr "Relation inverse" -#: models.py:457 +#: models.py:469 msgid "Operation relation type" msgstr "Type de relation entre opérations" -#: models.py:458 +#: models.py:470 msgid "Operation relation types" msgstr "Types de relation entre opérations" -#: models.py:470 +#: models.py:483 msgid "Operation record relation" msgstr "Relation entre opérations" -#: models.py:471 +#: models.py:484 msgid "Operation record relations" msgstr "Relations entre opérations" -#: models.py:491 +#: models.py:505 msgid "Operation documentation" msgstr "Documentation d'une opération" -#: models.py:492 +#: models.py:506 msgid "Operation documentations" msgstr "Documentations des opérations" -#: models.py:495 +#: models.py:509 msgid "Can view all Operation source" msgstr "Peut voir toutes les Sources des opérations" -#: models.py:497 +#: models.py:511 msgid "Can view own Operation source" msgstr "Peut voir sa propre Source d'opération" -#: models.py:499 +#: models.py:513 msgid "Can add own Operation source" msgstr "Peut ajouter sa propre Source d'opération" -#: models.py:501 +#: models.py:515 msgid "Can change own Operation source" msgstr "Peut changer sa propre Source d'opération" -#: models.py:503 +#: models.py:517 msgid "Can delete own Operation source" msgstr "Peut supprimer sa propre Source d'opération" -#: models.py:521 +#: models.py:535 msgid "Intended to" msgstr "Destiné à" -#: models.py:523 +#: models.py:537 msgid "Code" msgstr "Code" -#: models.py:526 +#: models.py:540 msgid "Associated template" msgstr "Patron associé" -#: models.py:527 +#: models.py:541 msgid "Indexed" msgstr "Indexé" -#: models.py:531 +#: models.py:545 msgid "Act types" msgstr "Types d'acte" -#: models.py:554 +#: models.py:568 msgid "Person in charge of the operation" msgstr "Responsable d'opération" -#: models.py:560 +#: models.py:574 msgid "Archaeological preventive operator" msgstr "Opérateur d'archéologie préventive" -#: models.py:568 +#: models.py:582 msgid "Signatory" msgstr "Signataire" -#: models.py:587 +#: models.py:601 msgid "Departments" msgstr "Départements" -#: models.py:588 +#: models.py:602 msgid "Cached values get from associated departments" msgstr "Valeur en cache des départements associés" -#: models.py:591 +#: models.py:605 msgid "Cached values get from associated towns" msgstr "Valeur en cache des communes associées" -#: models.py:598 +#: models.py:612 msgid "Administrative acts" msgstr "Actes administratifs" -#: models.py:601 +#: models.py:615 msgid "Can view all Administrative act" msgstr "Peut voir tous les Actes administratifs" -#: models.py:603 +#: models.py:617 msgid "Can view own Administrative act" msgstr "Peut voir son propre Acte administratif" -#: models.py:605 +#: models.py:619 msgid "Can add own Administrative act" msgstr "Peut ajouter son propre Acte administratif" -#: models.py:607 +#: models.py:621 msgid "Can change own Administrative act" msgstr "Peut changer son propre Acte administratif" -#: models.py:609 +#: models.py:623 msgid "Can delete own Administrative act" msgstr "Peut supprimer son propre Acte administratif" -#: models.py:618 +#: models.py:632 #: templates/ishtar/blocks/window_tables/administrativacts.html:5 msgid "Ref." msgstr "Réf." -#: models.py:701 +#: models.py:715 msgid "This index already exists for this year" msgstr "Cet index existe déjà pour cette année." -#: models.py:768 +#: models.py:782 msgid "External ID" msgstr "ID externe" -#: models.py:770 +#: models.py:784 msgid "Address - Locality" msgstr "Adresse - Lieu-dit" -#: models.py:930 +#: models.py:944 msgid "Owner" msgstr "Propriétaire" -#: models.py:938 +#: models.py:952 msgid "Parcel owner" msgstr "Propriétaire de parcelle" -#: models.py:939 +#: models.py:953 msgid "Parcel owners" msgstr "Propriétaires de parcelle" -#: models.py:965 +#: models.py:979 msgid "Recorded" msgstr "Enregistré" -#: models.py:966 +#: models.py:980 msgid "Effective" msgstr "Effectif" -#: models.py:967 +#: models.py:981 msgid "Active" msgstr "Actif" -#: models.py:968 +#: models.py:982 msgid "Field completed" msgstr "Terrain achevé" -#: models.py:969 +#: models.py:983 msgid "Associated report" msgstr "Rapport associé" -#: models.py:970 +#: models.py:984 msgid "Closed" msgstr "Fermé" -#: models.py:971 +#: models.py:985 msgid "Documented and closed" msgstr "Documenté et clos" -#: models.py:1397 +#: models.py:1411 msgid "Is preventive" msgstr "Préventif" -#: models.py:1400 +#: models.py:1414 msgid "Operation type old" msgstr "Type d'opération - ancien" -#: models.py:1401 +#: models.py:1415 msgid "Operation types old" msgstr "Types d'opération - ancien" -#: views.py:221 +#: views.py:224 msgid "New operation" msgstr "Nouvelle opération" -#: views.py:252 +#: views.py:258 msgid "Operation modification" msgstr "Modification d'une opération" -#: views.py:292 +#: views.py:298 msgid "Operation closing" msgstr "Clôture de l'opération" -#: views.py:298 +#: views.py:304 msgid "Operation deletion" msgstr "Suppression d'une opération" -#: views.py:303 +#: views.py:309 msgid "Operation: source search" msgstr "Opération : recherche de documentation associée" -#: views.py:311 +#: views.py:317 msgid "Operation: source creation" msgstr "Opération : nouvelle documentation associée" -#: views.py:319 +#: views.py:325 msgid "Operation: source modification" msgstr "Opération : modification d'une documentation associée" -#: views.py:325 +#: views.py:331 msgid "Operation: source deletion" msgstr "Opération : suppression d'une documentation associée" -#: views.py:340 +#: views.py:346 msgid "Operation: new administrative act" msgstr "Opération : nouvel acte administratif" -#: views.py:350 +#: views.py:356 msgid "Operation: administrative act modification" msgstr "Opération : modification d'un acte administratif" -#: views.py:359 +#: views.py:365 msgid "Operation: administrative act deletion" msgstr "Opération : suppression d'un acte administratif" -#: wizards.py:200 +#: wizards.py:203 msgid "" "Warning: No Archaelogical File is provided. If you have forget it return to " "the first step." @@ -917,7 +944,7 @@ msgid "Internal reference:" msgstr "Référence interne :" #: templates/ishtar/sheet_administrativeact.html:15 -#: templates/ishtar/sheet_operation.html:53 +#: templates/ishtar/sheet_operation.html:55 msgid "Type:" msgstr "Type :" @@ -939,7 +966,7 @@ msgid "Archaeological preventive operator:" msgstr "Opérateur d'archéologie préventive :" #: templates/ishtar/sheet_administrativeact.html:21 -#: templates/ishtar/sheet_operation.html:70 +#: templates/ishtar/sheet_operation.html:73 msgid "Associated file:" msgstr "Dossier associé :" @@ -948,7 +975,7 @@ msgid "Associated operation:" msgstr "Opération associée :" #: templates/ishtar/sheet_administrativeact.html:24 -#: templates/ishtar/sheet_operation.html:54 +#: templates/ishtar/sheet_operation.html:56 msgid "Surface:" msgstr "Surface :" @@ -1029,87 +1056,91 @@ msgstr "Date de clôture :" msgid "by" msgstr "par" -#: templates/ishtar/sheet_operation.html:55 +#: templates/ishtar/sheet_operation.html:57 msgid "Cost:" msgstr "Coût :" -#: templates/ishtar/sheet_operation.html:56 +#: templates/ishtar/sheet_operation.html:58 msgid "Duration:" msgstr "Durée :" -#: templates/ishtar/sheet_operation.html:56 +#: templates/ishtar/sheet_operation.html:58 msgid "Day" msgstr "Jour" -#: templates/ishtar/sheet_operation.html:58 +#: templates/ishtar/sheet_operation.html:61 msgid "Remains:" msgstr "Vestiges :" -#: templates/ishtar/sheet_operation.html:59 +#: templates/ishtar/sheet_operation.html:62 msgid "Periods:" msgstr "Périodes :" -#: templates/ishtar/sheet_operation.html:73 +#: templates/ishtar/sheet_operation.html:76 msgid "Town planning service:" msgstr "Service instructeur :" -#: templates/ishtar/sheet_operation.html:74 +#: templates/ishtar/sheet_operation.html:77 msgid "Permit type:" msgstr "Type de permis :" -#: templates/ishtar/sheet_operation.html:75 +#: templates/ishtar/sheet_operation.html:78 msgid "Permit reference:" msgstr "Référence du permis :" -#: templates/ishtar/sheet_operation.html:76 +#: templates/ishtar/sheet_operation.html:79 msgid "General contractor organisation:" msgstr "Organisation de l'aménageur :" -#: templates/ishtar/sheet_operation.html:77 +#: templates/ishtar/sheet_operation.html:80 msgid "General contractor:" msgstr "Aménageur :" -#: templates/ishtar/sheet_operation.html:81 +#: templates/ishtar/sheet_operation.html:84 msgid "Comment:" msgstr "Commentaire :" -#: templates/ishtar/sheet_operation.html:83 +#: templates/ishtar/sheet_operation.html:86 msgid "Localisation" msgstr "Localisation" -#: templates/ishtar/sheet_operation.html:84 +#: templates/ishtar/sheet_operation.html:87 msgid "Towns:" msgstr "Communes :" -#: templates/ishtar/sheet_operation.html:86 +#: templates/ishtar/sheet_operation.html:89 msgid "Main address:" msgstr "Adresse des terrains :" -#: templates/ishtar/sheet_operation.html:87 +#: templates/ishtar/sheet_operation.html:90 msgid "Complement:" msgstr "Complément :" -#: templates/ishtar/sheet_operation.html:88 +#: templates/ishtar/sheet_operation.html:91 msgid "Postal code:" msgstr "Code postal :" -#: templates/ishtar/sheet_operation.html:96 +#: templates/ishtar/sheet_operation.html:105 +msgid "Details" +msgstr "Détails" + +#: templates/ishtar/sheet_operation.html:110 msgid "Associated parcels" msgstr "Parcelles associées" -#: templates/ishtar/sheet_operation.html:100 +#: templates/ishtar/sheet_operation.html:114 msgid "Administrativ acts" msgstr "Actes administratifs" -#: templates/ishtar/sheet_operation.html:104 +#: templates/ishtar/sheet_operation.html:118 msgid "Document from this operation" msgstr "Documents de cette opération" -#: templates/ishtar/sheet_operation.html:109 +#: templates/ishtar/sheet_operation.html:123 msgid "Context records" msgstr "Unités d'Enregistrement" -#: templates/ishtar/sheet_operation.html:121 +#: templates/ishtar/sheet_operation.html:135 msgid "Finds" msgstr "Mobilier" @@ -1122,7 +1153,7 @@ msgstr "Type" msgid "Date" msgstr "Date" -#: templates/ishtar/blocks/window_tables/administrativacts.html:16 +#: templates/ishtar/blocks/window_tables/administrativacts.html:18 msgid "No administrative act associated" msgstr "Aucun acte administratif associé" diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index a29c155a4..58522e76a 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -2,18 +2,16 @@ # Copyright (C) 2010-2011 # This file is distributed under the same license as the Ishtar package. # Étienne Loks <etienne.loks at peacefrogs net>, 2010-2011. -# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata +# Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata msgid "" msgstr "" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-09 00:28+0100\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=UTF-8\n" "PO-Revision-Date: \n" "Last-Translator: Étienne Loks <etienne.loks at peacefrogs net>\n" "Language-Team: \n" "Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.7.3\n" @@ -85,7 +83,7 @@ msgstr "Vous devez sélectionner un contenant." msgid "Add a new container" msgstr "Ajouter un nouveau contenant." -#: forms.py:132 ishtar_menu.py:31 views.py:94 +#: forms.py:132 ishtar_menu.py:32 views.py:94 msgid "Packaging" msgstr "Conditionnement" @@ -101,7 +99,7 @@ msgstr "Date" msgid "Packaged finds" msgstr "Mobilier conditionné" -#: ishtar_menu.py:29 +#: ishtar_menu.py:30 msgid "Find" msgstr "Mobilier" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index 7562a53be..0330ff950 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -2,18 +2,16 @@ # Copyright (C) 2010-2015 # This file is distributed under the same license as the Ishtar package. # Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015. -# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata +# Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata msgid "" msgstr "" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-12-09 00:28+0100\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=UTF-8\n" "PO-Revision-Date: 2015-12-08 06:26-0500\n" -"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n" +"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n" "Language-Team: \n" "Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.7.3\n" @@ -29,7 +27,7 @@ msgstr "courriel" msgid "Archaeological file" msgstr "Dossier" -#: context_processors.py:34 models.py:1110 +#: context_processors.py:34 models.py:1133 msgid "Operation" msgstr "Opération" @@ -157,7 +155,7 @@ msgstr "\"%(value)s\" n'est pas dans %(values)s" msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "Entrez un nom correct composé de lettres, espaces et tirets." -#: forms.py:71 forms_common.py:419 +#: forms.py:71 forms_common.py:420 msgid "Confirm" msgstr "Confirmation" @@ -181,15 +179,14 @@ msgstr "Vous devez sélectionner un élément." msgid "Add a new item" msgstr "Ajouter un nouvel élément" -#: forms.py:171 models.py:970 +#: forms.py:171 models.py:993 msgid "Template" msgstr "Patron" #: forms_common.py:39 forms_common.py:57 forms_common.py:169 -#: forms_common.py:268 forms_common.py:273 models.py:1036 models.py:2168 +#: forms_common.py:269 forms_common.py:274 models.py:1059 models.py:2202 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:17 -#: templates/ishtar/sheet_person.html:30 msgid "Town" msgstr "Commune" @@ -211,70 +208,64 @@ 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:66 forms_common.py:621 ishtar_menu.py:40 models.py:1895 -#: models.py:2007 models.py:2061 templates/ishtar/sheet_person.html:6 +#: forms_common.py:66 forms_common.py:622 ishtar_menu.py:42 models.py:1918 +#: models.py:2041 models.py:2095 templates/ishtar/sheet_person.html:6 msgid "Person" msgstr "Individu" -#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:58 models.py:1824 +#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1847 #: templates/ishtar/sheet_organization.html:6 msgid "Organization" msgstr "Organisation" #: forms_common.py:160 forms_common.py:196 forms_common.py:226 -#: forms_common.py:259 models.py:969 models.py:1158 models.py:1375 -#: models.py:1818 models.py:1885 models.py:2154 +#: forms_common.py:259 models.py:992 models.py:1181 models.py:1398 +#: models.py:1841 models.py:1908 models.py:2188 #: templates/ishtar/sheet_organization.html:12 #: templates/ishtar/sheet_organization.html:25 -#: templates/ishtar/sheet_person.html:26 msgid "Name" msgstr "Nom" -#: forms_common.py:161 models.py:1105 models.py:1506 +#: forms_common.py:161 models.py:1128 models.py:1529 msgid "Organization type" msgstr "Type d'organisation" -#: forms_common.py:163 forms_common.py:262 models.py:1031 +#: forms_common.py:163 forms_common.py:263 models.py:1054 #: templates/ishtar/sheet_organization.html:14 -#: templates/ishtar/sheet_person.html:27 msgid "Address" msgstr "Adresse" -#: forms_common.py:165 forms_common.py:264 models.py:1032 +#: forms_common.py:165 forms_common.py:265 models.py:1055 #: templates/ishtar/sheet_organization.html:15 -#: templates/ishtar/sheet_person.html:28 msgid "Address complement" msgstr "Complément d'adresse" -#: forms_common.py:167 forms_common.py:266 models.py:1034 +#: forms_common.py:167 forms_common.py:267 models.py:1057 #: templates/ishtar/sheet_organization.html:16 -#: templates/ishtar/sheet_person.html:29 msgid "Postal code" msgstr "Code postal" -#: forms_common.py:170 forms_common.py:269 models.py:1037 +#: forms_common.py:170 forms_common.py:270 models.py:1060 msgid "Country" msgstr "Pays" -#: forms_common.py:172 forms_common.py:228 forms_common.py:271 -#: forms_common.py:375 models.py:1043 +#: forms_common.py:172 forms_common.py:228 forms_common.py:272 +#: forms_common.py:376 models.py:1066 msgid "Email" msgstr "Courriel" -#: forms_common.py:173 forms_common.py:272 models.py:1039 +#: forms_common.py:173 forms_common.py:273 models.py:1062 #: templates/ishtar/sheet_organization.html:18 -#: templates/ishtar/sheet_person.html:31 msgid "Phone" msgstr "Téléphone" -#: forms_common.py:174 models.py:1040 +#: forms_common.py:174 models.py:1063 #: templates/ishtar/sheet_organization.html:19 -#: templates/ishtar/sheet_person.html:32 msgid "Mobile phone" msgstr "Téléphone portable" -#: forms_common.py:197 forms_common.py:229 models.py:1529 models.py:1820 -#: models.py:2102 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105 +#: forms_common.py:197 forms_common.py:229 models.py:1552 models.py:1843 +#: models.py:2136 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105 #: templates/sheet_ope.html:126 templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:27 #: templates/ishtar/sheet_person.html:56 @@ -286,7 +277,7 @@ msgstr "Type" msgid "Organization search" msgstr "Recherche d'organisations" -#: forms_common.py:227 forms_common.py:257 models.py:1883 +#: forms_common.py:227 forms_common.py:257 models.py:1906 #: templates/ishtar/sheet_organization.html:26 msgid "Surname" msgstr "Prénom" @@ -299,160 +290,160 @@ msgstr "Recherche d'individus" msgid "Identity" msgstr "Identité" -#: forms_common.py:256 forms_common.py:573 models.py:1881 models.py:2099 +#: forms_common.py:256 forms_common.py:574 models.py:1904 models.py:2133 #: templates/sheet_ope.html:104 templates/ishtar/sheet_person.html:55 #: templates/ishtar/blocks/window_tables/documents.html:5 msgid "Title" msgstr "Titre" -#: forms_common.py:261 models.py:1887 +#: forms_common.py:261 models.py:1910 msgid "Raw name" msgstr "Nom brut" -#: forms_common.py:276 +#: forms_common.py:277 msgid "Current organization" msgstr "Organisation actuelle" -#: forms_common.py:324 forms_common.py:354 forms_common.py:358 models.py:1865 +#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:1888 msgid "Person type" msgstr "Type d'individu" -#: forms_common.py:369 forms_common.py:374 +#: forms_common.py:370 forms_common.py:375 msgid "Account" msgstr "Compte" -#: forms_common.py:378 wizards.py:1029 +#: forms_common.py:379 wizards.py:1141 msgid "New password" msgstr "Nouveau mot de passe" -#: forms_common.py:381 +#: forms_common.py:382 msgid "New password (confirmation)" msgstr "Nouveau mot de passe (confirmation)" -#: forms_common.py:400 +#: forms_common.py:401 msgid "Your password and confirmation password do not match." msgstr "La vérification du mot de passe a échoué." -#: forms_common.py:405 +#: forms_common.py:406 msgid "You must provide a correct password." msgstr "Vous devez fournir un mot de passe correct." -#: forms_common.py:413 +#: forms_common.py:414 msgid "This username already exists." msgstr "Ce nom d'utilisateur existe déjà." -#: forms_common.py:420 +#: forms_common.py:421 msgid "Send the new password by email?" msgstr "Envoyer le nouveau mot de passe par courriel ?" -#: forms_common.py:429 forms_common.py:442 models.py:2169 +#: forms_common.py:430 forms_common.py:443 models.py:2203 msgid "Towns" msgstr "Communes" -#: forms_common.py:439 +#: forms_common.py:440 msgid "There are identical towns." msgstr "Il y a des communes identiques." -#: forms_common.py:523 +#: forms_common.py:524 msgid "Only one choice can be checked." msgstr "Seul un choix peut être coché." -#: forms_common.py:571 +#: forms_common.py:572 msgid "Documentation informations" msgstr "Information sur le document" -#: forms_common.py:575 forms_common.py:596 models.py:1507 models.py:2082 +#: forms_common.py:576 forms_common.py:597 models.py:1530 models.py:2116 msgid "Source type" msgstr "Type de source" -#: forms_common.py:577 models.py:2113 +#: forms_common.py:578 models.py:2147 msgid "Numerical ressource (web address)" msgstr "Ressource numérique (adresse web)" -#: forms_common.py:578 models.py:2115 +#: forms_common.py:579 models.py:2149 msgid "Receipt date" msgstr "Date de réception" -#: forms_common.py:580 models.py:1656 models.py:2117 +#: forms_common.py:581 models.py:1679 models.py:2151 msgid "Creation date" msgstr "Date de création" -#: forms_common.py:593 forms_common.py:614 forms_common.py:647 models.py:2066 +#: forms_common.py:594 forms_common.py:615 forms_common.py:648 models.py:2100 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "Auteur" -#: forms_common.py:606 +#: forms_common.py:607 msgid "Would you like to delete this documentation?" msgstr "Voulez-vous supprimer ce document ?" -#: forms_common.py:622 models.py:1508 models.py:2056 models.py:2063 +#: forms_common.py:623 models.py:1531 models.py:2090 models.py:2097 msgid "Author type" msgstr "Type d'auteur" -#: forms_common.py:640 +#: forms_common.py:641 msgid "Author selection" msgstr "Sélection d'auteur" -#: forms_common.py:654 +#: forms_common.py:655 msgid "There are identical authors." msgstr "Il y a des auteurs identiques." -#: forms_common.py:658 models.py:2067 models.py:2109 +#: forms_common.py:659 models.py:2101 models.py:2143 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Authors" msgstr "Auteurs" -#: ishtar_menu.py:28 +#: ishtar_menu.py:29 msgid "Administration" msgstr "Administration" -#: ishtar_menu.py:30 views.py:135 +#: ishtar_menu.py:31 views.py:135 msgid "Account management" msgstr "Gestion des comptes" -#: ishtar_menu.py:33 models.py:753 views.py:1075 +#: ishtar_menu.py:34 models.py:776 views.py:1077 msgid "Global variables" msgstr "Variables globales" -#: ishtar_menu.py:38 +#: ishtar_menu.py:39 msgid "Directory" msgstr "Annuaire" -#: ishtar_menu.py:42 ishtar_menu.py:60 templates/blocks/JQueryJqGrid.html:4 +#: ishtar_menu.py:45 ishtar_menu.py:69 templates/blocks/JQueryJqGrid.html:4 msgid "Search" msgstr "Recherche" -#: ishtar_menu.py:45 ishtar_menu.py:64 templates/ishtar/import_list.html:15 +#: ishtar_menu.py:49 ishtar_menu.py:74 templates/ishtar/import_list.html:15 msgid "Creation" msgstr "Ajout" -#: ishtar_menu.py:48 ishtar_menu.py:68 +#: ishtar_menu.py:53 ishtar_menu.py:79 msgid "Modification" msgstr "Modification" -#: ishtar_menu.py:51 ishtar_menu.py:72 templates/ishtar/merge.html:5 +#: ishtar_menu.py:57 ishtar_menu.py:84 templates/ishtar/merge.html:5 msgid "Merge" msgstr "Fusion" -#: ishtar_menu.py:54 ishtar_menu.py:75 models.py:1693 widgets.py:110 +#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1716 widgets.py:110 msgid "Delete" msgstr "Suppression" -#: ishtar_menu.py:82 models.py:1667 +#: ishtar_menu.py:96 models.py:1690 msgid "Imports" msgstr "Imports" -#: ishtar_menu.py:84 views.py:1083 +#: ishtar_menu.py:99 views.py:1085 msgid "New import" msgstr "Nouvel import" -#: ishtar_menu.py:87 views.py:1097 +#: ishtar_menu.py:103 views.py:1099 msgid "Current imports" msgstr "Imports en cours" -#: ishtar_menu.py:90 +#: ishtar_menu.py:107 msgid "Old imports" msgstr "Anciens imports" @@ -468,7 +459,7 @@ msgstr "Un élément sélectionné n'est pas valide." msgid "This item already exist." msgstr "Cet élément existe déjà." -#: models.py:256 models.py:1004 models.py:1016 +#: models.py:256 models.py:1027 models.py:1039 msgid "Label" msgstr "Libellé" @@ -476,613 +467,613 @@ msgstr "Libellé" msgid "Textual ID" msgstr "Identifiant textuel" -#: models.py:260 models.py:1402 models.py:2124 +#: models.py:260 models.py:1425 models.py:2158 msgid "Comment" msgstr "Commentaire" -#: models.py:261 models.py:973 +#: models.py:261 models.py:996 msgid "Available" msgstr "Disponible" -#: models.py:451 models.py:1448 +#: models.py:474 models.py:1471 msgid "Key" msgstr "Clé" -#: models.py:457 +#: models.py:480 msgid "Key specific to an import" msgstr "Clé spécifique à un import" -#: models.py:528 +#: models.py:551 msgid "Last editor" msgstr "Dernier éditeur" -#: models.py:531 +#: models.py:554 msgid "Creator" msgstr "Créateur" -#: models.py:664 models.py:2180 +#: models.py:687 models.py:2214 msgid "Order" msgstr "Ordre" -#: models.py:665 +#: models.py:688 msgid "Symmetrical" msgstr "Symétrique" -#: models.py:678 +#: models.py:701 msgid "Cannot have symmetrical and an inverse_relation" msgstr "Ne pas être symétrique et avoir une relation inverse" -#: models.py:746 +#: models.py:769 msgid "Variable name" msgstr "Nom de la variable" -#: models.py:747 +#: models.py:770 msgid "Description of the variable" msgstr "Description de la variable" -#: models.py:749 models.py:1449 +#: models.py:772 models.py:1472 msgid "Value" msgstr "Valeur" -#: models.py:752 +#: models.py:775 msgid "Global variable" msgstr "Variables globales" -#: models.py:874 models.py:904 +#: models.py:897 models.py:927 msgid "Total" msgstr "Total" -#: models.py:881 models.py:1005 models.py:1017 +#: models.py:904 models.py:1028 models.py:1040 #: templates/ishtar/dashboards/dashboard_main_detail.html:135 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 msgid "Number" msgstr "Nombre" -#: models.py:968 +#: models.py:991 msgid "Administrative Act" msgstr "Acte administratif" -#: models.py:972 +#: models.py:995 msgid "Associated object" msgstr "Objet associé" -#: models.py:976 +#: models.py:999 msgid "Document template" msgstr "Patron de document" -#: models.py:977 +#: models.py:1000 msgid "Document templates" msgstr "Patrons de documents" -#: models.py:1008 models.py:1018 models.py:1651 +#: models.py:1031 models.py:1041 models.py:1674 msgid "State" msgstr "État" -#: models.py:1022 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1045 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "Département" -#: models.py:1023 +#: models.py:1046 msgid "Departments" msgstr "Départements" -#: models.py:1051 +#: models.py:1074 msgid "Merge key" msgstr "Clé de fusion" -#: models.py:1106 +#: models.py:1129 msgid "Organization types" msgstr "Types d'organisation" -#: models.py:1111 +#: models.py:1134 msgid "Parcels" msgstr "Parcelles" -#: models.py:1113 +#: models.py:1136 msgid "Operation source" msgstr "Documentation de l'opération" -#: models.py:1119 views.py:890 views.py:947 +#: models.py:1142 views.py:892 views.py:949 msgid "Archaeological files" msgstr "Dossiers archéologiques" -#: models.py:1126 views.py:893 views.py:957 +#: models.py:1149 views.py:895 views.py:959 msgid "Context records" msgstr "Unité d'Enregistrement" -#: models.py:1129 views.py:895 views.py:962 +#: models.py:1152 views.py:897 views.py:964 msgid "Finds" msgstr "Mobilier" -#: models.py:1160 +#: models.py:1183 msgid "Slug" msgstr "Identifiant texte" -#: models.py:1162 models.py:1334 models.py:1376 models.py:2123 +#: models.py:1185 models.py:1357 models.py:1399 models.py:2157 #: templates/sheet_ope.html:128 msgid "Description" msgstr "Description" -#: models.py:1164 templates/ishtar/dashboards/dashboard_main.html:26 +#: models.py:1187 templates/ishtar/dashboards/dashboard_main.html:26 msgid "Users" msgstr "Utilisateurs" -#: models.py:1166 +#: models.py:1189 msgid "Associated model" msgstr "Modèle associé" -#: models.py:1168 +#: models.py:1191 msgid "Is template" msgstr "Est un patron" -#: models.py:1169 +#: models.py:1192 msgid "Unicity keys (separator \";\")" msgstr "Clés d'unicité (séparateur « ; »)" -#: models.py:1173 +#: models.py:1196 msgid "Importer - Type" msgstr "Importeur - Type" -#: models.py:1174 +#: models.py:1197 msgid "Importer - Types" msgstr "Importeur - Types" -#: models.py:1264 +#: models.py:1287 msgid "Importer - Default" msgstr "Importeur - Par défaut" -#: models.py:1265 +#: models.py:1288 msgid "Importer - Defaults" msgstr "Importeur - Par défaut" -#: models.py:1300 +#: models.py:1323 msgid "Importer - Default value" msgstr "Importeur - Valeur par défaut" -#: models.py:1301 +#: models.py:1324 msgid "Importer - Default values" msgstr "Importeur - Valeurs par défaut" -#: models.py:1333 +#: models.py:1356 msgid "Column number" msgstr "Numéro de colonne" -#: models.py:1336 +#: models.py:1359 msgid "Required" msgstr "Requis" -#: models.py:1339 +#: models.py:1362 msgid "Importer - Column" msgstr "Importeur - Colonne" -#: models.py:1340 +#: models.py:1363 msgid "Importer - Columns" msgstr "Importeur - Colonnes" -#: models.py:1360 +#: models.py:1383 msgid "Field name" msgstr "Nom du champ" -#: models.py:1362 models.py:1396 +#: models.py:1385 models.py:1419 msgid "Force creation of new item" msgstr "Forcer la création de nouveaux éléments" -#: models.py:1364 models.py:1398 +#: models.py:1387 models.py:1421 msgid "Concatenate with existing" msgstr "Concaténer avec l'existant" -#: models.py:1366 models.py:1400 +#: models.py:1389 models.py:1423 msgid "Concatenate character" msgstr "Caractère de concaténation" -#: models.py:1370 +#: models.py:1393 msgid "Importer - Duplicate field" msgstr "Importeur - Champ dupliqué" -#: models.py:1371 +#: models.py:1394 msgid "Importer - Duplicate fields" msgstr "Importeur - Champs dupliqués" -#: models.py:1378 +#: models.py:1401 msgid "Regular expression" msgstr "Expression régulière" -#: models.py:1381 +#: models.py:1404 msgid "Importer - Regular expression" msgstr "Importeur - Expression régulière" -#: models.py:1382 +#: models.py:1405 msgid "Importer - Regular expressions" msgstr "Importeur - Expressions régulières" -#: models.py:1405 +#: models.py:1428 msgid "Importer - Target" msgstr "Importeur - Cible" -#: models.py:1406 +#: models.py:1429 msgid "Importer - Targets" msgstr "Importeur - Cibles" -#: models.py:1430 views.py:306 +#: models.py:1453 views.py:306 msgid "True" msgstr "Oui" -#: models.py:1431 views.py:308 +#: models.py:1454 views.py:308 msgid "False" msgstr "Non" -#: models.py:1450 +#: models.py:1473 msgid "Is set" msgstr "Est défini" -#: models.py:1457 +#: models.py:1480 msgid "Importer - Target key" msgstr "Importeur - Rapprochement" -#: models.py:1458 +#: models.py:1481 msgid "Importer - Targets keys" msgstr "Importeur - Rapprochements" -#: models.py:1509 models.py:2094 models.py:2105 +#: models.py:1532 models.py:2128 models.py:2139 msgid "Format" msgstr "Format" -#: models.py:1510 models.py:2184 +#: models.py:1533 models.py:2218 msgid "Operation type" msgstr "Type d'opération" -#: models.py:1511 +#: models.py:1534 msgid "Period" msgstr "Périodes" -#: models.py:1512 +#: models.py:1535 msgid "Unit" msgstr "Unité" -#: models.py:1513 +#: models.py:1536 msgid "Material" msgstr "Matériau" -#: models.py:1515 +#: models.py:1538 msgid "Conservatory state" msgstr "État de conservation" -#: models.py:1516 +#: models.py:1539 msgid "Preservation type" msgstr "Type de conservation" -#: models.py:1517 +#: models.py:1540 msgid "Object type" msgstr "Type d'objet" -#: models.py:1519 +#: models.py:1542 msgid "Identification type" msgstr "Type d'identification" -#: models.py:1525 +#: models.py:1548 msgid "Integer" msgstr "Entier" -#: models.py:1526 +#: models.py:1549 msgid "Float" msgstr "Nombre à virgule" -#: models.py:1527 +#: models.py:1550 msgid "String" msgstr "Chaine de caractères" -#: models.py:1528 templates/sheet_ope.html:86 +#: models.py:1551 templates/sheet_ope.html:86 msgid "Date" msgstr "Date" -#: models.py:1530 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:1553 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/sheet_person.html:54 #: templates/ishtar/dashboards/dashboard_main_detail.html:120 msgid "Year" msgstr "Année" -#: models.py:1531 +#: models.py:1554 msgid "String to boolean" msgstr "Chaîne de caractère vers booléen" -#: models.py:1532 +#: models.py:1555 msgctxt "filesystem" msgid "File" msgstr "Fichier" -#: models.py:1533 +#: models.py:1556 msgid "Unknow type" msgstr "Type inconnu" -#: models.py:1549 +#: models.py:1572 msgid "4 digit year. e.g.: \"2015\"" msgstr "Année à 4 chiffres. Exemple : « 2015 »" -#: models.py:1550 +#: models.py:1573 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "Année à 4 chiffres/mois/jour. Exemple : « 2015/02/04 »" -#: models.py:1551 +#: models.py:1574 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "Jour/mois/année à 4 chiffres. Exemple : « 04/02/2015 »" -#: models.py:1561 +#: models.py:1584 msgid "Options" msgstr "Options" -#: models.py:1563 +#: models.py:1586 msgid "Split character(s)" msgstr "Caractère de séparation" -#: models.py:1567 +#: models.py:1590 msgid "Importer - Formater type" msgstr "Importeur - Type de mise en forme" -#: models.py:1568 +#: models.py:1591 msgid "Importer - Formater types" msgstr "Importeur - Types de mise en forme" -#: models.py:1615 templates/ishtar/dashboards/dashboard_main_detail.html:61 +#: models.py:1638 templates/ishtar/dashboards/dashboard_main_detail.html:61 msgid "Created" msgstr "Créé" -#: models.py:1616 +#: models.py:1639 msgid "Analyse in progress" msgstr "Analyse en cours" -#: models.py:1617 +#: models.py:1640 msgid "Analysed" msgstr "Analysé" -#: models.py:1618 +#: models.py:1641 msgid "Import pending" msgstr "Import en attente" -#: models.py:1619 +#: models.py:1642 msgid "Import in progress" msgstr "Import en cours" -#: models.py:1620 +#: models.py:1643 msgid "Finished with errors" msgstr "Finis avec des erreurs" -#: models.py:1621 +#: models.py:1644 msgid "Finished" msgstr "Terminé" -#: models.py:1622 +#: models.py:1645 msgid "Archived" msgstr "Archivé" -#: models.py:1634 +#: models.py:1657 msgid "Imported file" msgstr "Fichier importé" -#: models.py:1637 +#: models.py:1660 msgid "Associated images (zip file)" msgstr "Images associées (fichier zip)" -#: models.py:1639 +#: models.py:1662 msgid "Encoding" msgstr "Codage" -#: models.py:1641 +#: models.py:1664 msgid "Skip lines" msgstr "Nombre de lignes d'entête" -#: models.py:1642 templates/ishtar/import_list.html:47 +#: models.py:1665 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "Fichier erreur" -#: models.py:1645 +#: models.py:1668 msgid "Result file" msgstr "Fichier résultant" -#: models.py:1648 templates/ishtar/import_list.html:53 +#: models.py:1671 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "Fichier de correspondance" -#: models.py:1654 +#: models.py:1677 msgid "Conservative import" msgstr "Import conservateur" -#: models.py:1659 +#: models.py:1682 msgid "End date" msgstr "Date de fin" -#: models.py:1661 +#: models.py:1684 msgid "Seconds remaining" msgstr "Secondes restantes" -#: models.py:1666 +#: models.py:1689 msgid "Import" msgstr "Import" -#: models.py:1683 +#: models.py:1706 msgid "Analyse" msgstr "Analyser" -#: models.py:1685 models.py:1688 +#: models.py:1708 models.py:1711 msgid "Re-analyse" msgstr "Analyser de nouveau " -#: models.py:1686 +#: models.py:1709 msgid "Launch import" msgstr "Lancer l'import" -#: models.py:1689 +#: models.py:1712 msgid "Re-import" msgstr "re-import" -#: models.py:1690 +#: models.py:1713 msgid "Archive" msgstr "Archiver" -#: models.py:1692 +#: models.py:1715 msgid "Unarchive" msgstr "Dé-archiver" -#: models.py:1825 +#: models.py:1848 msgid "Organizations" msgstr "Organisations" -#: models.py:1827 +#: models.py:1850 msgid "Can view all Organization" msgstr "Peut voir toutes les Organisations" -#: models.py:1828 +#: models.py:1851 msgid "Can view own Organization" msgstr "Peut voir sa propre Organisation" -#: models.py:1829 +#: models.py:1852 msgid "Can add own Organization" msgstr "Peut ajouter sa propre Organisation" -#: models.py:1831 +#: models.py:1854 msgid "Can change own Organization" msgstr "Peut changer sa propre Organisation" -#: models.py:1833 +#: models.py:1856 msgid "Can delete own Organization" msgstr "Peut supprimer sa propre Organisation" -#: models.py:1861 +#: models.py:1884 msgid "Groups" msgstr "Groupes" -#: models.py:1866 +#: models.py:1889 msgid "Person types" msgstr "Types d'individu" -#: models.py:1873 +#: models.py:1896 msgid "Mr" msgstr "M." -#: models.py:1874 +#: models.py:1897 msgid "Miss" msgstr "Mlle" -#: models.py:1875 +#: models.py:1898 msgid "Mr and Miss" msgstr "M. et Mme" -#: models.py:1876 +#: models.py:1899 msgid "Mrs" msgstr "Mme" -#: models.py:1877 +#: models.py:1900 msgid "Doctor" msgstr "Dr." -#: models.py:1889 models.py:1929 +#: models.py:1912 models.py:1952 msgid "Types" msgstr "Types" -#: models.py:1892 +#: models.py:1915 msgid "Is attached to" msgstr "Est rattaché à" -#: models.py:1896 +#: models.py:1919 msgid "Persons" msgstr "Individus" -#: models.py:1898 +#: models.py:1921 msgid "Can view all Person" msgstr "Peut voir toutes les Personnes" -#: models.py:1899 +#: models.py:1922 msgid "Can view own Person" msgstr "Peut voir sa propre Personne" -#: models.py:1900 +#: models.py:1923 msgid "Can add own Person" msgstr "Peut ajouter sa propre Personne" -#: models.py:1901 +#: models.py:1924 msgid "Can change own Person" msgstr "Peut changer sa propre Personne" -#: models.py:1902 +#: models.py:1925 msgid "Can delete own Person" msgstr "Peut supprimer sa propre Personne" -#: models.py:2011 +#: models.py:2045 msgid "Ishtar user" msgstr "Utilisateur d'Ishtar" -#: models.py:2012 +#: models.py:2046 msgid "Ishtar users" msgstr "Utilisateurs d'Ishtar" -#: models.py:2057 +#: models.py:2091 msgid "Author types" msgstr "Types d'auteur" -#: models.py:2083 +#: models.py:2117 msgid "Source types" msgstr "Types de source" -#: models.py:2088 +#: models.py:2122 msgid "Support type" msgstr "Type de support" -#: models.py:2089 +#: models.py:2123 msgid "Support types" msgstr "Types de support" -#: models.py:2095 +#: models.py:2129 msgid "Formats" msgstr "Formats" -#: models.py:2100 +#: models.py:2134 msgid "External ID" msgstr "Identifiant extern" -#: models.py:2103 +#: models.py:2137 msgid "Support" msgstr "Support" -#: models.py:2107 +#: models.py:2141 msgid "Scale" msgstr "Échelle" -#: models.py:2118 +#: models.py:2152 msgid "Item number" msgstr "Numéro d'élément" -#: models.py:2119 +#: models.py:2153 msgid "Ref." msgstr "Réf." -#: models.py:2121 +#: models.py:2155 msgid "Internal reference" msgstr "Référence interne" -#: models.py:2125 +#: models.py:2159 msgid "Additional information" msgstr "Informations supplémentaires" -#: models.py:2155 +#: models.py:2189 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:2156 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2190 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "Localisation" -#: models.py:2181 +#: models.py:2215 msgid "Is preventive" msgstr "Est du préventif" -#: models.py:2185 +#: models.py:2219 msgid "Operation types" msgstr "Types d'opération" -#: models.py:2211 +#: models.py:2245 msgid "Preventive" msgstr "Préventif" -#: models.py:2212 +#: models.py:2246 msgid "Research" msgstr "Recherche" @@ -1114,33 +1105,33 @@ msgstr "Modification d'une organisation" msgid "Organization deletion" msgstr "Suppression d'une organisation" -#: views.py:592 templates/base.html:80 +#: views.py:594 templates/base.html:80 #: templates/ishtar/sheet_organization.html:35 msgid "Details" msgstr "Détails" -#: views.py:820 views.py:873 +#: views.py:822 views.py:875 msgid "Operation not permitted." msgstr "Opération non permise." -#: views.py:822 +#: views.py:824 #, python-format msgid "New %s" msgstr "Nouveau %s" -#: views.py:891 views.py:951 +#: views.py:893 views.py:953 msgid "Operations" msgstr "Opérations" -#: views.py:1144 templates/ishtar/import_list.html:43 +#: views.py:1146 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "Associer les éléments non rapprochés" -#: views.py:1159 +#: views.py:1161 msgid "Delete import" msgstr "Suppression de l'import" -#: views.py:1218 views.py:1234 +#: views.py:1220 views.py:1236 msgid "Corporation manager" msgstr "Représentant de la personne morale" @@ -1160,15 +1151,15 @@ msgstr "Chargement..." msgid "Remove" msgstr "Enlever" -#: wizards.py:242 templates/ishtar/import_delete.html:20 +#: wizards.py:313 templates/ishtar/import_delete.html:20 msgid "Yes" msgstr "Oui" -#: wizards.py:244 +#: wizards.py:315 msgid "No" msgstr "Non" -#: wizards.py:1085 +#: wizards.py:1198 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "[%(app_name)s] Ajout - modification du compte" @@ -1680,7 +1671,7 @@ msgstr "Dossiers archéologiques associés" msgid "Link" msgstr "Lien" -#: templates/ishtar/sheet_person.html:68 +#: templates/ishtar/sheet_person.html:69 msgid "No document associated to this person" msgstr "Pas de document associé à cette personne" @@ -1787,6 +1778,7 @@ msgstr "Voulez-vous sauver ces informations ?" #: templates/ishtar/wizard/default_wizard.html:35 #: templates/ishtar/wizard/parcels_wizard.html:24 +#: templates/ishtar/wizard/relations_wizard.html:23 #: templates/ishtar/wizard/search.html:20 #: templates/ishtar/wizard/towns_wizard.html:19 msgid "Add/Modify" @@ -1808,6 +1800,7 @@ msgstr "" "dossier." #: templates/ishtar/wizard/parcels_wizard.html:20 +#: templates/ishtar/wizard/relations_wizard.html:20 msgid "all" msgstr "tout" |