diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-08 10:10:17 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-08 10:10:17 +0200 |
commit | 7bd76cc2e394405c425362327d16c06ccb324c23 (patch) | |
tree | 031abd0c456c71eec97926555208a92bf179eb50 | |
parent | 57933b3f3b157d043a526ae5bc27b4df49c4c110 (diff) | |
parent | c75b9f076f8893a50713e75cffde1b757c320ebe (diff) | |
download | Ishtar-7bd76cc2e394405c425362327d16c06ccb324c23.tar.bz2 Ishtar-7bd76cc2e394405c425362327d16c06ccb324c23.zip |
Merge branch 'v0.9' into wheezy
23 files changed, 1084 insertions, 534 deletions
diff --git a/CHANGES.md b/CHANGES.md index 6105ace32..9c6110f62 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,20 +1,32 @@ Ishtar changelog ================ +0.97.8 (2016-09-08) +------------------- + +### Features ### + +- Many improvement and cleaning on sheet layout + +### Bug fixes ### + +- Context records: related parcel are now kept when you modify operation +- Wizards: fix file initialization when navigating between steps + 0.97.7 (2016-09-06) ------------------- ### Features ### -Context record: can change operation -Context record: display operation code in label -Person: add salutation field +- Context record: can change operation +- Context record: display operation code in label +- Person: add salutation field ### Bug fixes ### -Prevent circular save on import -Fix person creation with new title management -Fix context records creation +- Prevent circular save on import +- Fix person creation with new title management +- Fix context records creation 0.97.6 (2016-09-05) ------------------- diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index daaf5f5ed..d468e3a3c 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -138,10 +138,12 @@ class RecordFormGeneral(ManageOldType, forms.Form): validators=[validators.MaxLengthValidator(200)]) description = forms.CharField(label=_(u"Description"), widget=forms.Textarea, required=False) - length = forms.IntegerField(label=_(u"Length (m)"), required=False) - width = forms.IntegerField(label=_(u"Width (m)"), required=False) - thickness = forms.IntegerField(label=_(u"Thickness (m)"), required=False) - depth = forms.IntegerField(label=_(u"Depth (m)"), required=False) + comment = forms.CharField(label=_(u"General comment"), + widget=forms.Textarea, required=False) + length = forms.FloatField(label=_(u"Length (m)"), required=False) + width = forms.FloatField(label=_(u"Width (m)"), required=False) + thickness = forms.FloatField(label=_(u"Thickness (m)"), required=False) + depth = forms.FloatField(label=_(u"Depth (m)"), required=False) unit = forms.ChoiceField(label=_("Unit"), required=False, choices=[]) location = forms.CharField( label=_(u"Location"), widget=forms.Textarea, diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index cf2246375..cf80fff0a 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -12,7 +12,7 @@ msgid "Operation" msgstr "" #: forms.py:59 forms.py:137 models.py:132 -#: templates/ishtar/sheet_contextrecord.html:64 +#: templates/ishtar/sheet_contextrecord.html:65 msgid "ID" msgstr "" @@ -36,7 +36,7 @@ msgstr "" msgid "Search within operation relations" msgstr "" -#: forms.py:77 forms.py:228 models.py:49 +#: forms.py:77 forms.py:230 models.py:49 msgid "Period" msgstr "" @@ -52,7 +52,7 @@ msgstr "" msgid "Search within relations" msgstr "" -#: forms.py:111 forms.py:333 views.py:118 +#: forms.py:111 forms.py:335 views.py:118 msgid "Context record search" msgstr "" @@ -65,164 +65,168 @@ msgid "General" msgstr "" #: forms.py:136 models.py:118 models.py:128 -#: templates/ishtar/sheet_contextrecord.html:68 +#: templates/ishtar/sheet_contextrecord.html:69 msgid "Parcel" msgstr "" -#: forms.py:139 models.py:133 templates/ishtar/sheet_contextrecord.html:31 -#: templates/ishtar/sheet_contextrecord.html:67 +#: forms.py:139 models.py:133 templates/ishtar/sheet_contextrecord.html:25 +#: templates/ishtar/sheet_contextrecord.html:68 msgid "Description" msgstr "" -#: forms.py:141 models.py:138 +#: forms.py:141 models.py:134 +msgid "General comment" +msgstr "" + +#: forms.py:143 models.py:138 msgid "Length (m)" msgstr "" -#: forms.py:142 models.py:139 +#: forms.py:144 models.py:139 msgid "Width (m)" msgstr "" -#: forms.py:143 models.py:140 +#: forms.py:145 models.py:140 msgid "Thickness (m)" msgstr "" -#: forms.py:144 models.py:142 +#: forms.py:146 models.py:142 msgid "Depth (m)" msgstr "" -#: forms.py:145 models.py:150 +#: forms.py:147 models.py:150 msgid "Unit" msgstr "" -#: forms.py:147 models.py:144 +#: forms.py:149 models.py:144 msgid "Location" msgstr "" -#: forms.py:150 +#: forms.py:152 msgid "Image" msgstr "" -#: forms.py:151 +#: forms.py:153 #, python-format msgid "" "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</" "p>" msgstr "" -#: forms.py:217 +#: forms.py:219 msgid "This ID already exists for this operation." msgstr "" -#: forms.py:223 forms.py:250 models.py:60 +#: forms.py:225 forms.py:252 models.py:60 msgid "Dating" msgstr "" -#: forms.py:229 models.py:50 +#: forms.py:231 models.py:50 msgid "Start date" msgstr "" -#: forms.py:230 models.py:51 models.py:137 +#: forms.py:232 models.py:51 models.py:137 msgid "End date" msgstr "" -#: forms.py:231 models.py:54 +#: forms.py:233 models.py:54 msgid "Quality" msgstr "" -#: forms.py:232 models.py:36 models.py:52 +#: forms.py:234 models.py:36 models.py:52 msgid "Dating type" msgstr "" -#: forms.py:259 ishtar_menu.py:29 models.py:356 +#: forms.py:261 ishtar_menu.py:29 models.py:356 msgid "Context record" msgstr "" -#: forms.py:280 +#: forms.py:282 msgid "Relations" msgstr "" -#: forms.py:284 forms.py:294 models.py:155 -#: templates/ishtar/sheet_contextrecord.html:42 +#: forms.py:286 forms.py:296 models.py:155 +#: templates/ishtar/sheet_contextrecord.html:37 msgid "Interpretation" msgstr "" -#: forms.py:288 +#: forms.py:290 msgid "Comments on dating" msgstr "" -#: forms.py:290 models.py:152 +#: forms.py:292 models.py:152 msgid "Has furniture?" msgstr "" -#: forms.py:292 models.py:154 +#: forms.py:294 models.py:154 msgid "Filling" msgstr "" -#: forms.py:296 models.py:175 +#: forms.py:298 models.py:175 msgid "Activity" msgstr "" -#: forms.py:298 models.py:173 +#: forms.py:300 models.py:173 msgid "Identification" msgstr "" -#: forms.py:300 models.py:158 +#: forms.py:302 models.py:158 msgid "TAQ" msgstr "" -#: forms.py:301 models.py:162 +#: forms.py:303 models.py:162 msgid "Estimated TAQ" msgstr "" -#: forms.py:303 models.py:165 +#: forms.py:305 models.py:165 msgid "TPQ" msgstr "" -#: forms.py:304 models.py:169 +#: forms.py:306 models.py:169 msgid "Estimated TPQ" msgstr "" -#: forms.py:319 +#: forms.py:321 msgid "Operation search" msgstr "" -#: forms.py:321 +#: forms.py:323 msgid "You should select an operation." msgstr "" -#: forms.py:326 +#: forms.py:328 msgid "Would you like to delete this context record?" msgstr "" -#: forms.py:335 +#: forms.py:337 msgid "You should select a context record." msgstr "" -#: forms.py:340 +#: forms.py:342 msgid "Year of the operation" msgstr "" -#: forms.py:342 +#: forms.py:344 msgid "Numeric reference" msgstr "" -#: forms.py:348 +#: forms.py:350 msgid "Town of the operation" msgstr "" -#: forms.py:350 +#: forms.py:352 msgid "Period of the context record" msgstr "" -#: forms.py:352 +#: forms.py:354 msgid "Unit type of the context record" msgstr "" -#: forms.py:365 +#: forms.py:367 msgid "Documentation search" msgstr "" -#: forms.py:367 +#: forms.py:369 msgid "You should select a document." msgstr "" @@ -310,10 +314,6 @@ msgstr "" msgid "External ID is set automatically" msgstr "" -#: models.py:134 -msgid "Comment" -msgstr "" - #: models.py:135 msgid "Date d'ouverture" msgstr "" @@ -387,7 +387,7 @@ msgstr "" msgid "Inverse relation" msgstr "" -#: models.py:326 templates/ishtar/sheet_contextrecord.html:63 +#: models.py:326 templates/ishtar/sheet_contextrecord.html:64 msgid "Relation type" msgstr "" @@ -443,177 +443,79 @@ msgstr "" msgid "Complete ID:" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:16 -#: templates/ishtar/sheet_contextrecord.html:94 -msgid "Patriarche OA code not yet recorded!" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:17 +#: templates/ishtar/sheet_contextrecord.html:14 msgid "Temporary ID:" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:20 -msgid "Creation date:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:21 -msgid "Created by:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:23 -#: templates/ishtar/sheet_contextrecord.html:106 -msgid "Type:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:25 -msgid "Chronology:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:27 -msgid "Place:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:28 -msgid "Parcel:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:33 -msgid "Description:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:34 -msgid "Comment:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:35 -msgid "Length (m):" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:36 -msgid "Width (m):" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:37 -msgid "Depth (m):" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:38 -msgid "Thickness (m):" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:44 -msgid "Activity:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:45 -msgid "Identification:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:46 -msgid "Interpretation:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:50 +#: templates/ishtar/sheet_contextrecord.html:49 msgid "Datations" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:51 -msgid "TAQ:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:52 -msgid "Estimated TAQ:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:53 -msgid "TPQ:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:54 -msgid "Estimated TPQ:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:58 +#: templates/ishtar/sheet_contextrecord.html:59 msgid "In relation with" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:65 +#: templates/ishtar/sheet_contextrecord.html:66 msgid "Type" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:66 +#: templates/ishtar/sheet_contextrecord.html:67 msgid "Chronology" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:88 -msgid "Operation summary" -msgstr "" - #: templates/ishtar/sheet_contextrecord.html:89 -msgid "Year:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:92 -msgid "Patriarche OA code:" +msgid "Operation summary" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:97 -msgid "Head scientist:" +#: templates/ishtar/sheet_contextrecord.html:91 +msgid "Patriarche OA code not yet recorded!" msgstr "" #: templates/ishtar/sheet_contextrecord.html:98 msgid "State:" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:100 +#: templates/ishtar/sheet_contextrecord.html:98 msgid "Active file" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:102 +#: templates/ishtar/sheet_contextrecord.html:98 msgid "Closed operation" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:103 +#: templates/ishtar/sheet_contextrecord.html:100 msgid "Closing date:" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:104 +#: templates/ishtar/sheet_contextrecord.html:100 msgid "by" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:107 -msgid "Remains:" -msgstr "" - #: templates/ishtar/sheet_contextrecord.html:108 -msgid "Periods:" -msgstr "" - -#: templates/ishtar/sheet_contextrecord.html:111 msgid "Localisation" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:112 +#: templates/ishtar/sheet_contextrecord.html:109 msgid "Towns:" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:113 +#: templates/ishtar/sheet_contextrecord.html:110 msgid "Related operation:" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:116 +#: templates/ishtar/sheet_contextrecord.html:112 msgid "No operation linked to this context unit!" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:119 +#: templates/ishtar/sheet_contextrecord.html:115 msgid "Document from this context record" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:124 +#: templates/ishtar/sheet_contextrecord.html:120 msgid "Finds" msgstr "" -#: templates/ishtar/sheet_contextrecord.html:129 +#: templates/ishtar/sheet_contextrecord.html:125 msgid "Documents from associated finds" msgstr "" diff --git a/archaeological_context_records/migrations/0006_clean_parcels.py b/archaeological_context_records/migrations/0006_clean_parcels.py new file mode 100644 index 000000000..cd38a1deb --- /dev/null +++ b/archaeological_context_records/migrations/0006_clean_parcels.py @@ -0,0 +1,674 @@ +# -*- 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): + Parcel = orm['archaeological_operations.Parcel'] + q = orm['archaeological_context_records.ContextRecord'].objects + lost = [] + many = [] + updated = [] + to_delete = [] + for cr in q.all(): + if not cr.parcel: + continue + if cr.parcel.operation or cr.parcel.associated_file: + continue + q = Parcel.objects.filter(year=cr.parcel.year, town=cr.parcel.town, + section=cr.parcel.section, + parcel_number=cr.parcel.parcel_number, + public_domain=cr.parcel.public_domain, + operation=cr.operation) + if not q.count(): + lost.append(cr) + cr.parcel.operation = cr.operation + cr.parcel.save() + continue + if q.count() > 1: + many.append(cr) + continue + updated.append(cr) + old_parcel = cr.parcel.pk + cr.parcel = q.all()[0] + cr.save() + to_delete.append(old_parcel) + + print(len(updated), 'updated') + print(len(lost), 'lost') + print(len(many), 'many') + print(len(to_delete), 'to_delete') + + for pk in set(to_delete): + try: + Parcel.objects.get(pk=pk).delete() + except Parcel.DoesNotExist: + print(pk, "already deleted") + q = Parcel.objects.filter(operation__isnull=True, + associated_file__isnull=True) + print(q.count(), 'to_delete_bis') + for p in q.all(): + p.delete() + + def backwards(self, orm): + pass + + 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'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + '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_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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']"}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'related_context_records': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.ContextRecord']", 'null': 'True', 'through': "orm['archaeological_context_records.RecordRelations']", 'blank': 'True'}), + 'taq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'taq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.contextrecordsource': { + 'Meta': {'object_name': 'ContextRecordSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contextrecordsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', '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'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'taq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'taq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.identificationtype': { + 'Meta': {'ordering': "('order', 'label')", 'object_name': 'IdentificationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.recordrelations': { + 'Meta': {'object_name': 'RecordRelations'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']"}), + 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"}) + }, + 'archaeological_context_records.relationtype': { + 'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']", 'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.unit': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Unit'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.Unit']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_files.file': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), + 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}), + 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}), + 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), + 'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}), + 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}), + 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_files.filetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'FileType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_files.permittype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_files.saisinetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'code_patriarche': ('django.db.models.fields.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'}), + '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_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', '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']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'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'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.titletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['archaeological_context_records'] diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 637c386f0..a98f7792a 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -131,7 +131,7 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): related_name='context_record') label = models.CharField(_(u"ID"), max_length=200) description = models.TextField(_(u"Description"), blank=True, null=True) - comment = models.TextField(_(u"Comment"), blank=True, null=True) + comment = models.TextField(_(u"General comment"), blank=True, null=True) opening_date = models.DateField(_(u"Date d'ouverture"), blank=True, null=True) closing_date = models.DateField(_(u"End date"), blank=True, null=True) diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html index 493a00f1b..2c2bf98fe 100644 --- a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html @@ -10,49 +10,50 @@ <a href='{{item.image.url}}' rel="prettyPhoto" title="{{item.label}}" class='photo'><img src='{{item.thumbnail.url}}'/></a> {% endif%} -{% if item.operation.code_patriarche %} -<p><label>{%trans "Complete ID:"%}</label> -{% else %} -<p class='alert'><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <label>{%trans "Patriarche OA code not yet recorded!"%}</label></p> -<p><label>{%trans "Temporary ID:"%}</label> -{%endif%} -<span class='value'>{{item.full_label}}</span></p> -<p><label>{%trans "Creation date:"%}</label> <span class='value'>{{ item.creation_date }}</span></p> -<p><label>{%trans "Created by:"%}</label> <span class='value'>{{ item.history_creator.ishtaruser.full_label }}</span></p> -{%if item.unit %} -<p><label>{% trans "Type:" %}</label> <span class='value'>{{ item.unit }}</span></p> -{%endif%} -<p><label>{% trans "Chronology:" %}</label> <span class='value'>{{ item.datings.all|join:", " }}</span></p> +<ul class='form-flex'> +<li><label>{% if item.operation.code_patriarche %}{%trans "Complete ID:"%}{% else %}{%trans "Temporary ID:"%}{% endif %}</label><span class='value'>{{item.full_label}}</span></li> +{% field_li "Creation date" item.creation_date %} +{% field_li "Created by" item.history_creator.ishtaruser.full_label %} +{% field_li "Type" item.unit %} +{% field_li_multiple "Chronology" item.datings %} +{% field_li "Town" item.parcel.town %} +{% field_li "Parcel" item.parcel.short_label %} +</ul> {% field "Comment on datings" item.datings_comment "<pre>" "</pre>" %} -<p><label>{% trans "Place:" %}</label> <span class='value'>{{ item.parcel.town }}</span></p> -<p><label>{% trans "Parcel:" %}</label> <span class='value'>{{ item.parcel.short_label }}</span></p> {% if item.description or item.lenght or item.width or item.depth or item.thickness or item.comment %} <h3>{% trans "Description"%}</h3> - -<p><label>{% trans "Description:" %}</label> <span class='value'>{{ item.description }}</span></p> -{% if item.comment %}<p><label>{% trans "Comment:" %}</label> <span class='value'>{{ item.comment }}</span></p>{% endif %} -{% if item.lenght %}<p><label>{% trans "Length (m):" %}</label> <span class='value'>{{ item.length }}</span></p>{%endif%} -{% if item.width %}<p><label>{% trans "Width (m):" %}</label> <span class='value'>{{ item.width }}</span></p>{%endif%} -{% if item.depth %}<p><label>{% trans "Depth (m):" %}</label> <span class='value'>{{ item.depth }}</span></p>{%endif%} -{% if item.width %}<p><label>{% trans "Thickness (m):" %}</label> <span class='value'>{{ item.thickness }}</span></p>{%endif%} +{% field "Description" item.description "<pre>" "</pre>" %} +{% field "Comment" item.comment "<pre>" "</pre>" %} +<ul class='form-flex'> +{% field_li "Length (m)" item.lenght %} +{% field_li "Width (m)" item.width %} +{% field_li "Depth (m)" item.depth %} +{% field_li "Thickness (m)" item.thickness %} +</ul> {% endif %} {% if item.activity or item.identification or item.interpretation %} <h3>{% trans "Interpretation"%}</h3> -{% if item.activity %}<p><label>{% trans "Activity:" %}</label> <span class='value'>{{ item.activity }}</span></p>{%endif%} -{% if item.identification %}<p><label>{% trans "Identification:" %}</label> <span class='value'>{{ item.identification }}</span></p>{%endif%} -{% if item.interpretation %}<p><label>{% trans "Interpretation:" %}</label> <span class='value'>{{ item.interpretation }}</span></p>{%endif%} +<ul class='form-flex'> +{% field_li "Activity" item.activity %} +{% field_li "Identification" item.identification %} +{% field_li "Has furniture?" item.has_furniture %} +</ul> +{% field "Filling" item.filling "<pre>" "</pre>" %} +{% field "Interpretation" item.interpretation "<pre>" "</pre>" %} {% endif %} {% if item.taq or item.taq_estimated or item.tpq or item.tpq_estimated %} <h3>{% trans "Datations"%}</h3> -{% if item.taq %}<p><label>{% trans "TAQ:" %}</label> <span class='value'>{{ item.taq }}</span></p>{%endif%} -{% if item.taq_estimated %}<p><label>{% trans "Estimated TAQ:" %}</label> <span class='value'>{{ item.taq_estimated }}</span></p>{%endif%} -{% if item.tpq %}<p><label>{% trans "TPQ:" %}</label> <span class='value'>{{ item.tpq }}</span></p>{%endif%} -{% if item.tpq_estimated %}<p><label>{% trans "Estimated TPQ:" %}</label> <span class='value'>{{ item.tpq_estimated }}</span></p>{%endif%} -{%endif%} +<ul class='form-flex'> +{% field_li "TAQ" item.taq %} +{% field_li "Estimated TAQ" item.taq_estimated %} +{% field_li "TPQ" item.tpq %} +{% field_li "Estimated TPQ" item.tpq_estimated %} +</ul> +{% endif %} {% if item.right_relations.count %} <h3>{% trans "In relation with"%}</h3> @@ -86,33 +87,28 @@ {% if item.operation %} <h3>{% trans "Operation summary"%}</h3> -<p><label>{%trans "Year:"%}</label> <span class='value'>{{ item.operation.year }}</span></p> -{% field "Numerical reference" item.operation.operation_code %} -{% if item.operation.code_patriarche %} -<p><label>{%trans "Patriarche OA code:"%}</label> -<span class='value'>{{ item.operation.code_patriarche }}</span></p> -{% else %}<p class='alert'><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <label>{%trans "Patriarche OA code not yet recorded!"%}</label></p> -{%endif%} -{#<p><label>{%trans "Operation's name:"%}</label><span class='value'>{{ item.operation.internal_reference }}</span></p>#} -{% if item.operation.scientist %}<p><label>{%trans "Head scientist:"%}</label> <span class='value'>{{ item.operation.scientist.full_label }} <a href='#' onclick='load_window("{% url show-person item.operation.scientist.pk ''%}");'><i class="fa fa-info-circle" aria-hidden="true"></i></a></span></p>{%endif%} -<p><label>{%trans "State:"%}</label> -{% if item.operation.is_active %} -<span class='value'>{%trans "Active file"%}</span></p> -{% else %} -<span class='value'>{%trans "Closed operation"%}</span></p> -<p><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.operation.closing.date }} -<strong>{%trans "by" %}</strong> {{ item.operation.closing.user }}</span></p> +{% if not item.operation.code_patriarche %} +<p class='alert'><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <label>{%trans "Patriarche OA code not yet recorded!"%}</label></p> +{% endif %} +<ul class='form-flex'> +{% field_li "Year" item.operation.year %} +{% field_li "Numerical reference" item.operation.operation_code %} +{% field_li "Patriarche OA code" item.operation.code_patriarche %} +{% field_li_detail "Head scientist" item.operation.scientist %} +<li><label>{%trans "State:"%}</label><span class='value'>{% if item.operation.is_active %}{% trans "Active file" %}{% else %}{%trans "Closed operation" %}{% endif %}</span></li> +{% if not item.operation.is_active %} +<li><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.operation.closing.date }} <strong>{%trans "by" %}</strong> {{ item.operation.closing.user }}</span></li> {% endif %} -<p><label>{%trans "Type:"%}</label> <span class='value'>{{ item.operation.operation_type }}</span></p> -<p><label>{%trans "Remains:"%}</label> <span class='value'>{{ item.operation.remains.all|join:", " }}</span></p> -<p><label>{%trans "Periods:"%}</label> <span class='value'>{{ item.operation.periods.all|join:", " }}</span></p> +{% field_li "Type" item.operation.operation_type %} +{% field_li_multiple "Remains" item.operation.remains %} +{% field_li_multiple "Periods" item.operation.periods %} +</ul> {% field "Comment" item.operation.comment "<pre>" "</pre>" %} <h3>{% trans "Localisation"%}</h3> <p><label>{%trans "Towns:"%}</label> <span class='value'>{{ item.operation.towns.all|join:", " }}</span></p> <p><label>{%trans "Related operation:"%}</label> <span class='value'><a href="#" onclick='load_window("{% url show-operation item.operation.pk ''%}");'>{{ item.operation }}</a></span></p> -{# TODO: Displayed as Year/index/Commune/Common_name This should be a link to the file sheet of the related operation #} {% else %}<p class='alert'><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <label>{%trans "No operation linked to this context unit!"%}</label></p> {% endif %} diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot index fbe8bde95..4e149095e 100644 --- a/archaeological_files/locale/django.pot +++ b/archaeological_files/locale/django.pot @@ -9,7 +9,7 @@ msgid "" msgstr "" #: forms.py:52 forms.py:212 forms.py:257 forms.py:404 forms.py:431 -#: models.py:77 templates/ishtar/sheet_file.html:144 +#: models.py:77 templates/ishtar/sheet_file.html:146 msgid "Year" msgstr "" @@ -58,7 +58,7 @@ msgstr "" msgid "Comment" msgstr "" -#: forms.py:70 templates/ishtar/sheet_file.html:117 +#: forms.py:70 templates/ishtar/sheet_file.html:119 msgid "In charge" msgstr "" @@ -457,7 +457,7 @@ msgstr "" msgid "File: administrative act deletion" msgstr "" -#: wizards.py:124 templates/ishtar/sheet_file.html:109 +#: wizards.py:124 templates/ishtar/sheet_file.html:111 msgid "Associated operations" msgstr "" @@ -552,43 +552,43 @@ msgstr "" msgid "Head scientist" msgstr "" -#: templates/ishtar/sheet_file.html:103 +#: templates/ishtar/sheet_file.html:105 msgid "Associated parcels" msgstr "" -#: templates/ishtar/sheet_file.html:106 +#: templates/ishtar/sheet_file.html:108 msgid "Administrative acts" msgstr "" -#: templates/ishtar/sheet_file.html:114 templates/ishtar/sheet_file.html:145 +#: templates/ishtar/sheet_file.html:116 templates/ishtar/sheet_file.html:147 msgid "Ref." msgstr "" -#: templates/ishtar/sheet_file.html:116 templates/ishtar/sheet_file.html:146 +#: templates/ishtar/sheet_file.html:118 templates/ishtar/sheet_file.html:148 msgid "Type" msgstr "" -#: templates/ishtar/sheet_file.html:118 +#: templates/ishtar/sheet_file.html:120 msgid "Start date" msgstr "" -#: templates/ishtar/sheet_file.html:119 +#: templates/ishtar/sheet_file.html:121 msgid "Excavation end date" msgstr "" -#: templates/ishtar/sheet_file.html:133 +#: templates/ishtar/sheet_file.html:135 msgid "No operation associated to this archaelogical file" msgstr "" -#: templates/ishtar/sheet_file.html:139 +#: templates/ishtar/sheet_file.html:141 msgid "Admninistrative acts linked to associated operations" msgstr "" -#: templates/ishtar/sheet_file.html:147 +#: templates/ishtar/sheet_file.html:149 msgid "Date" msgstr "" -#: templates/ishtar/sheet_file.html:157 +#: templates/ishtar/sheet_file.html:159 msgid "No administrative act linked to operations" msgstr "" diff --git a/archaeological_files/templates/ishtar/sheet_file.html b/archaeological_files/templates/ishtar/sheet_file.html index 9c42c8f76..5165a0425 100644 --- a/archaeological_files/templates/ishtar/sheet_file.html +++ b/archaeological_files/templates/ishtar/sheet_file.html @@ -9,7 +9,7 @@ {% window_file_nav item window_id previous next %} {% else %} {% window_nav item window_id 'show-file' 'file_modify' 'show-historized-file' 'revert-file' previous next %} -{%endif%} +{% endif %} <h3>{% trans "General"%}</h3> @@ -43,8 +43,8 @@ {% if item.related_file %}<li><label>{%trans "Related file:"%}</label> <span class='value'><a href='#' onclick='load_window("{% url show-file item.related_file.pk ''%}")'>{{ item.related_file }}</a></span></li>{% endif %} -{% field_li "Comment" item.comment "<pre>" "</pre>" %} </ul> +{% field "Comment" item.comment "<pre>" "</pre>" %} <h3>{% trans "Localisation"%}</h3> {% if item.towns.count %}<p><label>{%trans "Towns:"%}</label> <span class='value'>{{ item.towns.all|join:", " }}</span></p>{% endif %} @@ -100,6 +100,8 @@ {% endif %} +{% if not next %} + {% trans "Associated parcels" as parcels_label %} {% include "ishtar/blocks/window_tables/parcels.html" %} @@ -159,4 +161,6 @@ </table> </div> </div> + +{% endif %} {% endblock %} diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 84dbd5c3e..9d9d8c0da 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -142,12 +142,12 @@ msgid "Period" msgstr "" #: forms.py:187 forms.py:590 models.py:693 models.py:758 models.py:894 -#: templates/ishtar/sheet_find.html:81 templates/ishtar/sheet_find.html:110 +#: templates/ishtar/sheet_find.html:85 templates/ishtar/sheet_find.html:114 msgid "Start date" msgstr "" #: forms.py:189 forms.py:592 models.py:694 models.py:759 models.py:895 -#: templates/ishtar/sheet_find.html:82 templates/ishtar/sheet_find.html:111 +#: templates/ishtar/sheet_find.html:86 templates/ishtar/sheet_find.html:115 msgid "End date" msgstr "" @@ -284,7 +284,7 @@ msgid "Treatment type" msgstr "" #: forms.py:577 models.py:691 models.py:762 -#: templates/ishtar/sheet_find.html:79 templates/ishtar/sheet_find.html:108 +#: templates/ishtar/sheet_find.html:83 templates/ishtar/sheet_find.html:112 msgid "Doer" msgstr "" @@ -520,16 +520,16 @@ msgstr "" msgid "Weight unit" msgstr "" -#: models.py:341 templates/ishtar/sheet_find.html:72 +#: models.py:341 templates/ishtar/sheet_find.html:76 msgid "Upstream treatment" msgstr "" -#: models.py:344 templates/ishtar/sheet_find.html:101 +#: models.py:344 templates/ishtar/sheet_find.html:105 msgid "Downstream treatment" msgstr "" #: models.py:348 models.py:677 models.py:761 -#: templates/ishtar/sheet_find.html:80 templates/ishtar/sheet_find.html:109 +#: templates/ishtar/sheet_find.html:84 templates/ishtar/sheet_find.html:113 msgid "Container" msgstr "" @@ -601,7 +601,7 @@ msgstr "" msgid "Treatment" msgstr "" -#: models.py:699 templates/ishtar/sheet_find.html:69 +#: models.py:699 templates/ishtar/sheet_find.html:73 msgid "Treatments" msgstr "" @@ -629,8 +629,8 @@ msgstr "" msgid "by" msgstr "" -#: models.py:763 models.py:764 templates/ishtar/sheet_find.html:78 -#: templates/ishtar/sheet_find.html:107 +#: models.py:763 models.py:764 templates/ishtar/sheet_find.html:82 +#: templates/ishtar/sheet_find.html:111 msgid "Related finds" msgstr "" @@ -714,36 +714,36 @@ msgstr "" msgid "Operation" msgstr "" -#: templates/ishtar/sheet_find.html:77 templates/ishtar/sheet_find.html:106 -#: templates/ishtar/sheet_find.html:176 +#: templates/ishtar/sheet_find.html:81 templates/ishtar/sheet_find.html:110 +#: templates/ishtar/sheet_find.html:180 msgid "Type" msgstr "" -#: templates/ishtar/sheet_find.html:97 +#: templates/ishtar/sheet_find.html:101 msgid "Export as CSV" msgstr "" -#: templates/ishtar/sheet_find.html:97 templates/ishtar/sheet_find.html:127 +#: templates/ishtar/sheet_find.html:101 templates/ishtar/sheet_find.html:131 msgid "CSV" msgstr "" -#: templates/ishtar/sheet_find.html:132 +#: templates/ishtar/sheet_find.html:136 msgid "Associated base finds" msgstr "" -#: templates/ishtar/sheet_find.html:171 templates/ishtar/sheet_find.html:173 +#: templates/ishtar/sheet_find.html:175 templates/ishtar/sheet_find.html:177 msgid "Documents" msgstr "" -#: templates/ishtar/sheet_find.html:175 +#: templates/ishtar/sheet_find.html:179 msgid "Title" msgstr "" -#: templates/ishtar/sheet_find.html:177 +#: templates/ishtar/sheet_find.html:181 msgid "Authors" msgstr "" -#: templates/ishtar/sheet_find.html:178 +#: templates/ishtar/sheet_find.html:182 msgid "Link" msgstr "" diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html index 3c4b880e8..c867b46ee 100644 --- a/archaeological_finds/templates/ishtar/sheet_find.html +++ b/archaeological_finds/templates/ishtar/sheet_find.html @@ -13,7 +13,6 @@ <ul class='form-flex'> {% field_li "Free-ID" item.label %} {% field_li "Previous ID" item.previous_id %} -{% field_li "Description" item.description %} {% with item.history_creation_date|date:"SHORT_DATETIME_FORMAT" as creation_date %} {% with item.history_creator.ishtaruser.full_label|add:"<br/><i>"|add:creation_date|add:"</i>" as creator %} {% field_li "Created by" creator|safe %} @@ -27,6 +26,11 @@ {% endwith %} {% endif %} {% field_li "Administrative index" item.administrative_index %} +{% if item.description %} +</ul> +{% field "Description" item.description "<pre>" "</pre>" %} +<ul class='form-flex'> +{% endif %} {% field_li_multiple "Material types" item.material_types %} {% field_li "Dating" item.dating %} {% field_li "Length (cm)" item.length %} diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index d58ef1f4b..dc9b27cea 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -95,7 +95,7 @@ msgstr "" msgid "Deleted relations" msgstr "" -#: forms.py:449 templates/ishtar/sheet_operation.html:77 +#: forms.py:449 templates/ishtar/sheet_operation.html:78 msgid "Relations" msgstr "" @@ -403,8 +403,8 @@ msgstr "" msgid "Remain type" msgstr "" -#: forms.py:1039 templates/ishtar/sheet_operation.html:148 -#: templates/ishtar/sheet_operation.html:179 +#: forms.py:1039 templates/ishtar/sheet_operation.html:149 +#: templates/ishtar/sheet_operation.html:180 msgid "Period" msgstr "" @@ -421,7 +421,7 @@ msgid "Archaeological site" msgstr "" #: forms.py:1112 models.py:88 models.py:261 -#: templates/ishtar/sheet_operation.html:88 +#: templates/ishtar/sheet_operation.html:89 msgid "Archaeological sites" msgstr "" @@ -838,8 +838,8 @@ msgstr "" msgid "Cached values get from associated towns" msgstr "" -#: models.py:831 templates/ishtar/sheet_operation.html:96 -#: templates/ishtar/sheet_operation.html:127 +#: models.py:831 templates/ishtar/sheet_operation.html:97 +#: templates/ishtar/sheet_operation.html:128 msgid "Administrative acts" msgstr "" @@ -1080,52 +1080,52 @@ msgstr "" msgid "Day" msgstr "" -#: templates/ishtar/sheet_operation.html:67 +#: templates/ishtar/sheet_operation.html:68 msgid "Localisation" msgstr "" -#: templates/ishtar/sheet_operation.html:92 +#: templates/ishtar/sheet_operation.html:93 msgid "Associated parcels" msgstr "" -#: templates/ishtar/sheet_operation.html:100 +#: templates/ishtar/sheet_operation.html:101 msgid "Document from this operation" msgstr "" -#: templates/ishtar/sheet_operation.html:106 -#: templates/ishtar/sheet_operation.html:133 +#: templates/ishtar/sheet_operation.html:107 +#: templates/ishtar/sheet_operation.html:134 msgid "Context records" msgstr "" -#: templates/ishtar/sheet_operation.html:110 +#: templates/ishtar/sheet_operation.html:111 msgid "Documents from associated context records" msgstr "" -#: templates/ishtar/sheet_operation.html:115 -#: templates/ishtar/sheet_operation.html:156 +#: templates/ishtar/sheet_operation.html:116 +#: templates/ishtar/sheet_operation.html:157 msgid "Finds" msgstr "" -#: templates/ishtar/sheet_operation.html:120 +#: templates/ishtar/sheet_operation.html:121 msgid "Documents from associated finds" msgstr "" -#: templates/ishtar/sheet_operation.html:125 +#: templates/ishtar/sheet_operation.html:126 msgid "Statistics" msgstr "" -#: templates/ishtar/sheet_operation.html:140 -#: templates/ishtar/sheet_operation.html:194 +#: templates/ishtar/sheet_operation.html:141 +#: templates/ishtar/sheet_operation.html:195 #: templates/ishtar/blocks/window_tables/administrativacts.html:8 msgid "Type" msgstr "" -#: templates/ishtar/sheet_operation.html:140 -#: templates/ishtar/sheet_operation.html:148 -#: templates/ishtar/sheet_operation.html:163 -#: templates/ishtar/sheet_operation.html:171 -#: templates/ishtar/sheet_operation.html:179 -#: templates/ishtar/sheet_operation.html:194 +#: templates/ishtar/sheet_operation.html:141 +#: templates/ishtar/sheet_operation.html:149 +#: templates/ishtar/sheet_operation.html:164 +#: templates/ishtar/sheet_operation.html:172 +#: templates/ishtar/sheet_operation.html:180 +#: templates/ishtar/sheet_operation.html:195 #: templates/ishtar/dashboards/dashboard_operation.html:18 #: templates/ishtar/dashboards/dashboard_operation.html:164 #: templates/ishtar/dashboards/dashboard_operation.html:432 @@ -1134,19 +1134,19 @@ msgstr "" msgid "Number" msgstr "" -#: templates/ishtar/sheet_operation.html:163 +#: templates/ishtar/sheet_operation.html:164 msgid "Material type" msgstr "" -#: templates/ishtar/sheet_operation.html:171 +#: templates/ishtar/sheet_operation.html:172 msgid "Object type" msgstr "" -#: templates/ishtar/sheet_operation.html:187 +#: templates/ishtar/sheet_operation.html:188 msgid "Sources" msgstr "" -#: templates/ishtar/sheet_operation.html:203 +#: templates/ishtar/sheet_operation.html:204 msgid "Finds by context records" msgstr "" diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html index 1b2a1961d..ba63dfa1c 100644 --- a/archaeological_operations/templates/ishtar/sheet_operation.html +++ b/archaeological_operations/templates/ishtar/sheet_operation.html @@ -44,7 +44,6 @@ {% field_li_multiple "Periods" item.periods %} {% if item.QUALITY_DICT %}{% field_li "Record quality" item.record_quality|from_dict:item.QUALITY_DICT %}{% endif %} {% if item.history_object and item.history_object.QUALITY_DICT %}{% field_li "Record quality" item.record_quality|from_dict:item.history_object.QUALITY_DICT %}{% endif %} -{% field_li "Abstract" item.abstract %} {% field_li_detail "Associated file" item.associated_file %} {% field_li "Responsible for town planning service" item.associated_file.responsible_town_planning_service.full_address %} {% if item.associated_file.town_planning_service %} @@ -60,9 +59,11 @@ {% else%} {% field_li "General contractor organization" item.associated_file.general_contractor.attached_to.full_address %} {% endif %} -{% field_li "Comment" item.comment "<pre>" "</pre>" %} </ul> +{% field "Abstract" item.abstract "<pre>" "</pre>" %} +{% field "Comment" item.comment "<pre>" "</pre>" %} +{% if not next %} {% if item.towns.count %} <h3>{% trans "Localisation"%}</h3> <ul class='form-flex'> @@ -209,4 +210,6 @@ </ul> {% endif %} +{% endif %} + {% endblock %} diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index aaae0cf76..771e1f2f2 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -359,7 +359,7 @@ msgstr "" msgid "Account" msgstr "" -#: forms_common.py:467 wizards.py:1172 +#: forms_common.py:467 wizards.py:1192 msgid "New password" msgstr "" @@ -1432,7 +1432,7 @@ msgstr "" msgid "No" msgstr "" -#: wizards.py:1229 +#: wizards.py:1249 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" @@ -2100,6 +2100,10 @@ msgstr "" msgid "Export as PDF file" msgstr "" +#: templates/ishtar/blocks/window_nav.html:49 +msgid "Relation between items are not historized." +msgstr "" + #: templates/ishtar/blocks/window_tables/documents.html:10 msgid "Related to" msgstr "" diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css index c6a151dc8..4de3cd315 100644 --- a/ishtar_common/static/media/style.css +++ b/ishtar_common/static/media/style.css @@ -163,6 +163,14 @@ h4{ margin:10px 0; } +pre { + padding: 0.5em 1em; + white-space: pre-wrap; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; +} + select{ max-width:550px; } @@ -621,8 +629,8 @@ ul.form-flex li li label { padding:0.2em; margin-left:auto; margin-right:auto; - width:600px; background-color:#F1F2F6; + min-width: 600px; } .form table th{ @@ -1090,13 +1098,21 @@ p.alert{ color:#D14; } +p.info-box{ + color: #1c94c4; +} + div.form p.alert{ background-color:#FFF; } +#window p.info-box, #window p.alert{ background-color:#EEE; + padding: 6px 16px; padding-left: 30px; + width: auto; + margin: 6px 10px; } #window p.alert label{ diff --git a/ishtar_common/templates/ishtar/blocks/window_nav.html b/ishtar_common/templates/ishtar/blocks/window_nav.html index c225a5822..13069b1eb 100644 --- a/ishtar_common/templates/ishtar/blocks/window_nav.html +++ b/ishtar_common/templates/ishtar/blocks/window_nav.html @@ -45,3 +45,6 @@ <a class='badge' href='{% url show_url item.pk "odt" %}' title='{% trans "Export as OpenOffice.org file"%}'>ODT</a> <a class='badge' href='{% url show_url item.pk "pdf" %}' title='{% trans "Export as PDF file"%}'>PDF</a> </div> <hr class='clear'> +{% if next %} + <p class='info-box'><i class="fa fa-info-circle" aria-hidden="true"></i> <em>{% trans "Relation between items are not historized." %}</em></p> +{% endif %} diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 7fc22f1a9..c8467ca61 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -32,7 +32,7 @@ from django.db.models.fields.files import FileField from django.db.models.fields.related import ManyToManyField from django.http import HttpResponseRedirect from django.forms import ValidationError -from django.shortcuts import render_to_response +from django.shortcuts import render_to_response, redirect from django.template import Context, RequestContext, loader from django.utils.datastructures import MultiValueDict as BaseMultiValueDict from django.utils.translation import ugettext_lazy as _ @@ -557,10 +557,15 @@ class Wizard(NamedUrlWizardView): m2m_items = {} # clear # TODO! perf - to be really optimized + old_m2ms = {} for model in whole_associated_models: related_model = getattr(obj, model + 's') # clear real m2m if hasattr(related_model, 'clear'): + old_m2ms[model] = [] + # stock items in order to not recreate them + for old_item in related_model.all(): + old_m2ms[model].append(old_item) related_model.clear() else: for r in related_model.all(): @@ -581,16 +586,32 @@ class Wizard(NamedUrlWizardView): if value not in m2m_items[key]: if type(value) == dict: 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 old links + my_old_item = None + if key in old_m2ms: + for old_item in old_m2ms[key]: + is_ok = True + for k in value: + if is_ok and getattr(old_item, k) != value[k]: + is_ok = False + continue + if is_ok: + my_old_item = old_item + break + if my_old_item: + value = my_old_item + else: + if issubclass(model, models.BaseHistorizedItem): + value['history_modifier'] = self.request.user + value = model.objects.create(**value) + value.save() # check that an item is not add multiple times (forged forms) if value not in related_model.all() and\ hasattr(related_model, 'add'): @@ -632,7 +653,7 @@ class Wizard(NamedUrlWizardView): return (to_delete, not_to_delete) def get_form(self, step=None, data=None, files=None): - """Manage formset""" + # Manage formset if data: data = data.copy() if not step: @@ -695,6 +716,7 @@ class Wizard(NamedUrlWizardView): # for k in init[0]: # data[step + '-' + unicode(total_field) + '-' + k] = \ # init[0][k] + data = data or None form = super(Wizard, self).get_form(step, data, files) # add autofocus to first field @@ -723,6 +745,7 @@ class Wizard(NamedUrlWizardView): if frm.fields[key].widget.source_full is not None: frm.fields[key].widget.source_full = unicode( frm.fields[key].widget.source_full) + "own/" + return form def render_next_step(self, form, **kwargs): @@ -760,10 +783,7 @@ class Wizard(NamedUrlWizardView): except (ValueError, IndexError): return super(Wizard, self).post(*args, **kwargs) self.storage.current_step = wizard_goto_step - form = self.get_form( - data=self.storage.get_step_data(self.steps.current), - files=self.storage.get_step_files(self.steps.current)) - return self.render(form) + return redirect(self.get_step_url(wizard_goto_step)) def session_get_keys(self, form_key): """Get list of available keys for a specific form diff --git a/translations/de/ishtar_common.po b/translations/de/ishtar_common.po index 8cc923272..750b795b9 100644 --- a/translations/de/ishtar_common.po +++ b/translations/de/ishtar_common.po @@ -362,7 +362,7 @@ msgstr "" msgid "Account" msgstr "" -#: forms_common.py:467 wizards.py:1172 +#: forms_common.py:467 wizards.py:1192 msgid "New password" msgstr "" @@ -1435,7 +1435,7 @@ msgstr "" msgid "No" msgstr "" -#: wizards.py:1229 +#: wizards.py:1249 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" @@ -2103,6 +2103,10 @@ msgstr "" msgid "Export as PDF file" msgstr "" +#: templates/ishtar/blocks/window_nav.html:49 +msgid "Relation between items are not historized." +msgstr "" + #: templates/ishtar/blocks/window_tables/documents.html:10 msgid "Related to" msgstr "" diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index f5175b9a9..6af8693f3 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-09-06 09:42-0400\n" +"PO-Revision-Date: 2016-09-08 03:59-0400\n" "Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n" "Language-Team: \n" "Language: fr\n" @@ -21,7 +21,7 @@ msgid "Operation" msgstr "Opération" #: forms.py:59 forms.py:137 models.py:132 -#: templates/ishtar/sheet_contextrecord.html:64 +#: templates/ishtar/sheet_contextrecord.html:65 msgid "ID" msgstr "Identifiant" @@ -45,7 +45,7 @@ msgstr "Entité Archéologique" msgid "Search within operation relations" msgstr "Rechercher parmi les opérations reliées" -#: forms.py:77 forms.py:228 models.py:49 +#: forms.py:77 forms.py:230 models.py:49 msgid "Period" msgstr "Période" @@ -61,7 +61,7 @@ msgstr "Parcelle (section/nombre/domaine public)" msgid "Search within relations" msgstr "Recherche parmi les relations" -#: forms.py:111 forms.py:333 views.py:118 +#: forms.py:111 forms.py:335 views.py:118 msgid "Context record search" msgstr "Recherche d'Unité d'Enregistrement" @@ -74,44 +74,48 @@ msgid "General" msgstr "Général" #: forms.py:136 models.py:118 models.py:128 -#: templates/ishtar/sheet_contextrecord.html:68 +#: templates/ishtar/sheet_contextrecord.html:69 msgid "Parcel" msgstr "Parcelle" -#: forms.py:139 models.py:133 templates/ishtar/sheet_contextrecord.html:31 -#: templates/ishtar/sheet_contextrecord.html:67 +#: forms.py:139 models.py:133 templates/ishtar/sheet_contextrecord.html:25 +#: templates/ishtar/sheet_contextrecord.html:68 msgid "Description" msgstr "Description" -#: forms.py:141 models.py:138 +#: forms.py:141 models.py:134 +msgid "General comment" +msgstr "Commentaire général" + +#: forms.py:143 models.py:138 msgid "Length (m)" msgstr "Taille (m)" -#: forms.py:142 models.py:139 +#: forms.py:144 models.py:139 msgid "Width (m)" msgstr "Largeur (m)" -#: forms.py:143 models.py:140 +#: forms.py:145 models.py:140 msgid "Thickness (m)" msgstr "Épaisseur (m)" -#: forms.py:144 models.py:142 +#: forms.py:146 models.py:142 msgid "Depth (m)" msgstr "Profondeur (m)" -#: forms.py:145 models.py:150 +#: forms.py:147 models.py:150 msgid "Unit" msgstr "Unité" -#: forms.py:147 models.py:144 +#: forms.py:149 models.py:144 msgid "Location" msgstr "Lieu" -#: forms.py:150 +#: forms.py:152 msgid "Image" msgstr "Image" -#: forms.py:151 +#: forms.py:153 #, python-format msgid "" "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</" @@ -120,120 +124,120 @@ msgstr "" "<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).</p>" -#: forms.py:217 +#: forms.py:219 msgid "This ID already exists for this operation." msgstr "Cet identifiant existe déjà pour cette opération." -#: forms.py:223 forms.py:250 models.py:60 +#: forms.py:225 forms.py:252 models.py:60 msgid "Dating" msgstr "Datation" -#: forms.py:229 models.py:50 +#: forms.py:231 models.py:50 msgid "Start date" msgstr "Date de début" -#: forms.py:230 models.py:51 models.py:137 +#: forms.py:232 models.py:51 models.py:137 msgid "End date" msgstr "Date de fin" -#: forms.py:231 models.py:54 +#: forms.py:233 models.py:54 msgid "Quality" msgstr "Qualité" -#: forms.py:232 models.py:36 models.py:52 +#: forms.py:234 models.py:36 models.py:52 msgid "Dating type" msgstr "Type de datation" -#: forms.py:259 ishtar_menu.py:29 models.py:356 +#: forms.py:261 ishtar_menu.py:29 models.py:356 msgid "Context record" msgstr "Unité d'Enregistrement" -#: forms.py:280 +#: forms.py:282 msgid "Relations" msgstr "Relations" -#: forms.py:284 forms.py:294 models.py:155 -#: templates/ishtar/sheet_contextrecord.html:42 +#: forms.py:286 forms.py:296 models.py:155 +#: templates/ishtar/sheet_contextrecord.html:37 msgid "Interpretation" msgstr "Interprétation" -#: forms.py:288 +#: forms.py:290 msgid "Comments on dating" msgstr "Commentaires sur la datation" -#: forms.py:290 models.py:152 +#: forms.py:292 models.py:152 msgid "Has furniture?" msgstr "Contient du mobilier ?" -#: forms.py:292 models.py:154 +#: forms.py:294 models.py:154 msgid "Filling" msgstr "Remplissage" -#: forms.py:296 models.py:175 +#: forms.py:298 models.py:175 msgid "Activity" msgstr "Activité" -#: forms.py:298 models.py:173 +#: forms.py:300 models.py:173 msgid "Identification" msgstr "Identification" -#: forms.py:300 models.py:158 +#: forms.py:302 models.py:158 msgid "TAQ" msgstr "TAQ" -#: forms.py:301 models.py:162 +#: forms.py:303 models.py:162 msgid "Estimated TAQ" msgstr "TAQ estimé" -#: forms.py:303 models.py:165 +#: forms.py:305 models.py:165 msgid "TPQ" msgstr "TPQ" -#: forms.py:304 models.py:169 +#: forms.py:306 models.py:169 msgid "Estimated TPQ" msgstr "TPQ estimé" -#: forms.py:319 +#: forms.py:321 msgid "Operation search" msgstr "Recherche d'Opérations" -#: forms.py:321 +#: forms.py:323 msgid "You should select an operation." msgstr "Vous devez sélectionner une Opération." -#: forms.py:326 +#: forms.py:328 msgid "Would you like to delete this context record?" msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?" -#: forms.py:335 +#: forms.py:337 msgid "You should select a context record." msgstr "Vous devez sélectionner une Unité d'Enregistrement." -#: forms.py:340 +#: forms.py:342 msgid "Year of the operation" msgstr "Année de l'opération" -#: forms.py:342 +#: forms.py:344 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:348 +#: forms.py:350 msgid "Town of the operation" msgstr "Commune de l'opération" -#: forms.py:350 +#: forms.py:352 msgid "Period of the context record" msgstr "Période de l'Unité d'Enregistrement" -#: forms.py:352 +#: forms.py:354 msgid "Unit type of the context record" msgstr "Type d'unité de l'Unité d'Enregistrement" -#: forms.py:365 +#: forms.py:367 msgid "Documentation search" msgstr "Recherche de documents" -#: forms.py:367 +#: forms.py:369 msgid "You should select a document." msgstr "Vous devez sélectionner un document." @@ -321,10 +325,6 @@ msgstr "ID externe" msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:134 -msgid "Comment" -msgstr "Commentaires" - #: models.py:135 msgid "Date d'ouverture" msgstr "Date d'ouverture" @@ -402,7 +402,7 @@ msgstr "UE" msgid "Inverse relation" msgstr "Relation inverse" -#: models.py:326 templates/ishtar/sheet_contextrecord.html:63 +#: models.py:326 templates/ishtar/sheet_contextrecord.html:64 msgid "Relation type" msgstr "Type de relation" @@ -458,177 +458,79 @@ msgstr "Unité d'Enregistrement : suppression d'une documentation associée" msgid "Complete ID:" msgstr "ID complet :" -#: templates/ishtar/sheet_contextrecord.html:16 -#: templates/ishtar/sheet_contextrecord.html:94 -msgid "Patriarche OA code not yet recorded!" -msgstr "Code d'opération Patriarche non renseigné !" - -#: templates/ishtar/sheet_contextrecord.html:17 +#: templates/ishtar/sheet_contextrecord.html:14 msgid "Temporary ID:" msgstr "ID temporaire :" -#: templates/ishtar/sheet_contextrecord.html:20 -msgid "Creation date:" -msgstr "Date de création :" - -#: templates/ishtar/sheet_contextrecord.html:21 -msgid "Created by:" -msgstr "Créé par :" - -#: templates/ishtar/sheet_contextrecord.html:23 -#: templates/ishtar/sheet_contextrecord.html:106 -msgid "Type:" -msgstr "Type :" - -#: templates/ishtar/sheet_contextrecord.html:25 -msgid "Chronology:" -msgstr "Chronologie :" - -#: templates/ishtar/sheet_contextrecord.html:27 -msgid "Place:" -msgstr "Lieu :" - -#: templates/ishtar/sheet_contextrecord.html:28 -msgid "Parcel:" -msgstr "Parcelle :" - -#: templates/ishtar/sheet_contextrecord.html:33 -msgid "Description:" -msgstr "Description :" - -#: templates/ishtar/sheet_contextrecord.html:34 -msgid "Comment:" -msgstr "Commentaires :" - -#: templates/ishtar/sheet_contextrecord.html:35 -msgid "Length (m):" -msgstr "Taille (m) :" - -#: templates/ishtar/sheet_contextrecord.html:36 -msgid "Width (m):" -msgstr "Largeur (m) :" - -#: templates/ishtar/sheet_contextrecord.html:37 -msgid "Depth (m):" -msgstr "Profondeur (m) :" - -#: templates/ishtar/sheet_contextrecord.html:38 -msgid "Thickness (m):" -msgstr "Épaisseur (m) :" - -#: templates/ishtar/sheet_contextrecord.html:44 -msgid "Activity:" -msgstr "Activité :" - -#: templates/ishtar/sheet_contextrecord.html:45 -msgid "Identification:" -msgstr "Identification :" - -#: templates/ishtar/sheet_contextrecord.html:46 -msgid "Interpretation:" -msgstr "Interprétation :" - -#: templates/ishtar/sheet_contextrecord.html:50 +#: templates/ishtar/sheet_contextrecord.html:49 msgid "Datations" msgstr "Datations" -#: templates/ishtar/sheet_contextrecord.html:51 -msgid "TAQ:" -msgstr "TAQ :" - -#: templates/ishtar/sheet_contextrecord.html:52 -msgid "Estimated TAQ:" -msgstr "TAQ estimé :" - -#: templates/ishtar/sheet_contextrecord.html:53 -msgid "TPQ:" -msgstr "TPQ :" - -#: templates/ishtar/sheet_contextrecord.html:54 -msgid "Estimated TPQ:" -msgstr "TPQ estimé :" - -#: templates/ishtar/sheet_contextrecord.html:58 +#: templates/ishtar/sheet_contextrecord.html:59 msgid "In relation with" msgstr "En relation avec" -#: templates/ishtar/sheet_contextrecord.html:65 +#: templates/ishtar/sheet_contextrecord.html:66 msgid "Type" msgstr "Type" -#: templates/ishtar/sheet_contextrecord.html:66 +#: templates/ishtar/sheet_contextrecord.html:67 msgid "Chronology" msgstr "Chronologie" -#: templates/ishtar/sheet_contextrecord.html:88 +#: templates/ishtar/sheet_contextrecord.html:89 msgid "Operation summary" msgstr "Résumé de l'opération" -#: templates/ishtar/sheet_contextrecord.html:89 -msgid "Year:" -msgstr "Année :" - -#: templates/ishtar/sheet_contextrecord.html:92 -msgid "Patriarche OA code:" -msgstr "Code d'opération Patriarche" - -#: templates/ishtar/sheet_contextrecord.html:97 -msgid "Head scientist:" -msgstr "Responsable scientifique :" +#: templates/ishtar/sheet_contextrecord.html:91 +msgid "Patriarche OA code not yet recorded!" +msgstr "Code d'opération Patriarche non renseigné !" #: templates/ishtar/sheet_contextrecord.html:98 msgid "State:" msgstr "État :" -#: templates/ishtar/sheet_contextrecord.html:100 +#: templates/ishtar/sheet_contextrecord.html:98 msgid "Active file" msgstr "Dossier actif" -#: templates/ishtar/sheet_contextrecord.html:102 +#: templates/ishtar/sheet_contextrecord.html:98 msgid "Closed operation" msgstr "Opération fermée" -#: templates/ishtar/sheet_contextrecord.html:103 +#: templates/ishtar/sheet_contextrecord.html:100 msgid "Closing date:" msgstr "Date de clôture :" -#: templates/ishtar/sheet_contextrecord.html:104 +#: templates/ishtar/sheet_contextrecord.html:100 msgid "by" msgstr "par" -#: templates/ishtar/sheet_contextrecord.html:107 -msgid "Remains:" -msgstr "Vestiges :" - #: templates/ishtar/sheet_contextrecord.html:108 -msgid "Periods:" -msgstr "Périodes :" - -#: templates/ishtar/sheet_contextrecord.html:111 msgid "Localisation" msgstr "Lieu" -#: templates/ishtar/sheet_contextrecord.html:112 +#: templates/ishtar/sheet_contextrecord.html:109 msgid "Towns:" msgstr "Communes :" -#: templates/ishtar/sheet_contextrecord.html:113 +#: templates/ishtar/sheet_contextrecord.html:110 msgid "Related operation:" msgstr "Opération associée :" -#: templates/ishtar/sheet_contextrecord.html:116 +#: templates/ishtar/sheet_contextrecord.html:112 msgid "No operation linked to this context unit!" msgstr "Pas d'opération rattachée à cette UE !" -#: templates/ishtar/sheet_contextrecord.html:119 +#: templates/ishtar/sheet_contextrecord.html:115 msgid "Document from this context record" msgstr "Document associé à cette Unité d'Enregistrement" -#: templates/ishtar/sheet_contextrecord.html:124 +#: templates/ishtar/sheet_contextrecord.html:120 msgid "Finds" msgstr "Mobilier" -#: templates/ishtar/sheet_contextrecord.html:129 +#: templates/ishtar/sheet_contextrecord.html:125 msgid "Documents from associated finds" msgstr "Documents du mobilier associé" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 3dacfbfdf..40bb635bb 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -18,7 +18,7 @@ msgstr "" "X-Generator: Zanata 3.9.5\n" #: forms.py:52 forms.py:212 forms.py:257 forms.py:404 forms.py:431 -#: models.py:77 templates/ishtar/sheet_file.html:144 +#: models.py:77 templates/ishtar/sheet_file.html:146 msgid "Year" msgstr "Année" @@ -67,7 +67,7 @@ msgstr "Référence du permis" msgid "Comment" msgstr "Commentaire" -#: forms.py:70 templates/ishtar/sheet_file.html:117 +#: forms.py:70 templates/ishtar/sheet_file.html:119 msgid "In charge" msgstr "Responsable" @@ -466,7 +466,7 @@ msgstr "Dossier : modification d'acte administratif" msgid "File: administrative act deletion" msgstr "Dossier : suppression d'acte administratif" -#: wizards.py:124 templates/ishtar/sheet_file.html:109 +#: wizards.py:124 templates/ishtar/sheet_file.html:111 msgid "Associated operations" msgstr "Opérations associées" @@ -561,43 +561,43 @@ msgstr " :" msgid "Head scientist" msgstr "Responsable scientifique" -#: templates/ishtar/sheet_file.html:103 +#: templates/ishtar/sheet_file.html:105 msgid "Associated parcels" msgstr "Parcelles associées" -#: templates/ishtar/sheet_file.html:106 +#: templates/ishtar/sheet_file.html:108 msgid "Administrative acts" msgstr "Actes administratifs" -#: templates/ishtar/sheet_file.html:114 templates/ishtar/sheet_file.html:145 +#: templates/ishtar/sheet_file.html:116 templates/ishtar/sheet_file.html:147 msgid "Ref." msgstr "Réf." -#: templates/ishtar/sheet_file.html:116 templates/ishtar/sheet_file.html:146 +#: templates/ishtar/sheet_file.html:118 templates/ishtar/sheet_file.html:148 msgid "Type" msgstr "Type" -#: templates/ishtar/sheet_file.html:118 +#: templates/ishtar/sheet_file.html:120 msgid "Start date" msgstr "Date de début" -#: templates/ishtar/sheet_file.html:119 +#: templates/ishtar/sheet_file.html:121 msgid "Excavation end date" msgstr "Date de fin de chantier" -#: templates/ishtar/sheet_file.html:133 +#: templates/ishtar/sheet_file.html:135 msgid "No operation associated to this archaelogical file" msgstr "Pas d'opération associée à ce dossier archéologique" -#: templates/ishtar/sheet_file.html:139 +#: templates/ishtar/sheet_file.html:141 msgid "Admninistrative acts linked to associated operations" msgstr "Actes administratifs associés à ces opérations" -#: templates/ishtar/sheet_file.html:147 +#: templates/ishtar/sheet_file.html:149 msgid "Date" msgstr "Date" -#: templates/ishtar/sheet_file.html:157 +#: templates/ishtar/sheet_file.html:159 msgid "No administrative act linked to operations" msgstr "Pas d'acte administratif associé à ces opérations" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 1bfcc5ea2..f757eeb4c 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -153,12 +153,12 @@ msgid "Period" msgstr "Période" #: forms.py:187 forms.py:590 models.py:693 models.py:758 models.py:894 -#: templates/ishtar/sheet_find.html:81 templates/ishtar/sheet_find.html:110 +#: templates/ishtar/sheet_find.html:85 templates/ishtar/sheet_find.html:114 msgid "Start date" msgstr "Date de début" #: forms.py:189 forms.py:592 models.py:694 models.py:759 models.py:895 -#: templates/ishtar/sheet_find.html:82 templates/ishtar/sheet_find.html:111 +#: templates/ishtar/sheet_find.html:86 templates/ishtar/sheet_find.html:115 msgid "End date" msgstr "Date de fin" @@ -295,7 +295,7 @@ msgid "Treatment type" msgstr "Type de traitement" #: forms.py:577 models.py:691 models.py:762 -#: templates/ishtar/sheet_find.html:79 templates/ishtar/sheet_find.html:108 +#: templates/ishtar/sheet_find.html:83 templates/ishtar/sheet_find.html:112 msgid "Doer" msgstr "Opérateur" @@ -531,16 +531,16 @@ msgstr "Mesures de conservation à envisager" msgid "Weight unit" msgstr "Unité de poids" -#: models.py:341 templates/ishtar/sheet_find.html:72 +#: models.py:341 templates/ishtar/sheet_find.html:76 msgid "Upstream treatment" msgstr "Traitement amont" -#: models.py:344 templates/ishtar/sheet_find.html:101 +#: models.py:344 templates/ishtar/sheet_find.html:105 msgid "Downstream treatment" msgstr "Traitement aval" #: models.py:348 models.py:677 models.py:761 -#: templates/ishtar/sheet_find.html:80 templates/ishtar/sheet_find.html:109 +#: templates/ishtar/sheet_find.html:84 templates/ishtar/sheet_find.html:113 msgid "Container" msgstr "Contenant" @@ -618,7 +618,7 @@ msgstr "Autre lieu" msgid "Treatment" msgstr "Traitement" -#: models.py:699 templates/ishtar/sheet_find.html:69 +#: models.py:699 templates/ishtar/sheet_find.html:73 msgid "Treatments" msgstr "Traitements" @@ -646,8 +646,8 @@ msgstr "Peut supprimer son propre Traitement" msgid "by" msgstr "par" -#: models.py:763 models.py:764 templates/ishtar/sheet_find.html:78 -#: templates/ishtar/sheet_find.html:107 +#: models.py:763 models.py:764 templates/ishtar/sheet_find.html:82 +#: templates/ishtar/sheet_find.html:111 msgid "Related finds" msgstr "Mobilier associé" @@ -731,36 +731,36 @@ msgstr "Nouveau traitement" msgid "Operation" msgstr "Opération" -#: templates/ishtar/sheet_find.html:77 templates/ishtar/sheet_find.html:106 -#: templates/ishtar/sheet_find.html:176 +#: templates/ishtar/sheet_find.html:81 templates/ishtar/sheet_find.html:110 +#: templates/ishtar/sheet_find.html:180 msgid "Type" msgstr "Type" -#: templates/ishtar/sheet_find.html:97 +#: templates/ishtar/sheet_find.html:101 msgid "Export as CSV" msgstr "Export en CSV" -#: templates/ishtar/sheet_find.html:97 templates/ishtar/sheet_find.html:127 +#: templates/ishtar/sheet_find.html:101 templates/ishtar/sheet_find.html:131 msgid "CSV" msgstr "CSV" -#: templates/ishtar/sheet_find.html:132 +#: templates/ishtar/sheet_find.html:136 msgid "Associated base finds" msgstr "Mobilier de base associé" -#: templates/ishtar/sheet_find.html:171 templates/ishtar/sheet_find.html:173 +#: templates/ishtar/sheet_find.html:175 templates/ishtar/sheet_find.html:177 msgid "Documents" msgstr "Documents" -#: templates/ishtar/sheet_find.html:175 +#: templates/ishtar/sheet_find.html:179 msgid "Title" msgstr "Titre" -#: templates/ishtar/sheet_find.html:177 +#: templates/ishtar/sheet_find.html:181 msgid "Authors" msgstr "Auteurs" -#: templates/ishtar/sheet_find.html:178 +#: templates/ishtar/sheet_find.html:182 msgid "Link" msgstr "Lien" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index 5f314df2f..257f5e095 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -104,7 +104,7 @@ msgstr "Relations actuelles" msgid "Deleted relations" msgstr "Relations supprimées" -#: forms.py:449 templates/ishtar/sheet_operation.html:77 +#: forms.py:449 templates/ishtar/sheet_operation.html:78 msgid "Relations" msgstr "Relations" @@ -419,8 +419,8 @@ msgstr "Types de vestige" msgid "Remain type" msgstr "Type de vestige" -#: forms.py:1039 templates/ishtar/sheet_operation.html:148 -#: templates/ishtar/sheet_operation.html:179 +#: forms.py:1039 templates/ishtar/sheet_operation.html:149 +#: templates/ishtar/sheet_operation.html:180 msgid "Period" msgstr "Période" @@ -437,7 +437,7 @@ msgid "Archaeological site" msgstr "Entité archéologique" #: forms.py:1112 models.py:88 models.py:261 -#: templates/ishtar/sheet_operation.html:88 +#: templates/ishtar/sheet_operation.html:89 msgid "Archaeological sites" msgstr "Entités archéologiques" @@ -860,8 +860,8 @@ msgstr "Valeur en cache des départements associés" msgid "Cached values get from associated towns" msgstr "Valeur en cache des communes associées" -#: models.py:831 templates/ishtar/sheet_operation.html:96 -#: templates/ishtar/sheet_operation.html:127 +#: models.py:831 templates/ishtar/sheet_operation.html:97 +#: templates/ishtar/sheet_operation.html:128 msgid "Administrative acts" msgstr "Actes administratifs" @@ -1104,52 +1104,52 @@ msgstr "Durée :" msgid "Day" msgstr "Jour" -#: templates/ishtar/sheet_operation.html:67 +#: templates/ishtar/sheet_operation.html:68 msgid "Localisation" msgstr "Localisation" -#: templates/ishtar/sheet_operation.html:92 +#: templates/ishtar/sheet_operation.html:93 msgid "Associated parcels" msgstr "Parcelles associées" -#: templates/ishtar/sheet_operation.html:100 +#: templates/ishtar/sheet_operation.html:101 msgid "Document from this operation" msgstr "Documents de cette opération" -#: templates/ishtar/sheet_operation.html:106 -#: templates/ishtar/sheet_operation.html:133 +#: templates/ishtar/sheet_operation.html:107 +#: templates/ishtar/sheet_operation.html:134 msgid "Context records" msgstr "Unités d'Enregistrement" -#: templates/ishtar/sheet_operation.html:110 +#: templates/ishtar/sheet_operation.html:111 msgid "Documents from associated context records" msgstr "Documents des Unités d'Enregistrement associées" -#: templates/ishtar/sheet_operation.html:115 -#: templates/ishtar/sheet_operation.html:156 +#: templates/ishtar/sheet_operation.html:116 +#: templates/ishtar/sheet_operation.html:157 msgid "Finds" msgstr "Mobilier" -#: templates/ishtar/sheet_operation.html:120 +#: templates/ishtar/sheet_operation.html:121 msgid "Documents from associated finds" msgstr "Documents du mobilier associé" -#: templates/ishtar/sheet_operation.html:125 +#: templates/ishtar/sheet_operation.html:126 msgid "Statistics" msgstr "Statistiques" -#: templates/ishtar/sheet_operation.html:140 -#: templates/ishtar/sheet_operation.html:194 +#: templates/ishtar/sheet_operation.html:141 +#: templates/ishtar/sheet_operation.html:195 #: templates/ishtar/blocks/window_tables/administrativacts.html:8 msgid "Type" msgstr "Type" -#: templates/ishtar/sheet_operation.html:140 -#: templates/ishtar/sheet_operation.html:148 -#: templates/ishtar/sheet_operation.html:163 -#: templates/ishtar/sheet_operation.html:171 -#: templates/ishtar/sheet_operation.html:179 -#: templates/ishtar/sheet_operation.html:194 +#: templates/ishtar/sheet_operation.html:141 +#: templates/ishtar/sheet_operation.html:149 +#: templates/ishtar/sheet_operation.html:164 +#: templates/ishtar/sheet_operation.html:172 +#: templates/ishtar/sheet_operation.html:180 +#: templates/ishtar/sheet_operation.html:195 #: templates/ishtar/dashboards/dashboard_operation.html:18 #: templates/ishtar/dashboards/dashboard_operation.html:164 #: templates/ishtar/dashboards/dashboard_operation.html:432 @@ -1158,19 +1158,19 @@ msgstr "Type" msgid "Number" msgstr "Nombre" -#: templates/ishtar/sheet_operation.html:163 +#: templates/ishtar/sheet_operation.html:164 msgid "Material type" msgstr "Type de matériau" -#: templates/ishtar/sheet_operation.html:171 +#: templates/ishtar/sheet_operation.html:172 msgid "Object type" msgstr "Type d'objet" -#: templates/ishtar/sheet_operation.html:187 +#: templates/ishtar/sheet_operation.html:188 msgid "Sources" msgstr "Documents" -#: templates/ishtar/sheet_operation.html:203 +#: templates/ishtar/sheet_operation.html:204 msgid "Finds by context records" msgstr "Mobilier par Unités d'Enregistrement" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index 48e17c19d..a4b55a5c3 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -381,7 +381,7 @@ msgstr "Type de personne" msgid "Account" msgstr "Compte" -#: forms_common.py:467 wizards.py:1172 +#: forms_common.py:467 wizards.py:1192 msgid "New password" msgstr "Nouveau mot de passe" @@ -1476,7 +1476,7 @@ msgstr "Oui" msgid "No" msgstr "Non" -#: wizards.py:1229 +#: wizards.py:1249 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "[%(app_name)s] Création /modification du compte" @@ -2152,6 +2152,10 @@ msgstr "Exporter en fichier OpenOffice.org" msgid "Export as PDF file" msgstr "Exporter en fichier PDF" +#: templates/ishtar/blocks/window_nav.html:49 +msgid "Relation between items are not historized." +msgstr "" + #: templates/ishtar/blocks/window_tables/documents.html:10 msgid "Related to" msgstr "Associé à" diff --git a/version.py b/version.py index 91c10f4b1..41407c8a3 100644 --- a/version.py +++ b/version.py @@ -1,4 +1,4 @@ -VERSION = (0, 97, 7) +VERSION = (0, 97, 8) def get_version(): |