From c578cba0544d10d4c6be93a15c5dc966e2ffcb44 Mon Sep 17 00:00:00 2001 From: Valérie-Emma Leroux Date: Wed, 9 Nov 2016 22:08:29 +0100 Subject: Update labels --- ishtar_common/forms_common.py | 2 +- ishtar_common/ishtar_menu.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index c15999721..82849d21c 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -241,7 +241,7 @@ class ManualMerge(object): except ValueError: pass if len(values) < 2: - raise forms.ValidationError(_(u"At leat two items have to be " + raise forms.ValidationError(_(u"At least two items have to be " u"selected.")) self.cleaned_data['to_merge'] = values return values diff --git a/ishtar_common/ishtar_menu.py b/ishtar_common/ishtar_menu.py index 1f30bec0f..a733ea612 100644 --- a/ishtar_common/ishtar_menu.py +++ b/ishtar_common/ishtar_menu.py @@ -67,7 +67,7 @@ MENU_SECTIONS = [ model=models.Person, access_controls=['merge_person']), MenuItem( - 'person_deletion', _(u"Delete"), + 'person_deletion', _(u"Deletion"), model=models.Person, access_controls=['change_person', 'change_own_person']), ]), @@ -98,7 +98,7 @@ MENU_SECTIONS = [ model=models.Organization, access_controls=['merge_organization']), MenuItem( - 'organization_deletion', _(u"Delete"), + 'organization_deletion', _(u"Deletion"), model=models.Organization, access_controls=['change_organization', 'change_own_organization']), -- cgit v1.2.3 From 04fed929817936981dc3031379a4e8fbd13fb8f4 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 14 Nov 2016 17:16:30 +0100 Subject: Update translations files --- archaeological_context_records/locale/django.pot | 120 +++-- archaeological_files/locale/django.pot | 126 +++-- archaeological_files_pdl/locale/django.pot | 60 +-- archaeological_finds/locale/django.pot | 176 +++---- archaeological_operations/locale/django.pot | 270 +++++----- ishtar_common/locale/django.pot | 569 +++++++++++---------- translations/fr/archaeological_context_records.po | 131 ++--- translations/fr/archaeological_files.po | 137 ++--- translations/fr/archaeological_files_pdl.po | 68 +-- translations/fr/archaeological_finds.po | 184 +++---- translations/fr/archaeological_operations.po | 281 +++++------ translations/fr/archaeological_warehouse.po | 8 +- translations/fr/ishtar_common.po | 581 +++++++++++----------- 13 files changed, 1360 insertions(+), 1351 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index 283d5b050..dfd388ac2 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -7,11 +7,11 @@ msgid "" msgstr "" -#: forms.py:47 forms.py:51 models.py:164 wizards.py:77 +#: forms.py:47 forms.py:51 models.py:165 wizards.py:77 msgid "Operation" msgstr "" -#: forms.py:59 forms.py:137 models.py:166 +#: forms.py:59 forms.py:137 models.py:167 msgid "ID" msgstr "" @@ -63,43 +63,43 @@ msgstr "" msgid "General" msgstr "" -#: forms.py:136 models.py:131 models.py:162 +#: forms.py:136 models.py:131 models.py:163 msgid "Parcel" msgstr "" -#: forms.py:139 models.py:167 templates/ishtar/sheet_contextrecord.html:27 +#: forms.py:139 models.py:168 templates/ishtar/sheet_contextrecord.html:27 msgid "Description" msgstr "" -#: forms.py:141 models.py:168 +#: forms.py:141 models.py:169 msgid "General comment" msgstr "" -#: forms.py:143 models.py:172 +#: forms.py:143 models.py:173 msgid "Length (m)" msgstr "" -#: forms.py:144 models.py:173 +#: forms.py:144 models.py:174 msgid "Width (m)" msgstr "" -#: forms.py:145 models.py:174 +#: forms.py:145 models.py:175 msgid "Thickness (m)" msgstr "" -#: forms.py:146 models.py:176 +#: forms.py:146 models.py:177 msgid "Depth (m)" msgstr "" -#: forms.py:147 models.py:184 +#: forms.py:147 models.py:185 msgid "Unit" msgstr "" -#: forms.py:148 models.py:186 +#: forms.py:148 models.py:187 msgid "Has furniture?" msgstr "" -#: forms.py:151 models.py:178 +#: forms.py:151 models.py:179 msgid "Location" msgstr "" @@ -126,7 +126,7 @@ msgstr "" msgid "Start date" msgstr "" -#: forms.py:234 models.py:57 models.py:171 +#: forms.py:234 models.py:57 models.py:172 msgid "End date" msgstr "" @@ -138,7 +138,7 @@ msgstr "" msgid "Dating type" msgstr "" -#: forms.py:263 ishtar_menu.py:29 models.py:457 +#: forms.py:263 ishtar_menu.py:29 models.py:459 msgid "Context record" msgstr "" @@ -146,7 +146,7 @@ msgstr "" msgid "Relations" msgstr "" -#: forms.py:288 forms.py:296 models.py:189 +#: forms.py:288 forms.py:296 models.py:190 #: templates/ishtar/sheet_contextrecord.html:39 msgid "Interpretation" msgstr "" @@ -155,31 +155,31 @@ msgstr "" msgid "Comments on dating" msgstr "" -#: forms.py:294 models.py:188 +#: forms.py:294 models.py:189 msgid "Filling" msgstr "" -#: forms.py:298 models.py:209 +#: forms.py:298 models.py:210 msgid "Activity" msgstr "" -#: forms.py:300 models.py:207 +#: forms.py:300 models.py:208 msgid "Identification" msgstr "" -#: forms.py:302 models.py:192 +#: forms.py:302 models.py:193 msgid "TAQ" msgstr "" -#: forms.py:303 models.py:196 +#: forms.py:303 models.py:197 msgid "Estimated TAQ" msgstr "" -#: forms.py:305 models.py:199 +#: forms.py:305 models.py:200 msgid "TPQ" msgstr "" -#: forms.py:306 models.py:203 +#: forms.py:306 models.py:204 msgid "Estimated TPQ" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "Search" msgstr "" -#: ishtar_menu.py:35 +#: ishtar_menu.py:35 ishtar_menu.py:55 msgid "Creation" msgstr "" @@ -247,10 +247,6 @@ msgstr "" msgid "Documentation" msgstr "" -#: ishtar_menu.py:55 -msgid "Add" -msgstr "" - #: models.py:39 msgid "Dating types" msgstr "" @@ -303,148 +299,148 @@ msgstr "" msgid "Identification Types" msgstr "" -#: models.py:159 +#: models.py:160 msgid "External ID" msgstr "" -#: models.py:161 +#: models.py:162 msgid "External ID is set automatically" msgstr "" -#: models.py:169 +#: models.py:170 msgid "Date d'ouverture" msgstr "" -#: models.py:179 +#: models.py:180 msgid "A short description of the location of the context record" msgstr "" -#: models.py:182 +#: models.py:183 msgid "Comment on datings" msgstr "" -#: models.py:193 +#: models.py:194 msgid "" "\"Terminus Ante Quem\" the context record can't have been created after this " "date" msgstr "" -#: models.py:197 +#: models.py:198 msgid "Estimation of a \"Terminus Ante Quem\"" msgstr "" -#: models.py:200 +#: models.py:201 msgid "" "\"Terminus Post Quem\" the context record can't have been created before " "this date" msgstr "" -#: models.py:204 +#: models.py:205 msgid "Estimation of a \"Terminus Post Quem\"" msgstr "" -#: models.py:212 +#: models.py:213 msgid "Point" msgstr "" -#: models.py:213 +#: models.py:214 msgid "Polygon" msgstr "" -#: models.py:214 +#: models.py:215 msgid "Cached name" msgstr "" -#: models.py:218 models.py:219 templates/ishtar/sheet_contextrecord.html:4 +#: models.py:219 models.py:220 templates/ishtar/sheet_contextrecord.html:4 msgid "Context Record" msgstr "" -#: models.py:221 +#: models.py:222 msgid "Can view all Context Records" msgstr "" -#: models.py:223 +#: models.py:224 msgid "Can view own Context Record" msgstr "" -#: models.py:225 +#: models.py:226 msgid "Can add own Context Record" msgstr "" -#: models.py:227 +#: models.py:228 msgid "Can change own Context Record" msgstr "" -#: models.py:229 +#: models.py:230 msgid "Can delete own Context Record" msgstr "" -#: models.py:239 +#: models.py:240 msgctxt "short" msgid "Context record" msgstr "" -#: models.py:375 +#: models.py:377 msgid "Inverse relation" msgstr "" -#: models.py:379 models.py:403 +#: models.py:381 models.py:405 msgid "Relation type" msgstr "" -#: models.py:380 +#: models.py:382 msgid "Relation types" msgstr "" -#: models.py:398 +#: models.py:400 msgid "ID (left)" msgstr "" -#: models.py:399 +#: models.py:401 msgid "Unit (left)" msgstr "" -#: models.py:400 +#: models.py:402 msgid "Parcel (left)" msgstr "" -#: models.py:401 +#: models.py:403 msgid "Description (left)" msgstr "" -#: models.py:402 +#: models.py:404 msgid "Periods (left)" msgstr "" -#: models.py:404 +#: models.py:406 msgid "Unit (right)" msgstr "" -#: models.py:405 models.py:406 +#: models.py:407 models.py:408 msgid "Parcel (right)" msgstr "" -#: models.py:407 +#: models.py:409 msgid "Description (right)" msgstr "" -#: models.py:408 +#: models.py:410 msgid "Periods (right)" msgstr "" -#: models.py:417 +#: models.py:419 msgid "Record relation" msgstr "" -#: models.py:418 +#: models.py:420 msgid "Record relations" msgstr "" -#: models.py:454 +#: models.py:456 msgid "Context record documentation" msgstr "" -#: models.py:455 +#: models.py:457 msgid "Context record documentations" msgstr "" diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot index c8e5b3952..05c775798 100644 --- a/archaeological_files/locale/django.pot +++ b/archaeological_files/locale/django.pot @@ -8,243 +8,243 @@ msgid "" msgstr "" -#: forms.py:52 forms.py:212 forms.py:257 forms.py:404 forms.py:431 +#: forms.py:47 forms.py:210 forms.py:255 forms.py:396 forms.py:423 #: models.py:108 templates/ishtar/sheet_file.html:146 msgid "Year" msgstr "" -#: forms.py:53 forms.py:217 forms.py:259 models.py:111 +#: forms.py:48 forms.py:215 forms.py:257 models.py:111 msgid "Numeric reference" msgstr "" -#: forms.py:55 forms.py:219 +#: forms.py:50 forms.py:217 msgid "Other reference" msgstr "" -#: forms.py:57 forms.py:439 +#: forms.py:52 forms.py:431 msgid "Parcel (section/number/public domain)" msgstr "" -#: forms.py:60 forms.py:415 forms.py:442 models.py:543 +#: forms.py:55 forms.py:407 forms.py:434 models.py:544 msgid "Department" msgstr "" -#: forms.py:61 forms.py:451 +#: forms.py:56 forms.py:443 msgid "File name" msgstr "" -#: forms.py:62 forms.py:158 forms.py:223 models.py:119 +#: forms.py:57 forms.py:154 forms.py:221 models.py:119 msgid "File type" msgstr "" -#: forms.py:63 +#: forms.py:58 msgid "Is active?" msgstr "" -#: forms.py:64 forms.py:160 forms.py:321 +#: forms.py:59 forms.py:156 forms.py:314 msgid "Saisine type" msgstr "" -#: forms.py:65 forms.py:311 models.py:60 models.py:150 +#: forms.py:60 forms.py:304 models.py:60 models.py:150 msgid "Permit type" msgstr "" -#: forms.py:67 forms.py:314 models.py:151 +#: forms.py:62 forms.py:307 models.py:151 msgid "Permit reference" msgstr "" -#: forms.py:68 forms.py:229 forms.py:372 models.py:180 +#: forms.py:63 forms.py:227 forms.py:364 models.py:180 #: templates/ishtar/sheet_file.html:99 msgid "Comment" msgstr "" -#: forms.py:70 templates/ishtar/sheet_file.html:119 +#: forms.py:65 templates/ishtar/sheet_file.html:119 msgid "In charge" msgstr "" -#: forms.py:77 forms.py:289 forms.py:453 models.py:126 +#: forms.py:72 forms.py:281 forms.py:445 models.py:126 msgid "General contractor" msgstr "" -#: forms.py:84 forms.py:462 +#: forms.py:79 forms.py:453 msgid "Organization of general contractor" msgstr "" -#: forms.py:91 forms.py:485 +#: forms.py:87 forms.py:476 msgid "Created by" msgstr "" -#: forms.py:98 forms.py:493 +#: forms.py:94 forms.py:484 msgid "Modified by" msgstr "" -#: forms.py:129 +#: forms.py:125 msgid "Archaeological file search" msgstr "" -#: forms.py:143 +#: forms.py:139 msgid "You should select a file." msgstr "" -#: forms.py:146 forms.py:221 models.py:159 +#: forms.py:142 forms.py:219 models.py:159 msgid "Creation date" msgstr "" -#: forms.py:147 forms.py:324 models.py:161 +#: forms.py:143 forms.py:317 models.py:161 msgid "Reception date" msgstr "" -#: forms.py:152 +#: forms.py:148 msgid "Slicing" msgstr "" -#: forms.py:154 +#: forms.py:150 msgid "Department detail" msgstr "" -#: forms.py:156 +#: forms.py:152 msgid "Date get from" msgstr "" -#: forms.py:162 +#: forms.py:158 msgid "Date after" msgstr "" -#: forms.py:164 +#: forms.py:160 msgid "Date before" msgstr "" -#: forms.py:201 templates/ishtar/sheet_file.html:14 +#: forms.py:197 templates/ishtar/sheet_file.html:14 msgid "General" msgstr "" -#: forms.py:206 models.py:121 +#: forms.py:202 models.py:121 msgid "Person in charge" msgstr "" -#: forms.py:220 models.py:118 +#: forms.py:218 models.py:118 msgid "Name" msgstr "" -#: forms.py:225 models.py:163 +#: forms.py:223 models.py:163 msgid "Related file" msgstr "" -#: forms.py:233 models.py:171 +#: forms.py:231 models.py:171 msgid "Total surface (m2)" msgstr "" -#: forms.py:236 models.py:177 +#: forms.py:234 models.py:177 msgid "Main address" msgstr "" -#: forms.py:237 +#: forms.py:235 msgid "Main address - complement" msgstr "" -#: forms.py:250 +#: forms.py:248 #, python-format msgid "
(last recorded: %s)" msgstr "" -#: forms.py:272 +#: forms.py:270 msgid "Another file with this numeric id exists." msgstr "" -#: forms.py:283 +#: forms.py:275 msgid "Preventive informations" msgstr "" -#: forms.py:301 models.py:138 +#: forms.py:293 models.py:138 msgid "Responsible for town planning service" msgstr "" -#: forms.py:317 models.py:174 +#: forms.py:310 models.py:174 msgid "Total developed surface (m2)" msgstr "" -#: forms.py:340 templates/ishtar/sheet_file.html:89 +#: forms.py:333 templates/ishtar/sheet_file.html:89 #: templates/ishtar/dashboards/dashboard_file.html:45 msgid "Research archaeology" msgstr "" -#: forms.py:348 models.py:183 templates/ishtar/sheet_file.html:90 +#: forms.py:341 models.py:183 templates/ishtar/sheet_file.html:90 msgid "Departments" msgstr "" -#: forms.py:359 models.py:192 +#: forms.py:351 models.py:192 msgid "Scientist in charge" msgstr "" -#: forms.py:361 models.py:186 templates/ishtar/sheet_file.html:92 +#: forms.py:353 models.py:186 templates/ishtar/sheet_file.html:92 msgid "Requested operation type" msgstr "" -#: forms.py:363 +#: forms.py:355 msgid "Lead organization" msgstr "" -#: forms.py:379 models.py:196 templates/ishtar/sheet_file.html:97 +#: forms.py:371 models.py:196 templates/ishtar/sheet_file.html:97 msgid "Classified area" msgstr "" -#: forms.py:381 models.py:198 templates/ishtar/sheet_file.html:98 +#: forms.py:373 models.py:198 templates/ishtar/sheet_file.html:98 msgid "Protected area" msgstr "" -#: forms.py:395 +#: forms.py:387 msgid "Would you like to close this archaeological file?" msgstr "" -#: forms.py:400 +#: forms.py:392 msgid "Would you like to delete this archaelogical file ?" msgstr "" -#: forms.py:405 forms.py:432 forms.py:556 +#: forms.py:397 forms.py:424 forms.py:547 msgid "Index" msgstr "" -#: forms.py:409 forms.py:436 forms.py:542 +#: forms.py:401 forms.py:428 forms.py:533 msgid "Act type" msgstr "" -#: forms.py:410 +#: forms.py:402 msgid "Object (full text search)" msgstr "" -#: forms.py:437 +#: forms.py:429 msgid "Indexed?" msgstr "" -#: forms.py:443 +#: forms.py:435 msgid "Object" msgstr "" -#: forms.py:447 +#: forms.py:439 msgid "Signature date after" msgstr "" -#: forms.py:449 +#: forms.py:441 msgid "Signature date before" msgstr "" -#: forms.py:470 +#: forms.py:461 msgid "File numeric reference" msgstr "" -#: forms.py:471 +#: forms.py:462 msgid "File year" msgstr "" -#: forms.py:473 +#: forms.py:464 msgid "File other reference" msgstr "" -#: forms.py:475 +#: forms.py:466 msgid "File in charge" msgstr "" -#: forms.py:483 +#: forms.py:474 msgid "File permit reference" msgstr "" @@ -256,7 +256,7 @@ msgstr "" msgid "Search" msgstr "" -#: ishtar_menu.py:41 +#: ishtar_menu.py:41 ishtar_menu.py:64 msgid "Creation" msgstr "" @@ -276,10 +276,6 @@ msgstr "" msgid "Administrative act" msgstr "" -#: ishtar_menu.py:64 -msgid "Add" -msgstr "" - #: ishtar_menu.py:76 msgid "Documents" msgstr "" @@ -417,7 +413,7 @@ msgstr "" msgid "No town" msgstr "" -#: models.py:542 +#: models.py:543 msgid "File" msgstr "" diff --git a/archaeological_files_pdl/locale/django.pot b/archaeological_files_pdl/locale/django.pot index 5c3d03a37..79da87fd5 100644 --- a/archaeological_files_pdl/locale/django.pot +++ b/archaeological_files_pdl/locale/django.pot @@ -7,117 +7,121 @@ msgid "" msgstr "" -#: forms.py:41 +#: forms.py:38 msgid "General" msgstr "" -#: forms.py:43 +#: forms.py:40 msgid "File type" msgstr "" -#: forms.py:44 forms.py:403 +#: forms.py:41 forms.py:415 msgid "Year" msgstr "" -#: forms.py:48 +#: forms.py:45 msgid "Creation date" msgstr "" -#: forms.py:51 +#: forms.py:48 msgid "Reception date" msgstr "" -#: forms.py:63 +#: forms.py:60 msgid "Reception date cannot be after today." msgstr "" -#: forms.py:71 +#: forms.py:68 msgid "Permit type" msgstr "" -#: forms.py:73 +#: forms.py:70 msgid "Saisine type" msgstr "" -#: forms.py:87 +#: forms.py:84 msgid "Planning" msgstr "" -#: forms.py:90 +#: forms.py:87 msgid "Planning name" msgstr "" -#: forms.py:93 forms.py:123 +#: forms.py:90 forms.py:122 #: templates/ishtar/wizard/wizard_preventiveplanning.html:31 msgid "Towns" msgstr "" -#: forms.py:95 forms.py:125 +#: forms.py:92 forms.py:124 #: templates/ishtar/wizard/wizard_preventiveplanning.html:41 msgid "Departments" msgstr "" -#: forms.py:96 forms.py:126 +#: forms.py:93 forms.py:125 msgid "Locality" msgstr "" -#: forms.py:99 forms.py:129 +#: forms.py:96 forms.py:128 msgid "Address (number/street)" msgstr "" -#: forms.py:100 forms.py:130 +#: forms.py:97 forms.py:129 msgid "Number/street" msgstr "" -#: forms.py:102 forms.py:132 +#: forms.py:99 forms.py:131 msgid "Postal code" msgstr "" -#: forms.py:107 +#: forms.py:104 msgid "Total surface (m2)" msgstr "" -#: forms.py:112 +#: forms.py:109 msgid "Total developed surface (m2)" msgstr "" -#: forms.py:119 +#: forms.py:116 msgid "Address" msgstr "" -#: forms.py:233 forms.py:237 forms.py:267 forms.py:270 +#: forms.py:119 +msgid "Project name" +msgstr "" + +#: forms.py:232 forms.py:236 forms.py:273 forms.py:276 msgid "General contractor" msgstr "" -#: forms.py:252 forms.py:364 +#: forms.py:254 forms.py:372 msgid "In charge" msgstr "" -#: forms.py:342 +#: forms.py:348 msgid "Town planning service" msgstr "" -#: forms.py:346 +#: forms.py:352 msgid "File reference" msgstr "" -#: forms.py:349 +#: forms.py:355 msgid "Planning service" msgstr "" -#: forms.py:383 +#: forms.py:395 msgid "Person in charge" msgstr "" -#: forms.py:395 +#: forms.py:407 msgid "Related file" msgstr "" -#: forms.py:399 +#: forms.py:411 msgid "Comment" msgstr "" -#: forms.py:406 +#: forms.py:418 msgid "Numeric reference" msgstr "" diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 93a83eb05..9c2550def 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -12,21 +12,21 @@ msgstr "" msgid "Context record" msgstr "" -#: forms.py:83 ishtar_menu.py:31 models.py:439 models.py:750 models.py:850 -#: models.py:1000 templates/ishtar/sheet_find.html:5 +#: forms.py:83 ishtar_menu.py:31 models.py:440 models.py:754 models.py:854 +#: models.py:1004 templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "" -#: forms.py:94 forms.py:218 forms.py:425 models.py:127 models.py:376 +#: forms.py:94 forms.py:218 forms.py:425 models.py:127 models.py:377 msgid "Free ID" msgstr "" -#: forms.py:96 models.py:425 +#: forms.py:96 models.py:426 msgid "Previous ID" msgstr "" -#: forms.py:97 forms.py:250 forms.py:591 models.py:131 models.py:377 -#: models.py:784 +#: forms.py:97 forms.py:250 forms.py:591 models.py:131 models.py:378 +#: models.py:788 msgid "Description" msgstr "" @@ -34,7 +34,7 @@ msgstr "" msgid "Batch/object" msgstr "" -#: forms.py:102 models.py:405 +#: forms.py:102 models.py:406 msgid "Is complete?" msgstr "" @@ -42,15 +42,15 @@ msgstr "" msgid "Material type" msgstr "" -#: forms.py:106 forms.py:244 models.py:62 models.py:381 +#: forms.py:106 forms.py:244 models.py:62 models.py:382 msgid "Conservatory state" msgstr "" -#: forms.py:109 models.py:383 +#: forms.py:109 models.py:384 msgid "Conservatory comment" msgstr "" -#: forms.py:112 models.py:102 models.py:408 +#: forms.py:112 models.py:102 models.py:409 msgid "Object types" msgstr "" @@ -58,67 +58,67 @@ msgstr "" msgid "Preservation type" msgstr "" -#: forms.py:117 forms.py:246 models.py:410 +#: forms.py:117 forms.py:246 models.py:411 msgid "Integrity / interest" msgstr "" -#: forms.py:120 forms.py:248 models.py:413 +#: forms.py:120 forms.py:248 models.py:414 msgid "Remarkability" msgstr "" -#: forms.py:122 models.py:415 +#: forms.py:122 models.py:416 msgid "Length (cm)" msgstr "" -#: forms.py:123 models.py:416 +#: forms.py:123 models.py:417 msgid "Width (cm)" msgstr "" -#: forms.py:124 models.py:417 +#: forms.py:124 models.py:418 msgid "Height (cm)" msgstr "" -#: forms.py:125 models.py:418 +#: forms.py:125 models.py:419 msgid "Diameter (cm)" msgstr "" -#: forms.py:126 forms.py:430 models.py:388 +#: forms.py:126 forms.py:430 models.py:389 msgid "Volume (l)" msgstr "" -#: forms.py:127 forms.py:431 models.py:389 +#: forms.py:127 forms.py:431 models.py:390 msgid "Weight (g)" msgstr "" -#: forms.py:129 models.py:419 +#: forms.py:129 models.py:420 msgid "Dimensions comment" msgstr "" -#: forms.py:130 forms.py:432 models.py:392 +#: forms.py:130 forms.py:432 models.py:393 msgid "Find number" msgstr "" -#: forms.py:131 models.py:421 +#: forms.py:131 models.py:422 msgid "Mark" msgstr "" -#: forms.py:132 forms.py:254 models.py:427 +#: forms.py:132 forms.py:254 models.py:428 msgid "Check" msgstr "" -#: forms.py:134 models.py:429 +#: forms.py:134 models.py:430 msgid "Check date" msgstr "" -#: forms.py:135 models.py:132 models.py:422 models.py:785 +#: forms.py:135 models.py:132 models.py:423 models.py:789 msgid "Comment" msgstr "" -#: forms.py:138 models.py:423 +#: forms.py:138 models.py:424 msgid "Comment on dating" msgstr "" -#: forms.py:139 models.py:431 +#: forms.py:139 models.py:432 msgid "Estimated value" msgstr "" @@ -133,7 +133,7 @@ msgid "" "p>" msgstr "" -#: forms.py:181 forms.py:212 models.py:400 +#: forms.py:181 forms.py:212 models.py:401 msgid "Dating" msgstr "" @@ -141,12 +141,12 @@ msgstr "" msgid "Period" msgstr "" -#: forms.py:187 forms.py:593 models.py:798 models.py:863 models.py:1005 +#: forms.py:187 forms.py:593 models.py:802 models.py:867 models.py:1009 #: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:121 msgid "Start date" msgstr "" -#: forms.py:189 forms.py:595 models.py:799 models.py:864 models.py:1006 +#: forms.py:189 forms.py:595 models.py:803 models.py:868 models.py:1010 #: templates/ishtar/sheet_find.html:93 templates/ishtar/sheet_find.html:122 msgid "End date" msgstr "" @@ -207,7 +207,7 @@ msgstr "" msgid "Upstream finds" msgstr "" -#: forms.py:326 models.py:440 +#: forms.py:326 models.py:441 msgid "Finds" msgstr "" @@ -283,16 +283,16 @@ msgstr "" msgid "Base treatment" msgstr "" -#: forms.py:578 models.py:772 models.py:787 models.py:862 +#: forms.py:578 models.py:776 models.py:791 models.py:866 msgid "Treatment type" msgstr "" -#: forms.py:580 models.py:796 models.py:867 +#: forms.py:580 models.py:800 models.py:871 #: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:119 msgid "Doer" msgstr "" -#: forms.py:586 models.py:789 models.py:865 +#: forms.py:586 models.py:793 models.py:869 msgid "Location" msgstr "" @@ -344,7 +344,7 @@ msgstr "" msgid "Parent material" msgstr "" -#: models.py:51 models.py:379 +#: models.py:51 models.py:380 msgid "Material types" msgstr "" @@ -392,11 +392,11 @@ msgstr "" msgid "Batch" msgstr "" -#: models.py:128 models.py:372 models.py:780 +#: models.py:128 models.py:373 models.py:784 msgid "External ID" msgstr "" -#: models.py:130 models.py:374 +#: models.py:130 models.py:375 msgid "External ID is set automatically" msgstr "" @@ -436,7 +436,7 @@ msgstr "" msgid "Cached value - do not edit" msgstr "" -#: models.py:159 models.py:370 +#: models.py:159 models.py:371 msgid "Base find" msgstr "" @@ -464,209 +464,209 @@ msgstr "" msgid "Can delete own Base find" msgstr "" -#: models.py:275 +#: models.py:276 msgid "g" msgstr "" -#: models.py:276 +#: models.py:277 msgid "kg" msgstr "" -#: models.py:278 +#: models.py:279 msgid "Not checked" msgstr "" -#: models.py:279 +#: models.py:280 msgid "Checked but incorrect" msgstr "" -#: models.py:280 +#: models.py:281 msgid "Checked and correct" msgstr "" -#: models.py:320 +#: models.py:321 msgid "Base find - Short ID" msgstr "" -#: models.py:321 +#: models.py:322 msgid "Base find - Complete ID" msgstr "" -#: models.py:322 +#: models.py:323 msgid "Base find - Comment" msgstr "" -#: models.py:323 +#: models.py:324 msgid "Base find - Description" msgstr "" -#: models.py:324 +#: models.py:325 msgid "Base find - Topographic localisation" msgstr "" -#: models.py:326 +#: models.py:327 msgid "Base find - Special interest" msgstr "" -#: models.py:327 +#: models.py:328 msgid "Base find - Discovery date" msgstr "" -#: models.py:375 models.py:856 +#: models.py:376 models.py:860 msgid "Order" msgstr "" -#: models.py:386 +#: models.py:387 msgid "Type of preservation to consider" msgstr "" -#: models.py:390 +#: models.py:391 msgid "Weight unit" msgstr "" -#: models.py:396 templates/ishtar/sheet_find.html:83 +#: models.py:397 templates/ishtar/sheet_find.html:83 msgid "Upstream treatment" msgstr "" -#: models.py:399 templates/ishtar/sheet_find.html:112 +#: models.py:400 templates/ishtar/sheet_find.html:112 msgid "Downstream treatment" msgstr "" -#: models.py:403 models.py:782 models.py:866 +#: models.py:404 models.py:786 models.py:870 #: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:120 msgid "Container" msgstr "" -#: models.py:433 +#: models.py:434 msgid "Cached name" msgstr "" -#: models.py:442 +#: models.py:443 msgid "Can view all Finds" msgstr "" -#: models.py:443 +#: models.py:444 msgid "Can view own Find" msgstr "" -#: models.py:444 +#: models.py:445 msgid "Can add own Find" msgstr "" -#: models.py:445 +#: models.py:446 msgid "Can change own Find" msgstr "" -#: models.py:446 +#: models.py:447 msgid "Can delete own Find" msgstr "" -#: models.py:452 +#: models.py:453 msgid "FIND" msgstr "" -#: models.py:748 +#: models.py:752 msgid "Find documentation" msgstr "" -#: models.py:749 +#: models.py:753 msgid "Find documentations" msgstr "" -#: models.py:759 +#: models.py:763 msgid "Virtual" msgstr "" -#: models.py:761 +#: models.py:765 msgid "Upstream is many" msgstr "" -#: models.py:763 +#: models.py:767 msgid "Check this if for this treatment from many finds you'll get one." msgstr "" -#: models.py:766 +#: models.py:770 msgid "Downstream is many" msgstr "" -#: models.py:768 +#: models.py:772 msgid "Check this if for this treatment from one find you'll get many." msgstr "" -#: models.py:773 +#: models.py:777 msgid "Treatment types" msgstr "" -#: models.py:791 +#: models.py:795 msgid "Location where the treatment is done. Target warehouse for a move." msgstr "" -#: models.py:793 +#: models.py:797 msgid "Other location" msgstr "" -#: models.py:803 models.py:852 models.py:992 +#: models.py:807 models.py:856 models.py:996 msgid "Treatment" msgstr "" -#: models.py:804 templates/ishtar/sheet_find.html:80 +#: models.py:808 templates/ishtar/sheet_find.html:80 msgid "Treatments" msgstr "" -#: models.py:806 +#: models.py:810 msgid "Can view all Treatments" msgstr "" -#: models.py:807 +#: models.py:811 msgid "Can view own Treatment" msgstr "" -#: models.py:808 +#: models.py:812 msgid "Can add own Treatment" msgstr "" -#: models.py:809 +#: models.py:813 msgid "Can change own Treatment" msgstr "" -#: models.py:810 +#: models.py:814 msgid "Can delete own Treatment" msgstr "" -#: models.py:816 +#: models.py:820 msgid "by" msgstr "" -#: models.py:868 models.py:869 templates/ishtar/sheet_find.html:89 +#: models.py:872 models.py:873 templates/ishtar/sheet_find.html:89 #: templates/ishtar/sheet_find.html:118 msgid "Related finds" msgstr "" -#: models.py:978 +#: models.py:982 msgid "Is upstream" msgstr "" -#: models.py:989 +#: models.py:993 msgid "Treatment documentation" msgstr "" -#: models.py:990 +#: models.py:994 msgid "Treament documentations" msgstr "" -#: models.py:1002 +#: models.py:1006 msgid "Administrative act" msgstr "" -#: models.py:1003 +#: models.py:1007 msgid "Person" msgstr "" -#: models.py:1009 +#: models.py:1013 msgid "Property" msgstr "" -#: models.py:1010 +#: models.py:1014 msgid "Properties" msgstr "" diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index 0e55c760b..d20ceba2d 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -8,13 +8,13 @@ msgid "" msgstr "" -#: forms.py:67 forms.py:369 forms.py:1004 forms.py:1026 forms.py:1030 +#: forms.py:69 forms.py:371 forms.py:1009 forms.py:1031 forms.py:1035 #: models.py:1168 templates/ishtar/sheet_operation.html:144 #: templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "" -#: forms.py:70 forms.py:203 forms.py:980 models.py:1154 +#: forms.py:72 forms.py:205 forms.py:985 models.py:1154 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -23,96 +23,96 @@ msgstr "" msgid "Town" msgstr "" -#: forms.py:72 forms.py:459 forms.py:755 forms.py:1250 models.py:249 +#: forms.py:74 forms.py:455 forms.py:752 forms.py:1255 models.py:249 #: models.py:971 models.py:1152 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "" -#: forms.py:75 models.py:1155 +#: forms.py:77 models.py:1155 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "" -#: forms.py:78 models.py:1157 +#: forms.py:80 models.py:1157 msgid "Parcel number" msgstr "" -#: forms.py:80 models.py:1159 models.py:1176 models.py:1225 +#: forms.py:82 models.py:1159 models.py:1176 models.py:1225 msgid "Public domain" msgstr "" -#: forms.py:124 +#: forms.py:126 msgid "Town section is required." msgstr "" -#: forms.py:160 +#: forms.py:162 msgid "public domain" msgstr "" -#: forms.py:167 +#: forms.py:169 msgid "Current parcels" msgstr "" -#: forms.py:169 +#: forms.py:171 msgid "Deleted parcels" msgstr "" -#: forms.py:206 +#: forms.py:208 msgid "Full text input" msgstr "" -#: forms.py:208 +#: forms.py:210 msgid "example: \"2013: XD:1 to 13,24,33 to 39, YD:24\" or \"AB:24,AC:42\"" msgstr "" -#: forms.py:363 +#: forms.py:365 msgid "There are identical parcels." msgstr "" -#: forms.py:378 +#: forms.py:380 msgid "Relation type" msgstr "" -#: forms.py:381 ishtar_menu.py:30 models.py:344 models.py:804 models.py:834 +#: forms.py:383 ishtar_menu.py:30 models.py:344 models.py:804 models.py:834 #: models.py:862 models.py:963 models.py:1151 wizards.py:339 wizards.py:350 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "" -#: forms.py:401 +#: forms.py:403 msgid ":" msgstr "" -#: forms.py:409 forms.py:608 forms.py:1215 +#: forms.py:411 forms.py:605 forms.py:1220 msgid "You should select an operation." msgstr "" -#: forms.py:413 +#: forms.py:415 msgid "You should select a relation type." msgstr "" -#: forms.py:443 +#: forms.py:445 msgid "Current relations" msgstr "" -#: forms.py:445 +#: forms.py:447 msgid "Deleted relations" msgstr "" -#: forms.py:449 templates/ishtar/sheet_operation.html:83 +#: forms.py:451 templates/ishtar/sheet_operation.html:83 msgid "Relations" msgstr "" -#: forms.py:460 forms.py:1221 models.py:250 +#: forms.py:456 forms.py:1226 models.py:250 msgid "Numeric reference" msgstr "" -#: forms.py:466 forms.py:1261 +#: forms.py:462 forms.py:1266 msgid "Parcel (section/number/public domain)" msgstr "" -#: forms.py:469 forms.py:1264 models.py:805 +#: forms.py:465 forms.py:1269 models.py:805 #: templates/ishtar/dashboards/dashboard_operation.html:390 #: templates/ishtar/dashboards/dashboard_operation.html:411 #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -121,211 +121,211 @@ msgstr "" msgid "Department" msgstr "" -#: forms.py:470 forms.py:1092 models.py:85 +#: forms.py:466 forms.py:1097 models.py:85 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8 msgid "Name" msgstr "" -#: forms.py:472 forms.py:675 forms.py:753 forms.py:1227 models.py:257 +#: forms.py:468 forms.py:672 forms.py:750 forms.py:1232 models.py:257 msgid "Operation type" msgstr "" -#: forms.py:474 +#: forms.py:470 msgid "Is open?" msgstr "" -#: forms.py:483 forms.py:782 models.py:246 +#: forms.py:478 forms.py:782 models.py:246 msgid "In charge" msgstr "" -#: forms.py:490 models.py:957 +#: forms.py:485 models.py:957 msgid "Scientist in charge" msgstr "" -#: forms.py:492 forms.py:677 forms.py:773 models.py:244 +#: forms.py:487 forms.py:674 forms.py:772 models.py:244 msgid "Operator" msgstr "" -#: forms.py:499 forms.py:1097 models.py:89 models.py:259 +#: forms.py:496 forms.py:1102 models.py:89 models.py:259 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10 msgid "Remains" msgstr "" -#: forms.py:500 forms.py:1075 forms.py:1094 models.py:87 models.py:265 +#: forms.py:497 forms.py:1080 forms.py:1099 models.py:87 models.py:265 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9 msgid "Periods" msgstr "" -#: forms.py:501 +#: forms.py:498 msgid "Started before" msgstr "" -#: forms.py:503 +#: forms.py:500 msgid "Started after" msgstr "" -#: forms.py:505 +#: forms.py:502 msgid "Ended before" msgstr "" -#: forms.py:507 +#: forms.py:504 msgid "Ended after" msgstr "" -#: forms.py:510 +#: forms.py:507 msgid "Search within relations" msgstr "" -#: forms.py:512 forms.py:832 +#: forms.py:509 forms.py:837 msgid "Comment" msgstr "" -#: forms.py:513 +#: forms.py:510 msgid "Abstract (full text search)" msgstr "" -#: forms.py:515 forms.py:835 models.py:313 +#: forms.py:512 forms.py:840 models.py:313 msgid "Comment about scientific documentation" msgstr "" -#: forms.py:516 forms.py:837 models.py:325 +#: forms.py:513 forms.py:842 models.py:325 msgid "Record quality" msgstr "" -#: forms.py:517 forms.py:805 models.py:277 +#: forms.py:514 forms.py:807 models.py:277 msgid "Report processing" msgstr "" -#: forms.py:519 forms.py:840 models.py:320 +#: forms.py:516 forms.py:845 models.py:320 msgid "Virtual operation" msgstr "" -#: forms.py:521 forms.py:1141 +#: forms.py:518 forms.py:1146 msgid "Archaelogical site" msgstr "" -#: forms.py:527 forms.py:1268 +#: forms.py:524 forms.py:1273 msgid "Created by" msgstr "" -#: forms.py:533 forms.py:1274 +#: forms.py:530 forms.py:1279 msgid "Modified by" msgstr "" -#: forms.py:540 +#: forms.py:537 msgid "Documentation deadline before" msgstr "" -#: forms.py:542 +#: forms.py:539 msgid "Documentation deadline after" msgstr "" -#: forms.py:544 forms.py:825 models.py:332 +#: forms.py:541 forms.py:830 models.py:332 msgid "Documentation received" msgstr "" -#: forms.py:546 +#: forms.py:543 msgid "Finds deadline before" msgstr "" -#: forms.py:548 +#: forms.py:545 msgid "Finds deadline after" msgstr "" -#: forms.py:550 forms.py:830 models.py:336 +#: forms.py:547 forms.py:835 models.py:336 msgid "Finds received" msgstr "" -#: forms.py:595 forms.py:1213 views.py:168 +#: forms.py:592 forms.py:1218 views.py:168 msgid "Operation search" msgstr "" -#: forms.py:639 +#: forms.py:636 msgid "Associated file" msgstr "" -#: forms.py:643 forms.py:928 models.py:968 wizards.py:76 +#: forms.py:640 forms.py:933 models.py:968 wizards.py:76 msgid "Archaelogical file" msgstr "" -#: forms.py:650 forms.py:652 models.py:327 +#: forms.py:647 forms.py:649 models.py:327 msgid "Abstract" msgstr "" -#: forms.py:655 +#: forms.py:652 msgid "months" msgstr "" -#: forms.py:655 +#: forms.py:652 msgid "years" msgstr "" -#: forms.py:657 models.py:230 +#: forms.py:654 models.py:230 msgid "Creation date" msgstr "" -#: forms.py:658 +#: forms.py:655 msgid "Start of field work" msgstr "" -#: forms.py:660 +#: forms.py:657 msgid "All" msgstr "" -#: forms.py:661 +#: forms.py:658 msgid "Preventive" msgstr "" -#: forms.py:662 +#: forms.py:659 msgid "Research" msgstr "" -#: forms.py:666 +#: forms.py:663 msgid "Slicing" msgstr "" -#: forms.py:669 +#: forms.py:666 msgid "Department detail" msgstr "" -#: forms.py:671 +#: forms.py:668 msgid "Date get from" msgstr "" -#: forms.py:673 +#: forms.py:670 msgid "Preventive/Research" msgstr "" -#: forms.py:679 +#: forms.py:676 msgid "Date after" msgstr "" -#: forms.py:681 +#: forms.py:678 msgid "Date before" msgstr "" -#: forms.py:683 +#: forms.py:680 msgid "With reports" msgstr "" -#: forms.py:684 +#: forms.py:681 msgid "With finds" msgstr "" -#: forms.py:736 forms.py:1322 templates/ishtar/sheet_administrativeact.html:13 +#: forms.py:733 forms.py:1327 templates/ishtar/sheet_administrativeact.html:13 #: templates/ishtar/sheet_operation.html:24 msgid "General" msgstr "" -#: forms.py:751 models.py:310 +#: forms.py:748 models.py:310 msgid "Generic name" msgstr "" -#: forms.py:760 models.py:279 +#: forms.py:757 models.py:279 msgid "Old code" msgstr "" -#: forms.py:763 +#: forms.py:760 msgid "Head scientist" msgstr "" @@ -333,245 +333,245 @@ msgstr "" msgid "Operator reference" msgstr "" -#: forms.py:791 +#: forms.py:793 msgid "Total surface (m2)" msgstr "" -#: forms.py:798 models.py:53 models.py:233 models.py:1341 +#: forms.py:800 models.py:53 models.py:233 models.py:1341 msgid "Start date" msgstr "" -#: forms.py:800 models.py:235 +#: forms.py:802 models.py:235 msgid "Excavation end date" msgstr "" -#: forms.py:803 models.py:236 +#: forms.py:805 models.py:236 msgid "Report delivery date" msgstr "" -#: forms.py:822 models.py:329 +#: forms.py:827 models.py:329 msgid "Deadline for submission of the documentation" msgstr "" -#: forms.py:827 models.py:334 +#: forms.py:832 models.py:334 msgid "Deadline for submission of the finds" msgstr "" -#: forms.py:842 +#: forms.py:847 msgid "Image" msgstr "" -#: forms.py:843 +#: forms.py:848 #, python-format msgid "" "

Heavy images are resized to: %(width)dx%(height)d (ratio is preserved)." msgstr "" -#: forms.py:881 +#: forms.py:886 msgid "" "If you want to set an excavation end date you have to provide a start date." msgstr "" -#: forms.py:886 +#: forms.py:891 msgid "The excavation end date cannot be before the start date." msgstr "" -#: forms.py:914 +#: forms.py:919 #, python-format msgid "" "Operation code already exist for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:918 +#: forms.py:923 msgid "Bad operation code" msgstr "" -#: forms.py:924 models.py:486 +#: forms.py:929 models.py:486 msgid "Operation code" msgstr "" -#: forms.py:950 +#: forms.py:955 msgid "Preventive informations - excavation" msgstr "" -#: forms.py:951 models.py:263 +#: forms.py:956 models.py:263 #: templates/ishtar/dashboards/dashboard_operation.html:701 msgid "Cost (euros)" msgstr "" -#: forms.py:952 models.py:268 +#: forms.py:957 models.py:268 msgid "Scheduled man-days" msgstr "" -#: forms.py:954 models.py:271 +#: forms.py:959 models.py:271 msgid "Optional man-days" msgstr "" -#: forms.py:956 models.py:274 +#: forms.py:961 models.py:274 msgid "Effective man-days" msgstr "" -#: forms.py:966 +#: forms.py:971 msgid "Preventive informations - diagnostic" msgstr "" -#: forms.py:969 models.py:293 +#: forms.py:974 models.py:293 msgid "Prescription on zoning" msgstr "" -#: forms.py:971 models.py:296 +#: forms.py:976 models.py:296 msgid "Prescription on large area" msgstr "" -#: forms.py:974 models.py:298 +#: forms.py:979 models.py:298 msgid "Prescription on geoarchaeological context" msgstr "" -#: forms.py:978 forms.py:1000 models.py:261 models.py:981 +#: forms.py:983 forms.py:1005 models.py:261 models.py:981 msgid "Towns" msgstr "" -#: forms.py:1007 models.py:1167 models.py:1339 +#: forms.py:1012 models.py:1167 models.py:1339 msgid "Parcel" msgstr "" -#: forms.py:1059 models.py:45 +#: forms.py:1064 models.py:45 msgid "Remain types" msgstr "" -#: forms.py:1063 models.py:44 +#: forms.py:1068 models.py:44 msgid "Remain type" msgstr "" -#: forms.py:1079 templates/ishtar/sheet_operation.html:164 +#: forms.py:1084 templates/ishtar/sheet_operation.html:164 #: templates/ishtar/sheet_operation.html:195 msgid "Period" msgstr "" -#: forms.py:1091 models.py:84 +#: forms.py:1096 models.py:84 msgid "Reference" msgstr "" -#: forms.py:1120 +#: forms.py:1125 msgid "This reference already exists." msgstr "" -#: forms.py:1137 models.py:93 +#: forms.py:1142 models.py:93 msgid "Archaeological site" msgstr "" -#: forms.py:1152 models.py:94 models.py:317 +#: forms.py:1157 models.py:94 models.py:317 #: templates/ishtar/sheet_operation.html:94 msgid "Archaeological sites" msgstr "" -#: forms.py:1156 +#: forms.py:1161 msgid "Associated archaelogical sites" msgstr "" -#: forms.py:1162 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 +#: forms.py:1167 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 msgid "Search" msgstr "" -#: forms.py:1167 +#: forms.py:1172 msgid "Would you like to close this operation?" msgstr "" -#: forms.py:1172 +#: forms.py:1177 msgid "Would you like to delete this operation?" msgstr "" -#: forms.py:1181 forms.py:1251 forms.py:1387 models.py:836 models.py:948 +#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:836 models.py:948 msgid "Index" msgstr "" -#: forms.py:1207 +#: forms.py:1212 #, python-format msgid "" "Index already exists for operation: %(operation)s - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:1219 +#: forms.py:1224 msgid "Operation's year" msgstr "" -#: forms.py:1226 +#: forms.py:1231 msgid "Operation's town" msgstr "" -#: forms.py:1239 +#: forms.py:1244 msgid "Documentation search" msgstr "" -#: forms.py:1241 +#: forms.py:1246 msgid "You should select a document." msgstr "" -#: forms.py:1258 forms.py:1325 models.py:873 models.py:942 +#: forms.py:1263 forms.py:1330 models.py:873 models.py:942 msgid "Act type" msgstr "" -#: forms.py:1259 forms.py:1457 +#: forms.py:1264 forms.py:1462 msgid "Indexed?" msgstr "" -#: forms.py:1265 forms.py:1330 models.py:972 +#: forms.py:1270 forms.py:1335 models.py:972 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "" -#: forms.py:1302 views.py:324 +#: forms.py:1307 views.py:324 msgid "Administrative act search" msgstr "" -#: forms.py:1317 forms.py:1415 forms.py:1482 +#: forms.py:1322 forms.py:1420 forms.py:1487 msgid "You should select an administrative act." msgstr "" -#: forms.py:1333 models.py:969 +#: forms.py:1338 models.py:969 msgid "Signature date" msgstr "" -#: forms.py:1375 +#: forms.py:1380 #, python-format msgid "" "This index already exist for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:1379 +#: forms.py:1384 msgid "Bad index" msgstr "" -#: forms.py:1392 +#: forms.py:1397 msgid "Would you like to delete this administrative act?" msgstr "" -#: forms.py:1397 +#: forms.py:1402 msgid "Template" msgstr "" -#: forms.py:1421 forms.py:1425 +#: forms.py:1426 forms.py:1430 msgid "This document is not intended for this type of act." msgstr "" -#: forms.py:1443 +#: forms.py:1448 msgid "Doc generation" msgstr "" -#: forms.py:1445 +#: forms.py:1450 msgid "Generate the associated doc?" msgstr "" -#: forms.py:1466 ishtar_menu.py:121 views.py:377 +#: forms.py:1471 ishtar_menu.py:121 views.py:377 msgctxt "admin act register" msgid "Register" msgstr "" -#: ishtar_menu.py:38 +#: ishtar_menu.py:38 ishtar_menu.py:69 ishtar_menu.py:97 msgid "Creation" msgstr "" @@ -592,10 +592,6 @@ msgstr "" msgid "Administrative act" msgstr "" -#: ishtar_menu.py:69 ishtar_menu.py:97 widgets.py:55 -msgid "Add" -msgstr "" - #: ishtar_menu.py:84 msgid "Documents" msgstr "" @@ -1031,6 +1027,10 @@ msgstr "" msgid "Operation: administrative act deletion" msgstr "" +#: widgets.py:55 +msgid "Add" +msgstr "" + #: wizards.py:199 msgid "" "Warning: No Archaelogical File is provided. If you have forget it return to " diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 5110bca31..b687a55ed 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -127,40 +127,40 @@ msgstr "" msgid "\"%(value)s\" not in %(values)s" msgstr "" -#: forms.py:55 +#: forms.py:72 msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "" -#: forms.py:71 forms_common.py:618 +#: forms.py:88 forms_common.py:618 msgid "Confirm" msgstr "" -#: forms.py:76 +#: forms.py:93 msgid "Are you sure you want to delete?" msgstr "" -#: forms.py:85 +#: forms.py:102 msgid "There are identical items." msgstr "" -#: forms.py:123 forms.py:124 +#: forms.py:140 forms.py:141 msgid "Closing date" msgstr "" -#: forms.py:137 +#: forms.py:154 msgid "You should select an item." msgstr "" -#: forms.py:138 +#: forms.py:155 msgid "Add a new item" msgstr "" -#: forms.py:245 models.py:1310 +#: forms.py:262 models.py:1355 msgid "Template" msgstr "" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1376 models.py:2758 +#: forms_common.py:406 models.py:1421 models.py:2810 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -176,8 +176,8 @@ msgid "" "french town Saint-Denis in the Seine-Saint-Denis department.

" msgstr "" -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1546 -#: models.py:2384 models.py:2566 models.py:2628 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1594 +#: models.py:2436 models.py:2618 models.py:2680 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" @@ -189,63 +189,63 @@ msgid "" msgstr "" #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1547 models.py:2273 +#: ishtar_menu.py:75 models.py:1595 models.py:2322 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:977 models.py:1309 -#: models.py:1592 models.py:1810 models.py:2267 models.py:2370 models.py:2744 +#: forms_common.py:376 forms_common.py:446 models.py:1022 models.py:1354 +#: models.py:1640 models.py:1859 models.py:2316 models.py:2422 models.py:2796 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "" -#: forms_common.py:174 models.py:1531 models.py:1941 +#: forms_common.py:174 models.py:1576 models.py:1990 msgid "Organization type" msgstr "" -#: forms_common.py:176 forms_common.py:400 models.py:1371 +#: forms_common.py:176 forms_common.py:400 models.py:1416 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "" -#: forms_common.py:178 forms_common.py:403 models.py:1372 +#: forms_common.py:178 forms_common.py:403 models.py:1417 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "" -#: forms_common.py:180 forms_common.py:404 models.py:1374 +#: forms_common.py:180 forms_common.py:404 models.py:1419 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "" -#: forms_common.py:183 forms_common.py:407 models.py:1377 +#: forms_common.py:183 forms_common.py:407 models.py:1422 msgid "Country" msgstr "" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1404 +#: forms_common.py:448 forms_common.py:572 models.py:1449 msgid "Email" msgstr "" -#: forms_common.py:186 forms_common.py:383 models.py:1389 +#: forms_common.py:186 forms_common.py:383 models.py:1434 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "" -#: forms_common.py:187 forms_common.py:392 models.py:1401 +#: forms_common.py:187 forms_common.py:392 models.py:1446 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:1969 -#: models.py:2269 models.py:2679 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2018 +#: models.py:2318 models.py:2731 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -253,12 +253,12 @@ msgstr "" msgid "Type" msgstr "" -#: forms_common.py:220 views.py:139 +#: forms_common.py:220 views.py:142 msgid "Organization search" msgstr "" #: forms_common.py:244 -msgid "At leat two items have to be selected." +msgid "At least two items have to be selected." msgstr "" #: forms_common.py:262 @@ -269,12 +269,12 @@ msgstr "" msgid "Organization to merge" msgstr "" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2368 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2420 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "" -#: forms_common.py:339 forms_common.py:434 views.py:104 +#: forms_common.py:339 forms_common.py:434 views.py:107 msgid "Person search" msgstr "" @@ -287,25 +287,25 @@ msgstr "" msgid "Identity" msgstr "" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1942 -#: models.py:2362 models.py:2364 models.py:2676 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1991 +#: models.py:2414 models.py:2416 models.py:2728 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" -#: forms_common.py:372 models.py:2366 +#: forms_common.py:372 models.py:2418 msgid "Salutation" msgstr "" -#: forms_common.py:378 models.py:2372 +#: forms_common.py:378 models.py:2424 msgid "Raw name" msgstr "" -#: forms_common.py:381 models.py:1390 +#: forms_common.py:381 models.py:1435 msgid "Phone description" msgstr "" -#: forms_common.py:384 models.py:1392 models.py:1394 +#: forms_common.py:384 models.py:1437 models.py:1439 msgid "Phone description 2" msgstr "" @@ -313,11 +313,11 @@ msgstr "" msgid "Phone 2" msgstr "" -#: forms_common.py:388 models.py:1398 +#: forms_common.py:388 models.py:1443 msgid "Phone description 3" msgstr "" -#: forms_common.py:390 models.py:1396 +#: forms_common.py:390 models.py:1441 msgid "Phone 3" msgstr "" @@ -325,23 +325,23 @@ msgstr "" msgid "Current organization" msgstr "" -#: forms_common.py:409 models.py:1379 +#: forms_common.py:409 models.py:1424 msgid "Other address: address" msgstr "" -#: forms_common.py:412 models.py:1382 +#: forms_common.py:412 models.py:1427 msgid "Other address: address complement" msgstr "" -#: forms_common.py:414 models.py:1383 +#: forms_common.py:414 models.py:1428 msgid "Other address: postal code" msgstr "" -#: forms_common.py:416 models.py:1385 +#: forms_common.py:416 models.py:1430 msgid "Other address: town" msgstr "" -#: forms_common.py:418 models.py:1387 +#: forms_common.py:418 models.py:1432 msgid "Other address: country" msgstr "" @@ -357,7 +357,7 @@ msgstr "" msgid "Account search" msgstr "" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2321 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2370 msgid "Person type" msgstr "" @@ -365,7 +365,7 @@ msgstr "" msgid "Account" msgstr "" -#: forms_common.py:575 wizards.py:1192 +#: forms_common.py:575 wizards.py:1194 msgid "New password" msgstr "" @@ -389,7 +389,7 @@ msgstr "" msgid "Send the new password by email?" msgstr "" -#: forms_common.py:628 forms_common.py:641 models.py:2759 +#: forms_common.py:628 forms_common.py:641 models.py:2811 msgid "Towns" msgstr "" @@ -405,7 +405,7 @@ msgstr "" msgid "Documentation informations" msgstr "" -#: forms_common.py:775 forms_common.py:823 models.py:1943 models.py:2653 +#: forms_common.py:775 forms_common.py:823 models.py:1992 models.py:2705 msgid "Source type" msgstr "" @@ -417,37 +417,37 @@ msgstr "" msgid "Internal reference" msgstr "" -#: forms_common.py:783 models.py:2690 +#: forms_common.py:783 models.py:2742 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:784 models.py:2692 +#: forms_common.py:784 models.py:2744 msgid "Receipt date" msgstr "" -#: forms_common.py:786 models.py:2096 models.py:2694 +#: forms_common.py:786 models.py:2145 models.py:2746 msgid "Creation date" msgstr "" -#: forms_common.py:789 models.py:2697 +#: forms_common.py:789 models.py:2749 msgid "Receipt date in documentation" msgstr "" -#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:577 -#: models.py:1837 models.py:2376 models.py:2704 +#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:622 +#: models.py:1886 models.py:2428 models.py:2756 msgid "Comment" msgstr "" -#: forms_common.py:793 forms_common.py:826 models.py:979 models.py:1596 -#: models.py:1769 models.py:1811 models.py:2703 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1024 models.py:1644 +#: models.py:1818 models.py:1860 models.py:2755 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:796 models.py:2705 +#: forms_common.py:796 models.py:2757 msgid "Additional information" msgstr "" -#: forms_common.py:798 forms_common.py:830 models.py:2707 +#: forms_common.py:798 forms_common.py:830 models.py:2759 msgid "Has a duplicate" msgstr "" @@ -462,7 +462,7 @@ msgid "" "p>" msgstr "" -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2633 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2685 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" @@ -475,7 +475,7 @@ msgstr "" msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:856 models.py:1944 models.py:2621 models.py:2630 +#: forms_common.py:856 models.py:1993 models.py:2673 models.py:2682 msgid "Author type" msgstr "" @@ -487,7 +487,7 @@ msgstr "" msgid "There are identical authors." msgstr "" -#: forms_common.py:893 models.py:2634 models.py:2686 +#: forms_common.py:893 models.py:2686 models.py:2738 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -501,11 +501,11 @@ msgstr "" msgid "Add/modify" msgstr "" -#: ishtar_menu.py:36 +#: ishtar_menu.py:36 ishtar_menu.py:70 ishtar_menu.py:101 msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1105 views.py:1484 +#: ishtar_menu.py:39 models.py:1150 views.py:1494 msgid "Global variables" msgstr "" @@ -533,20 +533,15 @@ msgstr "" msgid "Manual merge" msgstr "" -#: ishtar_menu.py:70 ishtar_menu.py:101 models.py:2133 widgets.py:110 -#: templates/ishtar/form_delete.html:11 -msgid "Delete" -msgstr "" - -#: ishtar_menu.py:109 models.py:2107 +#: ishtar_menu.py:109 models.py:2156 msgid "Imports" msgstr "" -#: ishtar_menu.py:112 views.py:1492 +#: ishtar_menu.py:112 views.py:1502 msgid "New import" msgstr "" -#: ishtar_menu.py:116 views.py:1506 +#: ishtar_menu.py:116 views.py:1516 msgid "Current imports" msgstr "" @@ -566,7 +561,7 @@ msgstr "" msgid "This item already exists." msgstr "" -#: models.py:313 models.py:576 models.py:1344 models.py:1356 +#: models.py:313 models.py:621 models.py:1389 models.py:1401 models.py:1815 msgid "Label" msgstr "" @@ -574,192 +569,192 @@ msgstr "" msgid "Textual ID" msgstr "" -#: models.py:318 models.py:579 models.py:1313 +#: models.py:318 models.py:624 models.py:1358 msgid "Available" msgstr "" -#: models.py:598 models.py:1883 +#: models.py:643 models.py:1932 msgid "Key" msgstr "" -#: models.py:604 +#: models.py:649 msgid "Specific key to an import" msgstr "" -#: models.py:696 +#: models.py:741 msgid "Last editor" msgstr "" -#: models.py:699 +#: models.py:744 msgid "Creator" msgstr "" -#: models.py:841 models.py:2770 +#: models.py:886 models.py:2822 msgid "Order" msgstr "" -#: models.py:842 +#: models.py:887 msgid "Symmetrical" msgstr "" -#: models.py:843 +#: models.py:888 msgid "Tiny label" msgstr "" -#: models.py:857 +#: models.py:902 msgid "Cannot have symmetrical and an inverse_relation" msgstr "" -#: models.py:971 +#: models.py:1016 msgid "Euro" msgstr "" -#: models.py:972 +#: models.py:1017 msgid "US dollar" msgstr "" -#: models.py:978 models.py:1594 +#: models.py:1023 models.py:1642 msgid "Slug" msgstr "" -#: models.py:980 +#: models.py:1025 msgid "Files module" msgstr "" -#: models.py:981 +#: models.py:1026 msgid "Context records module" msgstr "" -#: models.py:983 +#: models.py:1028 msgid "Finds module" msgstr "" -#: models.py:984 +#: models.py:1029 msgid "Need context records module" msgstr "" -#: models.py:986 +#: models.py:1031 msgid "Warehouses module" msgstr "" -#: models.py:987 +#: models.py:1032 msgid "Need finds module" msgstr "" -#: models.py:989 +#: models.py:1034 msgid "Home page" msgstr "" -#: models.py:990 +#: models.py:1035 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " "markdown syntax. {random_image} can be used to display a random image." msgstr "" -#: models.py:994 +#: models.py:1039 msgid "File external id" msgstr "" -#: models.py:996 +#: models.py:1041 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1001 +#: models.py:1046 msgid "Parcel external id" msgstr "" -#: models.py:1004 +#: models.py:1049 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1009 +#: models.py:1054 msgid "Context record external id" msgstr "" -#: models.py:1011 +#: models.py:1056 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1016 +#: models.py:1061 msgid "Base find external id" msgstr "" -#: models.py:1018 +#: models.py:1063 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1023 +#: models.py:1068 msgid "Find external id" msgstr "" -#: models.py:1025 +#: models.py:1070 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1030 +#: models.py:1075 msgid "Raw name for person" msgstr "" -#: models.py:1032 +#: models.py:1077 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1036 +#: models.py:1081 msgid "Current active" msgstr "" -#: models.py:1037 +#: models.py:1082 msgid "Currency" msgstr "" -#: models.py:1041 +#: models.py:1086 msgid "Ishtar site profile" msgstr "" -#: models.py:1042 +#: models.py:1087 msgid "Ishtar site profiles" msgstr "" -#: models.py:1098 +#: models.py:1143 msgid "Variable name" msgstr "" -#: models.py:1099 +#: models.py:1144 msgid "Description of the variable" msgstr "" -#: models.py:1101 models.py:1884 +#: models.py:1146 models.py:1933 msgid "Value" msgstr "" -#: models.py:1104 +#: models.py:1149 msgid "Global variable" msgstr "" -#: models.py:1214 models.py:1244 +#: models.py:1259 models.py:1289 msgid "Total" msgstr "" -#: models.py:1221 models.py:1345 models.py:1357 +#: models.py:1266 models.py:1390 models.py:1402 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -767,597 +762,601 @@ msgstr "" msgid "Number" msgstr "" -#: models.py:1308 +#: models.py:1353 msgid "Administrative Act" msgstr "" -#: models.py:1312 +#: models.py:1357 msgid "Associated object" msgstr "" -#: models.py:1316 +#: models.py:1361 msgid "Document template" msgstr "" -#: models.py:1317 +#: models.py:1362 msgid "Document templates" msgstr "" -#: models.py:1348 models.py:1358 models.py:2091 +#: models.py:1393 models.py:1403 models.py:2140 msgid "State" msgstr "" -#: models.py:1362 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1407 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "" -#: models.py:1363 +#: models.py:1408 msgid "Departments" msgstr "" -#: models.py:1400 +#: models.py:1445 msgid "Raw phone" msgstr "" -#: models.py:1406 +#: models.py:1451 msgid "Alternative address is prefered" msgstr "" -#: models.py:1445 +#: models.py:1490 msgid "Tel: " msgstr "" -#: models.py:1449 +#: models.py:1494 msgid "Mobile: " msgstr "" -#: models.py:1453 +#: models.py:1498 msgid "Email: " msgstr "" -#: models.py:1458 +#: models.py:1503 msgid "Merge key" msgstr "" -#: models.py:1532 +#: models.py:1577 msgid "Organization types" msgstr "" -#: models.py:1548 views.py:234 +#: models.py:1596 views.py:237 msgid "Operation" msgstr "" -#: models.py:1550 +#: models.py:1598 msgid "Archaeological site" msgstr "" -#: models.py:1551 +#: models.py:1599 msgid "Parcels" msgstr "" -#: models.py:1553 +#: models.py:1601 msgid "Operation source" msgstr "" -#: models.py:1556 views.py:1299 views.py:1350 +#: models.py:1604 views.py:1310 views.py:1360 msgid "Archaeological files" msgstr "" -#: models.py:1558 views.py:1302 views.py:1358 +#: models.py:1606 views.py:1313 views.py:1368 msgid "Context records" msgstr "" -#: models.py:1560 +#: models.py:1608 msgid "Context record relations" msgstr "" -#: models.py:1562 views.py:1304 views.py:1361 +#: models.py:1610 views.py:1315 views.py:1371 msgid "Finds" msgstr "" -#: models.py:1598 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1646 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "" -#: models.py:1600 +#: models.py:1648 msgid "Associated model" msgstr "" -#: models.py:1603 +#: models.py:1651 msgid "Is template" msgstr "" -#: models.py:1604 +#: models.py:1652 msgid "Unicity keys (separator \";\")" msgstr "" -#: models.py:1608 +#: models.py:1656 msgid "Importer - Type" msgstr "" -#: models.py:1609 +#: models.py:1657 msgid "Importer - Types" msgstr "" -#: models.py:1699 +#: models.py:1747 msgid "Importer - Default" msgstr "" -#: models.py:1700 +#: models.py:1748 msgid "Importer - Defaults" msgstr "" -#: models.py:1735 +#: models.py:1783 msgid "Importer - Default value" msgstr "" -#: models.py:1736 +#: models.py:1784 msgid "Importer - Default values" msgstr "" -#: models.py:1768 +#: models.py:1817 msgid "Column number" msgstr "" -#: models.py:1771 +#: models.py:1820 msgid "Required" msgstr "" -#: models.py:1774 +#: models.py:1823 msgid "Importer - Column" msgstr "" -#: models.py:1775 +#: models.py:1824 msgid "Importer - Columns" msgstr "" -#: models.py:1795 +#: models.py:1844 msgid "Field name" msgstr "" -#: models.py:1797 models.py:1831 +#: models.py:1846 models.py:1880 msgid "Force creation of new items" msgstr "" -#: models.py:1799 models.py:1833 +#: models.py:1848 models.py:1882 msgid "Concatenate with existing" msgstr "" -#: models.py:1801 models.py:1835 +#: models.py:1850 models.py:1884 msgid "Concatenate character" msgstr "" -#: models.py:1805 +#: models.py:1854 msgid "Importer - Duplicate field" msgstr "" -#: models.py:1806 +#: models.py:1855 msgid "Importer - Duplicate fields" msgstr "" -#: models.py:1813 +#: models.py:1862 msgid "Regular expression" msgstr "" -#: models.py:1816 +#: models.py:1865 msgid "Importer - Regular expression" msgstr "" -#: models.py:1817 +#: models.py:1866 msgid "Importer - Regular expressions" msgstr "" -#: models.py:1840 +#: models.py:1889 msgid "Importer - Target" msgstr "" -#: models.py:1841 +#: models.py:1890 msgid "Importer - Targets" msgstr "" -#: models.py:1865 views.py:518 +#: models.py:1914 views.py:520 msgid "True" msgstr "" -#: models.py:1866 views.py:520 +#: models.py:1915 views.py:522 msgid "False" msgstr "" -#: models.py:1885 +#: models.py:1934 msgid "Is set" msgstr "" -#: models.py:1892 +#: models.py:1941 msgid "Importer - Target key" msgstr "" -#: models.py:1893 +#: models.py:1942 msgid "Importer - Targets keys" msgstr "" -#: models.py:1945 models.py:2669 models.py:2682 +#: models.py:1994 models.py:2721 models.py:2734 msgid "Format" msgstr "" -#: models.py:1946 models.py:2774 +#: models.py:1995 models.py:2826 msgid "Operation type" msgstr "" -#: models.py:1947 +#: models.py:1996 msgid "Period" msgstr "" -#: models.py:1948 +#: models.py:1997 msgid "Report state" msgstr "" -#: models.py:1949 +#: models.py:1998 msgid "Unit" msgstr "" -#: models.py:1950 +#: models.py:1999 msgid "Material" msgstr "" -#: models.py:1952 +#: models.py:2001 msgid "Conservatory state" msgstr "" -#: models.py:1953 +#: models.py:2002 msgid "Preservation type" msgstr "" -#: models.py:1954 +#: models.py:2003 msgid "Object type" msgstr "" -#: models.py:1956 +#: models.py:2005 msgid "Identification type" msgstr "" -#: models.py:1958 +#: models.py:2007 msgid "Context record relation type" msgstr "" -#: models.py:1959 models.py:2661 +#: models.py:2008 models.py:2713 msgid "Support type" msgstr "" -#: models.py:1965 +#: models.py:2014 msgid "Integer" msgstr "" -#: models.py:1966 +#: models.py:2015 msgid "Float" msgstr "" -#: models.py:1967 +#: models.py:2016 msgid "String" msgstr "" -#: models.py:1968 templates/sheet_ope.html:86 +#: models.py:2017 templates/sheet_ope.html:86 msgid "Date" msgstr "" -#: models.py:1970 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2019 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "" -#: models.py:1971 +#: models.py:2020 msgid "String to boolean" msgstr "" -#: models.py:1972 +#: models.py:2021 msgctxt "filesystem" msgid "File" msgstr "" -#: models.py:1973 +#: models.py:2022 msgid "Unknow type" msgstr "" -#: models.py:1989 +#: models.py:2038 msgid "4 digit year. e.g.: \"2015\"" msgstr "" -#: models.py:1990 +#: models.py:2039 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "" -#: models.py:1991 +#: models.py:2040 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "" -#: models.py:2001 +#: models.py:2050 msgid "Options" msgstr "" -#: models.py:2003 +#: models.py:2052 msgid "Split character(s)" msgstr "" -#: models.py:2007 +#: models.py:2056 msgid "Importer - Formater type" msgstr "" -#: models.py:2008 +#: models.py:2057 msgid "Importer - Formater types" msgstr "" -#: models.py:2055 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2104 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "" -#: models.py:2056 +#: models.py:2105 msgid "Analyse in progress" msgstr "" -#: models.py:2057 +#: models.py:2106 msgid "Analysed" msgstr "" -#: models.py:2058 +#: models.py:2107 msgid "Import pending" msgstr "" -#: models.py:2059 +#: models.py:2108 msgid "Import in progress" msgstr "" -#: models.py:2060 +#: models.py:2109 msgid "Finished with errors" msgstr "" -#: models.py:2061 +#: models.py:2110 msgid "Finished" msgstr "" -#: models.py:2062 +#: models.py:2111 msgid "Archived" msgstr "" -#: models.py:2074 +#: models.py:2123 msgid "Imported file" msgstr "" -#: models.py:2077 +#: models.py:2126 msgid "Associated images (zip file)" msgstr "" -#: models.py:2079 +#: models.py:2128 msgid "Encoding" msgstr "" -#: models.py:2081 +#: models.py:2130 msgid "Skip lines" msgstr "" -#: models.py:2082 templates/ishtar/import_list.html:47 +#: models.py:2131 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "" -#: models.py:2085 +#: models.py:2134 msgid "Result file" msgstr "" -#: models.py:2088 templates/ishtar/import_list.html:53 +#: models.py:2137 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "" -#: models.py:2094 +#: models.py:2143 msgid "Conservative import" msgstr "" -#: models.py:2099 +#: models.py:2148 msgid "End date" msgstr "" -#: models.py:2101 +#: models.py:2150 msgid "Remaining seconds" msgstr "" -#: models.py:2106 +#: models.py:2155 msgid "Import" msgstr "" -#: models.py:2123 +#: models.py:2172 msgid "Analyse" msgstr "" -#: models.py:2125 models.py:2128 +#: models.py:2174 models.py:2177 msgid "Re-analyse" msgstr "" -#: models.py:2126 +#: models.py:2175 msgid "Launch import" msgstr "" -#: models.py:2129 +#: models.py:2178 msgid "Re-import" msgstr "" -#: models.py:2130 +#: models.py:2179 msgid "Archive" msgstr "" -#: models.py:2132 +#: models.py:2181 msgid "Unarchive" msgstr "" -#: models.py:2274 +#: models.py:2182 widgets.py:110 templates/ishtar/form_delete.html:11 +msgid "Delete" +msgstr "" + +#: models.py:2323 msgid "Organizations" msgstr "" -#: models.py:2276 +#: models.py:2325 msgid "Can view all Organizations" msgstr "" -#: models.py:2277 +#: models.py:2326 msgid "Can view own Organization" msgstr "" -#: models.py:2278 +#: models.py:2327 msgid "Can add own Organization" msgstr "" -#: models.py:2280 +#: models.py:2329 msgid "Can change own Organization" msgstr "" -#: models.py:2282 +#: models.py:2331 msgid "Can delete own Organization" msgstr "" -#: models.py:2317 +#: models.py:2366 msgid "Groups" msgstr "" -#: models.py:2322 +#: models.py:2371 msgid "Person types" msgstr "" -#: models.py:2330 +#: models.py:2382 msgid "Title type" msgstr "" -#: models.py:2331 +#: models.py:2383 msgid "Title types" msgstr "" -#: models.py:2340 +#: models.py:2392 msgid "Mr" msgstr "" -#: models.py:2341 +#: models.py:2393 msgid "Miss" msgstr "" -#: models.py:2342 +#: models.py:2394 msgid "Mr and Mrs" msgstr "" -#: models.py:2343 +#: models.py:2395 msgid "Mrs" msgstr "" -#: models.py:2344 +#: models.py:2396 msgid "Doctor" msgstr "" -#: models.py:2374 +#: models.py:2426 msgid "Contact type" msgstr "" -#: models.py:2377 models.py:2441 +#: models.py:2429 models.py:2493 msgid "Types" msgstr "" -#: models.py:2380 +#: models.py:2432 msgid "Is attached to" msgstr "" -#: models.py:2385 +#: models.py:2437 msgid "Persons" msgstr "" -#: models.py:2387 +#: models.py:2439 msgid "Can view all Persons" msgstr "" -#: models.py:2388 +#: models.py:2440 msgid "Can view own Person" msgstr "" -#: models.py:2389 +#: models.py:2441 msgid "Can add own Person" msgstr "" -#: models.py:2390 +#: models.py:2442 msgid "Can change own Person" msgstr "" -#: models.py:2391 +#: models.py:2443 msgid "Can delete own Person" msgstr "" -#: models.py:2569 +#: models.py:2621 msgid "Advanced shortcut menu" msgstr "" -#: models.py:2572 +#: models.py:2624 msgid "Ishtar user" msgstr "" -#: models.py:2573 +#: models.py:2625 msgid "Ishtar users" msgstr "" -#: models.py:2616 +#: models.py:2668 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2622 +#: models.py:2674 msgid "Author types" msgstr "" -#: models.py:2654 +#: models.py:2706 msgid "Source types" msgstr "" -#: models.py:2662 +#: models.py:2714 msgid "Support types" msgstr "" -#: models.py:2670 +#: models.py:2722 msgid "Formats" msgstr "" -#: models.py:2677 +#: models.py:2729 msgid "External ID" msgstr "" -#: models.py:2680 +#: models.py:2732 msgid "Support" msgstr "" -#: models.py:2684 +#: models.py:2736 msgid "Scale" msgstr "" -#: models.py:2698 +#: models.py:2750 msgid "Item number" msgstr "" -#: models.py:2699 +#: models.py:2751 msgid "Ref." msgstr "" -#: models.py:2702 +#: models.py:2754 msgid "Internal ref." msgstr "" -#: models.py:2745 +#: models.py:2797 msgid "Surface (m2)" msgstr "" -#: models.py:2746 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2798 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2771 +#: models.py:2823 msgid "Is preventive" msgstr "" -#: models.py:2775 +#: models.py:2827 msgid "Operation types" msgstr "" -#: models.py:2804 +#: models.py:2856 msgid "Preventive" msgstr "" -#: models.py:2805 +#: models.py:2857 msgid "Research" msgstr "" @@ -1369,104 +1368,104 @@ msgstr "" msgid "Load another random image?" msgstr "" -#: views.py:111 +#: views.py:114 msgid "New person" msgstr "" -#: views.py:119 +#: views.py:122 msgid "Person modification" msgstr "" -#: views.py:134 +#: views.py:137 msgid "Person deletion" msgstr "" -#: views.py:145 +#: views.py:148 msgid "New organization" msgstr "" -#: views.py:152 +#: views.py:155 msgid "Organization modification" msgstr "" -#: views.py:168 +#: views.py:171 msgid "Organization deletion" msgstr "" -#: views.py:175 +#: views.py:178 msgid "Account management" msgstr "" -#: views.py:181 +#: views.py:184 msgid "Account deletion" msgstr "" -#: views.py:233 +#: views.py:236 msgid "Archaeological file" msgstr "" -#: views.py:236 +#: views.py:239 msgid "Context record" msgstr "" -#: views.py:238 +#: views.py:241 msgid "Find" msgstr "" -#: views.py:1238 views.py:1281 +#: views.py:1249 views.py:1292 msgid "Operation not permitted." msgstr "" -#: views.py:1240 +#: views.py:1251 #, python-format msgid "New %s" msgstr "" -#: views.py:1300 views.py:1354 +#: views.py:1311 views.py:1364 msgid "Operations" msgstr "" -#: views.py:1553 templates/ishtar/import_list.html:43 +#: views.py:1563 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "" -#: views.py:1568 +#: views.py:1578 msgid "Delete import" msgstr "" -#: views.py:1607 +#: views.py:1617 msgid "Merge persons" msgstr "" -#: views.py:1631 +#: views.py:1641 msgid "Select the main person" msgstr "" -#: views.py:1640 +#: views.py:1650 msgid "Merge organization" msgstr "" -#: views.py:1650 +#: views.py:1660 msgid "Select the main organization" msgstr "" -#: views.py:1690 views.py:1706 +#: views.py:1700 views.py:1716 msgid "Corporation manager" msgstr "" -#: widgets.py:239 widgets.py:347 widgets.py:463 +#: widgets.py:239 widgets.py:347 widgets.py:462 msgid "Search..." msgstr "" -#: widgets.py:623 templatetags/window_tables.py:79 +#: widgets.py:642 templatetags/window_tables.py:79 msgid "No results" msgstr "" -#: widgets.py:624 templatetags/window_tables.py:80 +#: widgets.py:643 templatetags/window_tables.py:80 msgid "Loading..." msgstr "" -#: widgets.py:625 +#: widgets.py:644 msgid "Remove" msgstr "" @@ -1478,7 +1477,7 @@ msgstr "" msgid "No" msgstr "" -#: wizards.py:1249 +#: wizards.py:1251 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index b5ede5ba3..76c791c25 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -6,21 +6,23 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-09 22:11+0100\n" "PO-Revision-Date: 2016-10-17 01:16-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.5\n" -#: forms.py:47 forms.py:51 models.py:164 wizards.py:77 +#: forms.py:47 forms.py:51 models.py:165 wizards.py:77 msgid "Operation" msgstr "Opération" -#: forms.py:59 forms.py:137 models.py:166 +#: forms.py:59 forms.py:137 models.py:167 msgid "ID" msgstr "Identifiant" @@ -72,43 +74,43 @@ msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement." msgid "General" msgstr "Général" -#: forms.py:136 models.py:131 models.py:162 +#: forms.py:136 models.py:131 models.py:163 msgid "Parcel" msgstr "Parcelle" -#: forms.py:139 models.py:167 templates/ishtar/sheet_contextrecord.html:27 +#: forms.py:139 models.py:168 templates/ishtar/sheet_contextrecord.html:27 msgid "Description" msgstr "Description" -#: forms.py:141 models.py:168 +#: forms.py:141 models.py:169 msgid "General comment" msgstr "Commentaire général" -#: forms.py:143 models.py:172 +#: forms.py:143 models.py:173 msgid "Length (m)" msgstr "Taille (m)" -#: forms.py:144 models.py:173 +#: forms.py:144 models.py:174 msgid "Width (m)" msgstr "Largeur (m)" -#: forms.py:145 models.py:174 +#: forms.py:145 models.py:175 msgid "Thickness (m)" msgstr "Épaisseur (m)" -#: forms.py:146 models.py:176 +#: forms.py:146 models.py:177 msgid "Depth (m)" msgstr "Profondeur (m)" -#: forms.py:147 models.py:184 +#: forms.py:147 models.py:185 msgid "Unit" msgstr "Unité" -#: forms.py:148 models.py:186 +#: forms.py:148 models.py:187 msgid "Has furniture?" msgstr "Contient du mobilier ?" -#: forms.py:151 models.py:178 +#: forms.py:151 models.py:179 msgid "Location" msgstr "Lieu" @@ -137,7 +139,7 @@ msgstr "Datation" msgid "Start date" msgstr "Date de début" -#: forms.py:234 models.py:57 models.py:171 +#: forms.py:234 models.py:57 models.py:172 msgid "End date" msgstr "Date de fin" @@ -149,7 +151,7 @@ msgstr "Qualité" msgid "Dating type" msgstr "Type de datation" -#: forms.py:263 ishtar_menu.py:29 models.py:457 +#: forms.py:263 ishtar_menu.py:29 models.py:459 msgid "Context record" msgstr "Unité d'Enregistrement" @@ -157,7 +159,7 @@ msgstr "Unité d'Enregistrement" msgid "Relations" msgstr "Relations" -#: forms.py:288 forms.py:296 models.py:189 +#: forms.py:288 forms.py:296 models.py:190 #: templates/ishtar/sheet_contextrecord.html:39 msgid "Interpretation" msgstr "Interprétation" @@ -166,31 +168,31 @@ msgstr "Interprétation" msgid "Comments on dating" msgstr "Commentaires sur la datation" -#: forms.py:294 models.py:188 +#: forms.py:294 models.py:189 msgid "Filling" msgstr "Remplissage" -#: forms.py:298 models.py:209 +#: forms.py:298 models.py:210 msgid "Activity" msgstr "Activité" -#: forms.py:300 models.py:207 +#: forms.py:300 models.py:208 msgid "Identification" msgstr "Identification" -#: forms.py:302 models.py:192 +#: forms.py:302 models.py:193 msgid "TAQ" msgstr "TAQ" -#: forms.py:303 models.py:196 +#: forms.py:303 models.py:197 msgid "Estimated TAQ" msgstr "TAQ estimé" -#: forms.py:305 models.py:199 +#: forms.py:305 models.py:200 msgid "TPQ" msgstr "TPQ" -#: forms.py:306 models.py:203 +#: forms.py:306 models.py:204 msgid "Estimated TPQ" msgstr "TPQ estimé" @@ -242,7 +244,7 @@ msgstr "Vous devez sélectionner un document." msgid "Search" msgstr "Recherche" -#: ishtar_menu.py:35 +#: ishtar_menu.py:35 ishtar_menu.py:55 msgid "Creation" msgstr "Ajout" @@ -258,10 +260,6 @@ msgstr "Suppression" msgid "Documentation" msgstr "Documentation" -#: ishtar_menu.py:55 -msgid "Add" -msgstr "Ajout" - #: models.py:39 msgid "Dating types" msgstr "Types de datation" @@ -314,27 +312,27 @@ msgstr "Type d'identification" msgid "Identification Types" msgstr "Types d'identification" -#: models.py:159 +#: models.py:160 msgid "External ID" msgstr "ID externe" -#: models.py:161 +#: models.py:162 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:169 +#: models.py:170 msgid "Date d'ouverture" msgstr "Date d'ouverture" -#: models.py:179 +#: models.py:180 msgid "A short description of the location of the context record" msgstr "Une courte description de la localisation de l'Unité d'Enregistrement" -#: models.py:182 +#: models.py:183 msgid "Comment on datings" msgstr "Commentaire sur les datations" -#: models.py:193 +#: models.py:194 msgid "" "\"Terminus Ante Quem\" the context record can't have been created after this " "date" @@ -342,11 +340,11 @@ msgstr "" "« Terminus Ante Quem » l'Unité d'Enregistrement ne peut avoir été créée " "après cette date" -#: models.py:197 +#: models.py:198 msgid "Estimation of a \"Terminus Ante Quem\"" msgstr "Estimation d'un « Terminus Ante Quem »" -#: models.py:200 +#: models.py:201 msgid "" "\"Terminus Post Quem\" the context record can't have been created before " "this date" @@ -354,112 +352,112 @@ msgstr "" "« Terminus Post Quem » l'Unité d'Enregistrement ne peut avoir été créée " "avant cette date" -#: models.py:204 +#: models.py:205 msgid "Estimation of a \"Terminus Post Quem\"" msgstr "Estimation d'un « Terminus Post Quem »" -#: models.py:212 +#: models.py:213 msgid "Point" msgstr "Point" -#: models.py:213 +#: models.py:214 msgid "Polygon" msgstr "Polygone" -#: models.py:214 +#: models.py:215 msgid "Cached name" msgstr "Nom en cache" -#: models.py:218 models.py:219 templates/ishtar/sheet_contextrecord.html:4 +#: models.py:219 models.py:220 templates/ishtar/sheet_contextrecord.html:4 msgid "Context Record" msgstr "Unité d'Enregistrement" -#: models.py:221 +#: models.py:222 msgid "Can view all Context Records" msgstr "Peut voir toutes les Unités d'Enregistrement" -#: models.py:223 +#: models.py:224 msgid "Can view own Context Record" msgstr "Peut voir sa propre Unité d'Enregistrement" -#: models.py:225 +#: models.py:226 msgid "Can add own Context Record" msgstr "Peut ajouter sa propre Unité d'Enregistrement" -#: models.py:227 +#: models.py:228 msgid "Can change own Context Record" msgstr "Peut modifier sa propre Unité d'Enregistrement" -#: models.py:229 +#: models.py:230 msgid "Can delete own Context Record" msgstr "Peut supprimer sa propre Unité d'Enregistrement" -#: models.py:239 +#: models.py:240 msgctxt "short" msgid "Context record" msgstr "UE" -#: models.py:375 +#: models.py:377 msgid "Inverse relation" msgstr "Relation inverse" -#: models.py:379 models.py:403 +#: models.py:381 models.py:405 msgid "Relation type" msgstr "Type de relation" -#: models.py:380 +#: models.py:382 msgid "Relation types" msgstr "Types de relation" -#: models.py:398 +#: models.py:400 msgid "ID (left)" msgstr "ID (gauche)" -#: models.py:399 +#: models.py:401 msgid "Unit (left)" msgstr "Unité (gauche)" -#: models.py:400 +#: models.py:402 msgid "Parcel (left)" msgstr "Parcelle (gauche)" -#: models.py:401 +#: models.py:403 msgid "Description (left)" msgstr "Description (gauche)" -#: models.py:402 +#: models.py:404 msgid "Periods (left)" msgstr "Périodes (gauche)" -#: models.py:404 +#: models.py:406 msgid "Unit (right)" msgstr "Unité (droite)" -#: models.py:405 models.py:406 +#: models.py:407 models.py:408 msgid "Parcel (right)" msgstr "Parcelle (droite)" -#: models.py:407 +#: models.py:409 msgid "Description (right)" msgstr "Description (droite)" -#: models.py:408 +#: models.py:410 msgid "Periods (right)" msgstr "Périodes (droite)" -#: models.py:417 +#: models.py:419 msgid "Record relation" msgstr "Relation entre Unités d'Enregistrement" -#: models.py:418 +#: models.py:420 msgid "Record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:454 +#: models.py:456 msgid "Context record documentation" msgstr "Documentation d'une Unité d'Enregistrement" -#: models.py:455 +#: models.py:457 msgid "Context record documentations" msgstr "Documentations des Unités d'Enregistrement" @@ -566,3 +564,6 @@ msgstr "Documents du mobilier associé" #: templates/ishtar/sheet_contextrecordsource.html:4 msgid "Context record source" msgstr "Documentation associée à l'UE" + +#~ msgid "Add" +#~ msgstr "Ajout" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 925f44322..dcefc0c0b 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -7,253 +7,255 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-09 22:11+0100\n" "PO-Revision-Date: 2016-08-29 11:35-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.5\n" -#: forms.py:52 forms.py:212 forms.py:257 forms.py:404 forms.py:431 +#: forms.py:47 forms.py:210 forms.py:255 forms.py:396 forms.py:423 #: models.py:108 templates/ishtar/sheet_file.html:146 msgid "Year" msgstr "Année" -#: forms.py:53 forms.py:217 forms.py:259 models.py:111 +#: forms.py:48 forms.py:215 forms.py:257 models.py:111 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:55 forms.py:219 +#: forms.py:50 forms.py:217 msgid "Other reference" msgstr "Autre référence" -#: forms.py:57 forms.py:439 +#: forms.py:52 forms.py:431 msgid "Parcel (section/number/public domain)" msgstr "Parcelle (section/nombre/domaine public)" -#: forms.py:60 forms.py:415 forms.py:442 models.py:543 +#: forms.py:55 forms.py:407 forms.py:434 models.py:544 msgid "Department" msgstr "Département" -#: forms.py:61 forms.py:451 +#: forms.py:56 forms.py:443 msgid "File name" msgstr "Nom du dossier" -#: forms.py:62 forms.py:158 forms.py:223 models.py:119 +#: forms.py:57 forms.py:154 forms.py:221 models.py:119 msgid "File type" msgstr "Type de dossier" -#: forms.py:63 +#: forms.py:58 msgid "Is active?" msgstr "Est actif ?" -#: forms.py:64 forms.py:160 forms.py:321 +#: forms.py:59 forms.py:156 forms.py:314 msgid "Saisine type" msgstr "Type de saisine" -#: forms.py:65 forms.py:311 models.py:60 models.py:150 +#: forms.py:60 forms.py:304 models.py:60 models.py:150 msgid "Permit type" msgstr "Type de permis" -#: forms.py:67 forms.py:314 models.py:151 +#: forms.py:62 forms.py:307 models.py:151 msgid "Permit reference" msgstr "Référence du permis" -#: forms.py:68 forms.py:229 forms.py:372 models.py:180 +#: forms.py:63 forms.py:227 forms.py:364 models.py:180 #: templates/ishtar/sheet_file.html:99 msgid "Comment" msgstr "Commentaire" -#: forms.py:70 templates/ishtar/sheet_file.html:119 +#: forms.py:65 templates/ishtar/sheet_file.html:119 msgid "In charge" msgstr "Responsable" -#: forms.py:77 forms.py:289 forms.py:453 models.py:126 +#: forms.py:72 forms.py:281 forms.py:445 models.py:126 msgid "General contractor" msgstr "Aménageur" -#: forms.py:84 forms.py:462 +#: forms.py:79 forms.py:453 msgid "Organization of general contractor" msgstr "Organisation de l'aménageur" -#: forms.py:91 forms.py:485 +#: forms.py:87 forms.py:476 msgid "Created by" msgstr "Créé par" -#: forms.py:98 forms.py:493 +#: forms.py:94 forms.py:484 msgid "Modified by" msgstr "Modifié par" -#: forms.py:129 +#: forms.py:125 msgid "Archaeological file search" msgstr "Recherche de dossiers archéologiques" -#: forms.py:143 +#: forms.py:139 msgid "You should select a file." msgstr "Vous devez sélectionner un dossier archéologique." -#: forms.py:146 forms.py:221 models.py:159 +#: forms.py:142 forms.py:219 models.py:159 msgid "Creation date" msgstr "Date de création" -#: forms.py:147 forms.py:324 models.py:161 +#: forms.py:143 forms.py:317 models.py:161 msgid "Reception date" msgstr "Date de réception" -#: forms.py:152 +#: forms.py:148 msgid "Slicing" msgstr "Découpage" -#: forms.py:154 +#: forms.py:150 msgid "Department detail" msgstr "Détail par département" -#: forms.py:156 +#: forms.py:152 msgid "Date get from" msgstr "Date utilisée" -#: forms.py:162 +#: forms.py:158 msgid "Date after" msgstr "Date après" -#: forms.py:164 +#: forms.py:160 msgid "Date before" msgstr "Date avant" -#: forms.py:201 templates/ishtar/sheet_file.html:14 +#: forms.py:197 templates/ishtar/sheet_file.html:14 msgid "General" msgstr "Général" -#: forms.py:206 models.py:121 +#: forms.py:202 models.py:121 msgid "Person in charge" msgstr "Responsable" -#: forms.py:220 models.py:118 +#: forms.py:218 models.py:118 msgid "Name" msgstr "Nom" -#: forms.py:225 models.py:163 +#: forms.py:223 models.py:163 msgid "Related file" msgstr "Dossier associé" -#: forms.py:233 models.py:171 +#: forms.py:231 models.py:171 msgid "Total surface (m2)" msgstr "Surface totale (m2)" -#: forms.py:236 models.py:177 +#: forms.py:234 models.py:177 msgid "Main address" msgstr "Adresse des terrains" -#: forms.py:237 +#: forms.py:235 msgid "Main address - complement" msgstr "Adresse des terrains - complément" -#: forms.py:250 +#: forms.py:248 #, python-format msgid "
(last recorded: %s)" msgstr "
(dernier enregistrement : %s)" -#: forms.py:272 +#: forms.py:270 msgid "Another file with this numeric id exists." msgstr "Un autre dossier avec cet identifiant numérique existe." -#: forms.py:283 +#: forms.py:275 msgid "Preventive informations" msgstr "Information archéologie préventive" -#: forms.py:301 models.py:138 +#: forms.py:293 models.py:138 msgid "Responsible for town planning service" msgstr "Responsable au service instructeur" -#: forms.py:317 models.py:174 +#: forms.py:310 models.py:174 msgid "Total developed surface (m2)" msgstr "Surface totale aménagée (m2)" -#: forms.py:340 templates/ishtar/sheet_file.html:89 +#: forms.py:333 templates/ishtar/sheet_file.html:89 #: templates/ishtar/dashboards/dashboard_file.html:45 msgid "Research archaeology" msgstr "Archéologie programmée" -#: forms.py:348 models.py:183 templates/ishtar/sheet_file.html:90 +#: forms.py:341 models.py:183 templates/ishtar/sheet_file.html:90 msgid "Departments" msgstr "Départements" -#: forms.py:359 models.py:192 +#: forms.py:351 models.py:192 msgid "Scientist in charge" msgstr "Responsable scientifique" -#: forms.py:361 models.py:186 templates/ishtar/sheet_file.html:92 +#: forms.py:353 models.py:186 templates/ishtar/sheet_file.html:92 msgid "Requested operation type" msgstr "Type d'opération demandée" -#: forms.py:363 +#: forms.py:355 msgid "Lead organization" msgstr "Organisation porteuse du projet" -#: forms.py:379 models.py:196 templates/ishtar/sheet_file.html:97 +#: forms.py:371 models.py:196 templates/ishtar/sheet_file.html:97 msgid "Classified area" msgstr "Au sein d'un site classé" -#: forms.py:381 models.py:198 templates/ishtar/sheet_file.html:98 +#: forms.py:373 models.py:198 templates/ishtar/sheet_file.html:98 msgid "Protected area" msgstr "Au sein d'un secteur sauvegardé" -#: forms.py:395 +#: forms.py:387 msgid "Would you like to close this archaeological file?" msgstr "Voulez vous clore ce dossier archéologique ?" -#: forms.py:400 +#: forms.py:392 msgid "Would you like to delete this archaelogical file ?" msgstr "Voulez vous supprimer ce dossier archéologique ?" -#: forms.py:405 forms.py:432 forms.py:556 +#: forms.py:397 forms.py:424 forms.py:547 msgid "Index" msgstr "Index" -#: forms.py:409 forms.py:436 forms.py:542 +#: forms.py:401 forms.py:428 forms.py:533 msgid "Act type" msgstr "Type d'acte" -#: forms.py:410 +#: forms.py:402 msgid "Object (full text search)" msgstr "Objet (recherche texte intégral)" -#: forms.py:437 +#: forms.py:429 msgid "Indexed?" msgstr "Indexé ?" -#: forms.py:443 +#: forms.py:435 msgid "Object" msgstr "Objet" -#: forms.py:447 +#: forms.py:439 msgid "Signature date after" msgstr "Date de signature après" -#: forms.py:449 +#: forms.py:441 msgid "Signature date before" msgstr "Date de signature avant" -#: forms.py:470 +#: forms.py:461 msgid "File numeric reference" msgstr "Dossier : réf. numérique" -#: forms.py:471 +#: forms.py:462 msgid "File year" msgstr "Dossier : année" -#: forms.py:473 +#: forms.py:464 msgid "File other reference" msgstr "Dossier : autre référence" -#: forms.py:475 +#: forms.py:466 msgid "File in charge" msgstr "Dossier : responsable" -#: forms.py:483 +#: forms.py:474 msgid "File permit reference" msgstr "Dossier : réf. du permis" @@ -265,7 +267,7 @@ msgstr "Dossier" msgid "Search" msgstr "Recherche" -#: ishtar_menu.py:41 +#: ishtar_menu.py:41 ishtar_menu.py:64 msgid "Creation" msgstr "Ajout" @@ -285,10 +287,6 @@ msgstr "Suppression" msgid "Administrative act" msgstr "Acte administratif" -#: ishtar_menu.py:64 -msgid "Add" -msgstr "Ajout" - #: ishtar_menu.py:76 msgid "Documents" msgstr "Documents" @@ -426,7 +424,7 @@ msgstr "Intercommunal" msgid "No town" msgstr "Pas de commune" -#: models.py:542 +#: models.py:543 msgid "File" msgstr "Dossier" @@ -677,3 +675,6 @@ msgstr "communes principales en nombre" #: templates/ishtar/dashboards/dashboard_file.html:220 msgid "main towns by surface (ha)" msgstr "communes principales en surface (ha)" + +#~ msgid "Add" +#~ msgstr "Ajout" diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index 34955a35a..7fb2c2643 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -6,127 +6,133 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-09 22:11+0100\n" "PO-Revision-Date: 2016-02-23 08:09-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Zanata 3.9.5\n" -#: forms.py:41 +#: forms.py:38 msgid "General" msgstr "Général" -#: forms.py:43 +#: forms.py:40 msgid "File type" msgstr "Type de dossier" -#: forms.py:44 forms.py:403 +#: forms.py:41 forms.py:415 msgid "Year" msgstr "Année" -#: forms.py:48 +#: forms.py:45 msgid "Creation date" msgstr "Date de création" -#: forms.py:51 +#: forms.py:48 msgid "Reception date" msgstr "Date de réception" -#: forms.py:63 +#: forms.py:60 msgid "Reception date cannot be after today." msgstr "La date de réception ne peut pas être dans le futur." -#: forms.py:71 +#: forms.py:68 msgid "Permit type" msgstr "Type de permis" -#: forms.py:73 +#: forms.py:70 msgid "Saisine type" msgstr "Type de saisine" -#: forms.py:87 +#: forms.py:84 msgid "Planning" msgstr "Aménagement" -#: forms.py:90 +#: forms.py:87 msgid "Planning name" msgstr "Nom de l'aménagement" -#: forms.py:93 forms.py:123 +#: forms.py:90 forms.py:122 #: templates/ishtar/wizard/wizard_preventiveplanning.html:31 msgid "Towns" msgstr "Communes" -#: forms.py:95 forms.py:125 +#: forms.py:92 forms.py:124 #: templates/ishtar/wizard/wizard_preventiveplanning.html:41 msgid "Departments" msgstr "Départements" -#: forms.py:96 forms.py:126 +#: forms.py:93 forms.py:125 msgid "Locality" msgstr "Lieu-dit" -#: forms.py:99 forms.py:129 +#: forms.py:96 forms.py:128 msgid "Address (number/street)" msgstr "Adresse (n° / voie)" -#: forms.py:100 forms.py:130 +#: forms.py:97 forms.py:129 msgid "Number/street" msgstr "N° / voie" -#: forms.py:102 forms.py:132 +#: forms.py:99 forms.py:131 msgid "Postal code" msgstr "Code postal" -#: forms.py:107 +#: forms.py:104 msgid "Total surface (m2)" msgstr "Surface totale des terrains (m2)" -#: forms.py:112 +#: forms.py:109 msgid "Total developed surface (m2)" msgstr "Surface totale aménagée (m2)" -#: forms.py:119 +#: forms.py:116 msgid "Address" msgstr "Adresse" -#: forms.py:233 forms.py:237 forms.py:267 forms.py:270 +#: forms.py:119 +msgid "Project name" +msgstr "" + +#: forms.py:232 forms.py:236 forms.py:273 forms.py:276 msgid "General contractor" msgstr "Aménageur" -#: forms.py:252 forms.py:364 +#: forms.py:254 forms.py:372 msgid "In charge" msgstr "Responsable" -#: forms.py:342 +#: forms.py:348 msgid "Town planning service" msgstr "Service instructeur" -#: forms.py:346 +#: forms.py:352 msgid "File reference" msgstr "Référence du dossier" -#: forms.py:349 +#: forms.py:355 msgid "Planning service" msgstr "Service instructeur" -#: forms.py:383 +#: forms.py:395 msgid "Person in charge" msgstr "Dossier suivi par" -#: forms.py:395 +#: forms.py:407 msgid "Related file" msgstr "Dossier lié à" -#: forms.py:399 +#: forms.py:411 msgid "Comment" msgstr "Commentaires" -#: forms.py:406 +#: forms.py:418 msgid "Numeric reference" msgstr "Référence numérique" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 40d36c10b..20fdfd694 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-09 22:11+0100\n" "PO-Revision-Date: 2016-09-15 10:20-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.5\n" @@ -21,21 +23,21 @@ msgstr "" msgid "Context record" msgstr "Unité d'Enregistrement" -#: forms.py:83 ishtar_menu.py:31 models.py:439 models.py:750 models.py:850 -#: models.py:1000 templates/ishtar/sheet_find.html:5 +#: forms.py:83 ishtar_menu.py:31 models.py:440 models.py:754 models.py:854 +#: models.py:1004 templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "Mobilier" -#: forms.py:94 forms.py:218 forms.py:425 models.py:127 models.py:376 +#: forms.py:94 forms.py:218 forms.py:425 models.py:127 models.py:377 msgid "Free ID" msgstr "ID libre" -#: forms.py:96 models.py:425 +#: forms.py:96 models.py:426 msgid "Previous ID" msgstr "Identifiant précédent" -#: forms.py:97 forms.py:250 forms.py:591 models.py:131 models.py:377 -#: models.py:784 +#: forms.py:97 forms.py:250 forms.py:591 models.py:131 models.py:378 +#: models.py:788 msgid "Description" msgstr "Description" @@ -43,7 +45,7 @@ msgstr "Description" msgid "Batch/object" msgstr "Lot/objet" -#: forms.py:102 models.py:405 +#: forms.py:102 models.py:406 msgid "Is complete?" msgstr "Est complet ?" @@ -51,15 +53,15 @@ msgstr "Est complet ?" msgid "Material type" msgstr "Type de matériau" -#: forms.py:106 forms.py:244 models.py:62 models.py:381 +#: forms.py:106 forms.py:244 models.py:62 models.py:382 msgid "Conservatory state" msgstr "État sanitaire" -#: forms.py:109 models.py:383 +#: forms.py:109 models.py:384 msgid "Conservatory comment" msgstr "Commentaire relatif à la conservation" -#: forms.py:112 models.py:102 models.py:408 +#: forms.py:112 models.py:102 models.py:409 msgid "Object types" msgstr "Types d'objet" @@ -67,67 +69,67 @@ msgstr "Types d'objet" msgid "Preservation type" msgstr "Type de conservation" -#: forms.py:117 forms.py:246 models.py:410 +#: forms.py:117 forms.py:246 models.py:411 msgid "Integrity / interest" msgstr "Intégrité / intérêt" -#: forms.py:120 forms.py:248 models.py:413 +#: forms.py:120 forms.py:248 models.py:414 msgid "Remarkability" msgstr "Remarquabilité" -#: forms.py:122 models.py:415 +#: forms.py:122 models.py:416 msgid "Length (cm)" msgstr "Longueur (cm)" -#: forms.py:123 models.py:416 +#: forms.py:123 models.py:417 msgid "Width (cm)" msgstr "Largeur (cm)" -#: forms.py:124 models.py:417 +#: forms.py:124 models.py:418 msgid "Height (cm)" msgstr "Hauteur (cm)" -#: forms.py:125 models.py:418 +#: forms.py:125 models.py:419 msgid "Diameter (cm)" msgstr "Diamètre (cm)" -#: forms.py:126 forms.py:430 models.py:388 +#: forms.py:126 forms.py:430 models.py:389 msgid "Volume (l)" msgstr "Volume (l)" -#: forms.py:127 forms.py:431 models.py:389 +#: forms.py:127 forms.py:431 models.py:390 msgid "Weight (g)" msgstr "Poids (g)" -#: forms.py:129 models.py:419 +#: forms.py:129 models.py:420 msgid "Dimensions comment" msgstr "Commentaire concernant les dimensions" -#: forms.py:130 forms.py:432 models.py:392 +#: forms.py:130 forms.py:432 models.py:393 msgid "Find number" msgstr "Mobilier (en nombre)" -#: forms.py:131 models.py:421 +#: forms.py:131 models.py:422 msgid "Mark" msgstr "Marque" -#: forms.py:132 forms.py:254 models.py:427 +#: forms.py:132 forms.py:254 models.py:428 msgid "Check" msgstr "Vérification" -#: forms.py:134 models.py:429 +#: forms.py:134 models.py:430 msgid "Check date" msgstr "Date de vérification" -#: forms.py:135 models.py:132 models.py:422 models.py:785 +#: forms.py:135 models.py:132 models.py:423 models.py:789 msgid "Comment" msgstr "Commentaires" -#: forms.py:138 models.py:423 +#: forms.py:138 models.py:424 msgid "Comment on dating" msgstr "Commentaire général sur les datations" -#: forms.py:139 models.py:431 +#: forms.py:139 models.py:432 msgid "Estimated value" msgstr "Valeur estimée" @@ -144,7 +146,7 @@ msgstr "" "

Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

" -#: forms.py:181 forms.py:212 models.py:400 +#: forms.py:181 forms.py:212 models.py:401 msgid "Dating" msgstr "Datation" @@ -152,12 +154,12 @@ msgstr "Datation" msgid "Period" msgstr "Période" -#: forms.py:187 forms.py:593 models.py:798 models.py:863 models.py:1005 +#: forms.py:187 forms.py:593 models.py:802 models.py:867 models.py:1009 #: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:121 msgid "Start date" msgstr "Date de début" -#: forms.py:189 forms.py:595 models.py:799 models.py:864 models.py:1006 +#: forms.py:189 forms.py:595 models.py:803 models.py:868 models.py:1010 #: templates/ishtar/sheet_find.html:93 templates/ishtar/sheet_find.html:122 msgid "End date" msgstr "Date de fin" @@ -218,7 +220,7 @@ msgstr "Recherche de mobilier" msgid "Upstream finds" msgstr "Mobilier amont" -#: forms.py:326 models.py:440 +#: forms.py:326 models.py:441 msgid "Finds" msgstr "Mobilier" @@ -294,16 +296,16 @@ msgstr "Panier" msgid "Base treatment" msgstr "Traitement de base" -#: forms.py:578 models.py:772 models.py:787 models.py:862 +#: forms.py:578 models.py:776 models.py:791 models.py:866 msgid "Treatment type" msgstr "Type de traitement" -#: forms.py:580 models.py:796 models.py:867 +#: forms.py:580 models.py:800 models.py:871 #: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:119 msgid "Doer" msgstr "Opérateur" -#: forms.py:586 models.py:789 models.py:865 +#: forms.py:586 models.py:793 models.py:869 msgid "Location" msgstr "Lieu" @@ -355,7 +357,7 @@ msgstr "Recommandation" msgid "Parent material" msgstr "Matériau parent" -#: models.py:51 models.py:379 +#: models.py:51 models.py:380 msgid "Material types" msgstr "Types de matériau" @@ -403,11 +405,11 @@ msgstr "Objet" msgid "Batch" msgstr "Lot" -#: models.py:128 models.py:372 models.py:780 +#: models.py:128 models.py:373 models.py:784 msgid "External ID" msgstr "ID externe" -#: models.py:130 models.py:374 +#: models.py:130 models.py:375 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" @@ -447,7 +449,7 @@ msgstr "Polygon" msgid "Cached value - do not edit" msgstr "Valeur en cache - ne pas éditer" -#: models.py:159 models.py:370 +#: models.py:159 models.py:371 msgid "Base find" msgstr "Mobilier de base" @@ -475,215 +477,215 @@ msgstr "Peut modifier son propre Mobilier de base" msgid "Can delete own Base find" msgstr "Peut supprimer son propre Mobilier de base" -#: models.py:275 +#: models.py:276 msgid "g" msgstr "g" -#: models.py:276 +#: models.py:277 msgid "kg" msgstr "kg" -#: models.py:278 +#: models.py:279 msgid "Not checked" msgstr "Non vérifié" -#: models.py:279 +#: models.py:280 msgid "Checked but incorrect" msgstr "Vérifié mais incorrect" -#: models.py:280 +#: models.py:281 msgid "Checked and correct" msgstr "Vérifié et correct" -#: models.py:320 +#: models.py:321 msgid "Base find - Short ID" msgstr "Mobilier de base - ID court" -#: models.py:321 +#: models.py:322 msgid "Base find - Complete ID" msgstr "Mobilier de base - ID complet" -#: models.py:322 +#: models.py:323 msgid "Base find - Comment" msgstr "Mobilier de base - Commentaires" -#: models.py:323 +#: models.py:324 msgid "Base find - Description" msgstr "Mobilier de base - Description" -#: models.py:324 +#: models.py:325 msgid "Base find - Topographic localisation" msgstr "Mobilier de base - Localisation topographique" -#: models.py:326 +#: models.py:327 msgid "Base find - Special interest" msgstr "Mobilier de base - Intérêt spécifique" -#: models.py:327 +#: models.py:328 msgid "Base find - Discovery date" msgstr "Mobilier de base - Date de découverte" -#: models.py:375 models.py:856 +#: models.py:376 models.py:860 msgid "Order" msgstr "Ordre" -#: models.py:386 +#: models.py:387 msgid "Type of preservation to consider" msgstr "Mesures de conservation à envisager" -#: models.py:390 +#: models.py:391 msgid "Weight unit" msgstr "Unité de poids" -#: models.py:396 templates/ishtar/sheet_find.html:83 +#: models.py:397 templates/ishtar/sheet_find.html:83 msgid "Upstream treatment" msgstr "Traitement amont" -#: models.py:399 templates/ishtar/sheet_find.html:112 +#: models.py:400 templates/ishtar/sheet_find.html:112 msgid "Downstream treatment" msgstr "Traitement aval" -#: models.py:403 models.py:782 models.py:866 +#: models.py:404 models.py:786 models.py:870 #: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:120 msgid "Container" msgstr "Contenant" -#: models.py:433 +#: models.py:434 msgid "Cached name" msgstr "Nom en cache" -#: models.py:442 +#: models.py:443 msgid "Can view all Finds" msgstr "Peut voir tout le Mobilier" -#: models.py:443 +#: models.py:444 msgid "Can view own Find" msgstr "Peut voir son propre Mobilier" -#: models.py:444 +#: models.py:445 msgid "Can add own Find" msgstr "Peut ajouter son propre Mobilier" -#: models.py:445 +#: models.py:446 msgid "Can change own Find" msgstr "Peut modifier son propre Mobilier" -#: models.py:446 +#: models.py:447 msgid "Can delete own Find" msgstr "Peut supprimer son propre Mobilier" -#: models.py:452 +#: models.py:453 msgid "FIND" msgstr "MOBILIER" -#: models.py:748 +#: models.py:752 msgid "Find documentation" msgstr "Documentation de mobilier" -#: models.py:749 +#: models.py:753 msgid "Find documentations" msgstr "Documentations de mobilier" -#: models.py:759 +#: models.py:763 msgid "Virtual" msgstr "Virtuel" -#: models.py:761 +#: models.py:765 msgid "Upstream is many" msgstr "Les éléments amonts sont multiple" -#: models.py:763 +#: models.py:767 msgid "Check this if for this treatment from many finds you'll get one." msgstr "" "Cochez cela si pour ce traitement depuis plusieurs éléments vous en obtenez " "un." -#: models.py:766 +#: models.py:770 msgid "Downstream is many" msgstr "Les éléments avals sont multiple" -#: models.py:768 +#: models.py:772 msgid "Check this if for this treatment from one find you'll get many." msgstr "" "Cochez cela si pour ce traitement depuis un élément vous en obtenez " "plusieurs." -#: models.py:773 +#: models.py:777 msgid "Treatment types" msgstr "Types de traitement" -#: models.py:791 +#: models.py:795 msgid "Location where the treatment is done. Target warehouse for a move." msgstr "" "Endroit où le traitement est réalisé. Renseignez le dépôt de destination " "pour un déplacement." -#: models.py:793 +#: models.py:797 msgid "Other location" msgstr "Autre lieu" -#: models.py:803 models.py:852 models.py:992 +#: models.py:807 models.py:856 models.py:996 msgid "Treatment" msgstr "Traitement" -#: models.py:804 templates/ishtar/sheet_find.html:80 +#: models.py:808 templates/ishtar/sheet_find.html:80 msgid "Treatments" msgstr "Traitements" -#: models.py:806 +#: models.py:810 msgid "Can view all Treatments" msgstr "Peut voir tous les Traitements" -#: models.py:807 +#: models.py:811 msgid "Can view own Treatment" msgstr "Peut voir son propre Traitement" -#: models.py:808 +#: models.py:812 msgid "Can add own Treatment" msgstr "Peut ajouter son propre Traitement" -#: models.py:809 +#: models.py:813 msgid "Can change own Treatment" msgstr "Peut modifier son propre Traitement" -#: models.py:810 +#: models.py:814 msgid "Can delete own Treatment" msgstr "Peut supprimer son propre Traitement" -#: models.py:816 +#: models.py:820 msgid "by" msgstr "par" -#: models.py:868 models.py:869 templates/ishtar/sheet_find.html:89 +#: models.py:872 models.py:873 templates/ishtar/sheet_find.html:89 #: templates/ishtar/sheet_find.html:118 msgid "Related finds" msgstr "Mobilier associé" -#: models.py:978 +#: models.py:982 msgid "Is upstream" msgstr "Est amont" -#: models.py:989 +#: models.py:993 msgid "Treatment documentation" msgstr "Documentation d'un traitement" -#: models.py:990 +#: models.py:994 msgid "Treament documentations" msgstr "Documentations des traitements" -#: models.py:1002 +#: models.py:1006 msgid "Administrative act" msgstr "Acte administratif" -#: models.py:1003 +#: models.py:1007 msgid "Person" msgstr "Individu" -#: models.py:1009 +#: models.py:1013 msgid "Property" msgstr "Propriété" -#: models.py:1010 +#: models.py:1014 msgid "Properties" msgstr "Propriétés" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index d8c54d684..a2f639881 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -7,23 +7,25 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-09 22:11+0100\n" "PO-Revision-Date: 2016-10-17 01:17-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.5\n" -#: forms.py:67 forms.py:369 forms.py:1004 forms.py:1026 forms.py:1030 +#: forms.py:69 forms.py:371 forms.py:1009 forms.py:1031 forms.py:1035 #: models.py:1168 templates/ishtar/sheet_operation.html:144 #: templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "Parcelles" -#: forms.py:70 forms.py:203 forms.py:980 models.py:1154 +#: forms.py:72 forms.py:205 forms.py:985 models.py:1154 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -32,96 +34,96 @@ msgstr "Parcelles" msgid "Town" msgstr "Commune" -#: forms.py:72 forms.py:459 forms.py:755 forms.py:1250 models.py:249 +#: forms.py:74 forms.py:455 forms.py:752 forms.py:1255 models.py:249 #: models.py:971 models.py:1152 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "Année" -#: forms.py:75 models.py:1155 +#: forms.py:77 models.py:1155 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "Section" -#: forms.py:78 models.py:1157 +#: forms.py:80 models.py:1157 msgid "Parcel number" msgstr "Numéro de parcelle" -#: forms.py:80 models.py:1159 models.py:1176 models.py:1225 +#: forms.py:82 models.py:1159 models.py:1176 models.py:1225 msgid "Public domain" msgstr "Domaine public" -#: forms.py:124 +#: forms.py:126 msgid "Town section is required." msgstr "Vous devez renseigner le secteur." -#: forms.py:160 +#: forms.py:162 msgid "public domain" msgstr "domaine public" -#: forms.py:167 +#: forms.py:169 msgid "Current parcels" msgstr "Parcelles actuelles" -#: forms.py:169 +#: forms.py:171 msgid "Deleted parcels" msgstr "Parcelles supprimées" -#: forms.py:206 +#: forms.py:208 msgid "Full text input" msgstr "Saisie libre" -#: forms.py:208 +#: forms.py:210 msgid "example: \"2013: XD:1 to 13,24,33 to 39, YD:24\" or \"AB:24,AC:42\"" msgstr "exemple : \"2013: XD:1 à 13,24,33 à 39, YD:24\" ou \"AB:24,AC:42\"" -#: forms.py:363 +#: forms.py:365 msgid "There are identical parcels." msgstr "Il y a des parcelles identiques." -#: forms.py:378 +#: forms.py:380 msgid "Relation type" msgstr "Type de relation" -#: forms.py:381 ishtar_menu.py:30 models.py:344 models.py:804 models.py:834 +#: forms.py:383 ishtar_menu.py:30 models.py:344 models.py:804 models.py:834 #: models.py:862 models.py:963 models.py:1151 wizards.py:339 wizards.py:350 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "Opération" -#: forms.py:401 +#: forms.py:403 msgid ":" msgstr ": " -#: forms.py:409 forms.py:608 forms.py:1215 +#: forms.py:411 forms.py:605 forms.py:1220 msgid "You should select an operation." msgstr "Vous devez sélectionner une opération." -#: forms.py:413 +#: forms.py:415 msgid "You should select a relation type." msgstr "Vous devez sélectionner un type de relation." -#: forms.py:443 +#: forms.py:445 msgid "Current relations" msgstr "Relations actuelles" -#: forms.py:445 +#: forms.py:447 msgid "Deleted relations" msgstr "Relations supprimées" -#: forms.py:449 templates/ishtar/sheet_operation.html:83 +#: forms.py:451 templates/ishtar/sheet_operation.html:83 msgid "Relations" msgstr "Relations" -#: forms.py:460 forms.py:1221 models.py:250 +#: forms.py:456 forms.py:1226 models.py:250 msgid "Numeric reference" msgstr "Identifiant numérique" -#: forms.py:466 forms.py:1261 +#: forms.py:462 forms.py:1266 msgid "Parcel (section/number/public domain)" msgstr "Parcelle (section/nombre/domaine public)" -#: forms.py:469 forms.py:1264 models.py:805 +#: forms.py:465 forms.py:1269 models.py:805 #: templates/ishtar/dashboards/dashboard_operation.html:390 #: templates/ishtar/dashboards/dashboard_operation.html:411 #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -130,211 +132,211 @@ msgstr "Parcelle (section/nombre/domaine public)" msgid "Department" msgstr "Département" -#: forms.py:470 forms.py:1092 models.py:85 +#: forms.py:466 forms.py:1097 models.py:85 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8 msgid "Name" msgstr "Nom" -#: forms.py:472 forms.py:675 forms.py:753 forms.py:1227 models.py:257 +#: forms.py:468 forms.py:672 forms.py:750 forms.py:1232 models.py:257 msgid "Operation type" msgstr "Type d'opération" -#: forms.py:474 +#: forms.py:470 msgid "Is open?" msgstr "Est ouvert ?" -#: forms.py:483 forms.py:782 models.py:246 +#: forms.py:478 forms.py:782 models.py:246 msgid "In charge" msgstr "Responsable" -#: forms.py:490 models.py:957 +#: forms.py:485 models.py:957 msgid "Scientist in charge" msgstr "Responsable scientifique" -#: forms.py:492 forms.py:677 forms.py:773 models.py:244 +#: forms.py:487 forms.py:674 forms.py:772 models.py:244 msgid "Operator" msgstr "Opérateur" -#: forms.py:499 forms.py:1097 models.py:89 models.py:259 +#: forms.py:496 forms.py:1102 models.py:89 models.py:259 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10 msgid "Remains" msgstr "Vestiges" -#: forms.py:500 forms.py:1075 forms.py:1094 models.py:87 models.py:265 +#: forms.py:497 forms.py:1080 forms.py:1099 models.py:87 models.py:265 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9 msgid "Periods" msgstr "Périodes" -#: forms.py:501 +#: forms.py:498 msgid "Started before" msgstr "Commencé avant" -#: forms.py:503 +#: forms.py:500 msgid "Started after" msgstr "Commencé après" -#: forms.py:505 +#: forms.py:502 msgid "Ended before" msgstr "Terminé avant" -#: forms.py:507 +#: forms.py:504 msgid "Ended after" msgstr "Terminé après" -#: forms.py:510 +#: forms.py:507 msgid "Search within relations" msgstr "Recherche parmi les relations" -#: forms.py:512 forms.py:832 +#: forms.py:509 forms.py:837 msgid "Comment" msgstr "Commentaire" -#: forms.py:513 +#: forms.py:510 msgid "Abstract (full text search)" msgstr "Résumé (recherche texte intégral)" -#: forms.py:515 forms.py:835 models.py:313 +#: forms.py:512 forms.py:840 models.py:313 msgid "Comment about scientific documentation" msgstr "Commentaire concernant la documentation scientifique" -#: forms.py:516 forms.py:837 models.py:325 +#: forms.py:513 forms.py:842 models.py:325 msgid "Record quality" msgstr "Qualité d'enregistrement" -#: forms.py:517 forms.py:805 models.py:277 +#: forms.py:514 forms.py:807 models.py:277 msgid "Report processing" msgstr "Traitement du rapport" -#: forms.py:519 forms.py:840 models.py:320 +#: forms.py:516 forms.py:845 models.py:320 msgid "Virtual operation" msgstr "Opération virtuelle" -#: forms.py:521 forms.py:1141 +#: forms.py:518 forms.py:1146 msgid "Archaelogical site" msgstr "Entité Archéologique" -#: forms.py:527 forms.py:1268 +#: forms.py:524 forms.py:1273 msgid "Created by" msgstr "Créé par" -#: forms.py:533 forms.py:1274 +#: forms.py:530 forms.py:1279 msgid "Modified by" msgstr "Modifié par" -#: forms.py:540 +#: forms.py:537 msgid "Documentation deadline before" msgstr "Date limite de rendu de la documentation avant" -#: forms.py:542 +#: forms.py:539 msgid "Documentation deadline after" msgstr "Date limite de rendu de la documentation après" -#: forms.py:544 forms.py:825 models.py:332 +#: forms.py:541 forms.py:830 models.py:332 msgid "Documentation received" msgstr "Documentation reçue" -#: forms.py:546 +#: forms.py:543 msgid "Finds deadline before" msgstr "Date limite de rendu du mobilier avant" -#: forms.py:548 +#: forms.py:545 msgid "Finds deadline after" msgstr "Date limite de rendu du mobilier après" -#: forms.py:550 forms.py:830 models.py:336 +#: forms.py:547 forms.py:835 models.py:336 msgid "Finds received" msgstr "Mobilier reçu" -#: forms.py:595 forms.py:1213 views.py:168 +#: forms.py:592 forms.py:1218 views.py:168 msgid "Operation search" msgstr "Recherche d'opérations" -#: forms.py:639 +#: forms.py:636 msgid "Associated file" msgstr "Dossier associé" -#: forms.py:643 forms.py:928 models.py:968 wizards.py:76 +#: forms.py:640 forms.py:933 models.py:968 wizards.py:76 msgid "Archaelogical file" msgstr "Dossier" -#: forms.py:650 forms.py:652 models.py:327 +#: forms.py:647 forms.py:649 models.py:327 msgid "Abstract" msgstr "Résumé" -#: forms.py:655 +#: forms.py:652 msgid "months" msgstr "mois" -#: forms.py:655 +#: forms.py:652 msgid "years" msgstr "années" -#: forms.py:657 models.py:230 +#: forms.py:654 models.py:230 msgid "Creation date" msgstr "Date de création" -#: forms.py:658 +#: forms.py:655 msgid "Start of field work" msgstr "Début du travail de terrain" -#: forms.py:660 +#: forms.py:657 msgid "All" msgstr "Tout" -#: forms.py:661 +#: forms.py:658 msgid "Preventive" msgstr "Préventif" -#: forms.py:662 +#: forms.py:659 msgid "Research" msgstr "Programmé" -#: forms.py:666 +#: forms.py:663 msgid "Slicing" msgstr "Découpage" -#: forms.py:669 +#: forms.py:666 msgid "Department detail" msgstr "Détail par département" -#: forms.py:671 +#: forms.py:668 msgid "Date get from" msgstr "Date obtenue depuis" -#: forms.py:673 +#: forms.py:670 msgid "Preventive/Research" msgstr "Préventif/Programmé" -#: forms.py:679 +#: forms.py:676 msgid "Date after" msgstr "Date après" -#: forms.py:681 +#: forms.py:678 msgid "Date before" msgstr "Date avant" -#: forms.py:683 +#: forms.py:680 msgid "With reports" msgstr "Avec un rapport" -#: forms.py:684 +#: forms.py:681 msgid "With finds" msgstr "Avec du mobilier" -#: forms.py:736 forms.py:1322 templates/ishtar/sheet_administrativeact.html:13 +#: forms.py:733 forms.py:1327 templates/ishtar/sheet_administrativeact.html:13 #: templates/ishtar/sheet_operation.html:24 msgid "General" msgstr "Général" -#: forms.py:751 models.py:310 +#: forms.py:748 models.py:310 msgid "Generic name" msgstr "Nom générique" -#: forms.py:760 models.py:279 +#: forms.py:757 models.py:279 msgid "Old code" msgstr "Ancien code" -#: forms.py:763 +#: forms.py:760 msgid "Head scientist" msgstr "Responsable scientifique" @@ -342,35 +344,35 @@ msgstr "Responsable scientifique" msgid "Operator reference" msgstr "Référence de l'opérateur" -#: forms.py:791 +#: forms.py:793 msgid "Total surface (m2)" msgstr "Surface totale (m2)" -#: forms.py:798 models.py:53 models.py:233 models.py:1341 +#: forms.py:800 models.py:53 models.py:233 models.py:1341 msgid "Start date" msgstr "Date de début" -#: forms.py:800 models.py:235 +#: forms.py:802 models.py:235 msgid "Excavation end date" msgstr "Date de fin de chantier" -#: forms.py:803 models.py:236 +#: forms.py:805 models.py:236 msgid "Report delivery date" msgstr "Date de livraison du rapport" -#: forms.py:822 models.py:329 +#: forms.py:827 models.py:329 msgid "Deadline for submission of the documentation" msgstr "Date limite de rendu de la documentation" -#: forms.py:827 models.py:334 +#: forms.py:832 models.py:334 msgid "Deadline for submission of the finds" msgstr "Date limite de rendu du mobilier" -#: forms.py:842 +#: forms.py:847 msgid "Image" msgstr "Image" -#: forms.py:843 +#: forms.py:848 #, python-format msgid "" "

Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

" -#: forms.py:881 +#: forms.py:886 msgid "" "If you want to set an excavation end date you have to provide a start date." msgstr "" "Avant de renseigner la date de fin de chantier, il est nécessaire de " "renseigner une date de début." -#: forms.py:886 +#: forms.py:891 msgid "The excavation end date cannot be before the start date." -msgstr "" -"La date de fin de chantier ne peut être antérieure à la date de début." +msgstr "La date de fin de chantier ne peut être antérieure à la date de début." -#: forms.py:914 +#: forms.py:919 #, python-format msgid "" "Operation code already exist for year: %(year)d - use a value bigger than " @@ -400,110 +401,110 @@ msgstr "" "Ce code d'opération existe déjà pour l'année %(year)d - utilisez une valeur " "plus grande que %(last_val)d" -#: forms.py:918 +#: forms.py:923 msgid "Bad operation code" msgstr "Mauvais code d'opération" -#: forms.py:924 models.py:486 +#: forms.py:929 models.py:486 msgid "Operation code" msgstr "Code de l'opération" -#: forms.py:950 +#: forms.py:955 msgid "Preventive informations - excavation" msgstr "Information archéologie préventive - fouille" -#: forms.py:951 models.py:263 +#: forms.py:956 models.py:263 #: templates/ishtar/dashboards/dashboard_operation.html:701 msgid "Cost (euros)" msgstr "Coût (euros)" -#: forms.py:952 models.py:268 +#: forms.py:957 models.py:268 msgid "Scheduled man-days" msgstr "Jours-hommes prévus" -#: forms.py:954 models.py:271 +#: forms.py:959 models.py:271 msgid "Optional man-days" msgstr "Jours-hommes optionnels" -#: forms.py:956 models.py:274 +#: forms.py:961 models.py:274 msgid "Effective man-days" msgstr "Jours-hommes effectifs" -#: forms.py:966 +#: forms.py:971 msgid "Preventive informations - diagnostic" msgstr "Information archéologie préventive - diagnostic" -#: forms.py:969 models.py:293 +#: forms.py:974 models.py:293 msgid "Prescription on zoning" msgstr "Prescription sur zonage" -#: forms.py:971 models.py:296 +#: forms.py:976 models.py:296 msgid "Prescription on large area" msgstr "Prescription sur une vaste surface" -#: forms.py:974 models.py:298 +#: forms.py:979 models.py:298 msgid "Prescription on geoarchaeological context" msgstr "Prescription sur un contexte géoarchéologique" -#: forms.py:978 forms.py:1000 models.py:261 models.py:981 +#: forms.py:983 forms.py:1005 models.py:261 models.py:981 msgid "Towns" msgstr "Communes" -#: forms.py:1007 models.py:1167 models.py:1339 +#: forms.py:1012 models.py:1167 models.py:1339 msgid "Parcel" msgstr "Parcelle" -#: forms.py:1059 models.py:45 +#: forms.py:1064 models.py:45 msgid "Remain types" msgstr "Types de vestige" -#: forms.py:1063 models.py:44 +#: forms.py:1068 models.py:44 msgid "Remain type" msgstr "Type de vestige" -#: forms.py:1079 templates/ishtar/sheet_operation.html:164 +#: forms.py:1084 templates/ishtar/sheet_operation.html:164 #: templates/ishtar/sheet_operation.html:195 msgid "Period" msgstr "Période" -#: forms.py:1091 models.py:84 +#: forms.py:1096 models.py:84 msgid "Reference" msgstr "Référence" -#: forms.py:1120 +#: forms.py:1125 msgid "This reference already exists." msgstr "Cette référence existe déjà." -#: forms.py:1137 models.py:93 +#: forms.py:1142 models.py:93 msgid "Archaeological site" msgstr "Entité archéologique" -#: forms.py:1152 models.py:94 models.py:317 +#: forms.py:1157 models.py:94 models.py:317 #: templates/ishtar/sheet_operation.html:94 msgid "Archaeological sites" msgstr "Entités archéologiques" -#: forms.py:1156 +#: forms.py:1161 msgid "Associated archaelogical sites" msgstr "Entités archéologiques associées" -#: forms.py:1162 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 +#: forms.py:1167 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 msgid "Search" msgstr "Recherche" -#: forms.py:1167 +#: forms.py:1172 msgid "Would you like to close this operation?" msgstr "Voulez-vous clore cette opération ?" -#: forms.py:1172 +#: forms.py:1177 msgid "Would you like to delete this operation?" msgstr "Voulez-vous supprimer cette opération ?" -#: forms.py:1181 forms.py:1251 forms.py:1387 models.py:836 models.py:948 +#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:836 models.py:948 msgid "Index" msgstr "Index" -#: forms.py:1207 +#: forms.py:1212 #, python-format msgid "" "Index already exists for operation: %(operation)s - use a value bigger than " @@ -512,48 +513,48 @@ msgstr "" "Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur " "plus grande que %(last_val)d" -#: forms.py:1219 +#: forms.py:1224 msgid "Operation's year" msgstr "Année de l'opération" -#: forms.py:1226 +#: forms.py:1231 msgid "Operation's town" msgstr "Commune de l'opération" -#: forms.py:1239 +#: forms.py:1244 msgid "Documentation search" msgstr "Recherche de document" -#: forms.py:1241 +#: forms.py:1246 msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: forms.py:1258 forms.py:1325 models.py:873 models.py:942 +#: forms.py:1263 forms.py:1330 models.py:873 models.py:942 msgid "Act type" msgstr "Type d'acte" -#: forms.py:1259 forms.py:1457 +#: forms.py:1264 forms.py:1462 msgid "Indexed?" msgstr "Indexé ?" -#: forms.py:1265 forms.py:1330 models.py:972 +#: forms.py:1270 forms.py:1335 models.py:972 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "Objet" -#: forms.py:1302 views.py:324 +#: forms.py:1307 views.py:324 msgid "Administrative act search" msgstr "Recherche d'actes administratifs" -#: forms.py:1317 forms.py:1415 forms.py:1482 +#: forms.py:1322 forms.py:1420 forms.py:1487 msgid "You should select an administrative act." msgstr "Vous devez sélectionner un acte administratif." -#: forms.py:1333 models.py:969 +#: forms.py:1338 models.py:969 msgid "Signature date" msgstr "Date de signature" -#: forms.py:1375 +#: forms.py:1380 #, python-format msgid "" "This index already exist for year: %(year)d - use a value bigger than " @@ -562,36 +563,36 @@ msgstr "" "Cet index existe déjà pour l'année : %(year)d, utilisez une valeur plus " "grande que %(last_val)d" -#: forms.py:1379 +#: forms.py:1384 msgid "Bad index" msgstr "Mauvais index" -#: forms.py:1392 +#: forms.py:1397 msgid "Would you like to delete this administrative act?" msgstr "Voulez-vous supprimer cet acte administratif ?" -#: forms.py:1397 +#: forms.py:1402 msgid "Template" msgstr "Patron" -#: forms.py:1421 forms.py:1425 +#: forms.py:1426 forms.py:1430 msgid "This document is not intended for this type of act." msgstr "Ce document n'est pas destiné à ce type d'acte." -#: forms.py:1443 +#: forms.py:1448 msgid "Doc generation" msgstr "Génération de document" -#: forms.py:1445 +#: forms.py:1450 msgid "Generate the associated doc?" msgstr "Générer le document associé ?" -#: forms.py:1466 ishtar_menu.py:121 views.py:377 +#: forms.py:1471 ishtar_menu.py:121 views.py:377 msgctxt "admin act register" msgid "Register" msgstr "Registre" -#: ishtar_menu.py:38 +#: ishtar_menu.py:38 ishtar_menu.py:69 ishtar_menu.py:97 msgid "Creation" msgstr "Ajout" @@ -612,10 +613,6 @@ msgstr "Suppression" msgid "Administrative act" msgstr "Acte administratif" -#: ishtar_menu.py:69 ishtar_menu.py:97 widgets.py:55 -msgid "Add" -msgstr "Ajout" - #: ishtar_menu.py:84 msgid "Documents" msgstr "Documents" @@ -1053,6 +1050,10 @@ msgstr "Opération : modification d'un acte administratif" msgid "Operation: administrative act deletion" msgstr "Opération : suppression d'un acte administratif" +#: widgets.py:55 +msgid "Add" +msgstr "Ajout" + #: wizards.py:199 msgid "" "Warning: No Archaelogical File is provided. If you have forget it return to " diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index 5da94edbb..7f00b83eb 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-09 22:11+0100\n" "PO-Revision-Date: 2016-02-24 10:52-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.5\n" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index 9e6d05458..bb3723b32 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-09 22:11+0100\n" "PO-Revision-Date: 2016-10-22 06:30-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.5\n" @@ -141,40 +143,40 @@ msgstr "résultat" msgid "\"%(value)s\" not in %(values)s" msgstr "\"%(value)s\" n'est pas dans %(values)s" -#: forms.py:55 +#: forms.py:72 msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "Entrez un nom correct composé de lettres, espaces et tirets." -#: forms.py:71 forms_common.py:618 +#: forms.py:88 forms_common.py:618 msgid "Confirm" msgstr "Confirmer" -#: forms.py:76 +#: forms.py:93 msgid "Are you sure you want to delete?" msgstr "Êtes-vous sûr de vouloir supprimer ?" -#: forms.py:85 +#: forms.py:102 msgid "There are identical items." msgstr "Il y a des éléments identiques." -#: forms.py:123 forms.py:124 +#: forms.py:140 forms.py:141 msgid "Closing date" msgstr "Date de clôture" -#: forms.py:137 +#: forms.py:154 msgid "You should select an item." msgstr "Vous devez sélectionner un élément." -#: forms.py:138 +#: forms.py:155 msgid "Add a new item" msgstr "Ajouter un nouvel élément" -#: forms.py:245 models.py:1310 +#: forms.py:262 models.py:1355 msgid "Template" msgstr "Patron" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1376 models.py:2758 +#: forms_common.py:406 models.py:1421 models.py:2810 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -198,8 +200,8 @@ msgstr "" "

Par exemple tapez « saint denis 93 » pour obtenir la " "commune Saint-Denis dans le département français de Seine-Saint-Denis.

" -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1546 -#: models.py:2384 models.py:2566 models.py:2628 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1594 +#: models.py:2436 models.py:2618 models.py:2680 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "Personne" @@ -213,63 +215,63 @@ msgstr "" "pas possible." #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1547 models.py:2273 +#: ishtar_menu.py:75 models.py:1595 models.py:2322 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "Organisation" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:977 models.py:1309 -#: models.py:1592 models.py:1810 models.py:2267 models.py:2370 models.py:2744 +#: forms_common.py:376 forms_common.py:446 models.py:1022 models.py:1354 +#: models.py:1640 models.py:1859 models.py:2316 models.py:2422 models.py:2796 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "Nom" -#: forms_common.py:174 models.py:1531 models.py:1941 +#: forms_common.py:174 models.py:1576 models.py:1990 msgid "Organization type" msgstr "Type d'organisation" -#: forms_common.py:176 forms_common.py:400 models.py:1371 +#: forms_common.py:176 forms_common.py:400 models.py:1416 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "Adresse" -#: forms_common.py:178 forms_common.py:403 models.py:1372 +#: forms_common.py:178 forms_common.py:403 models.py:1417 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "Complément d'adresse" -#: forms_common.py:180 forms_common.py:404 models.py:1374 +#: forms_common.py:180 forms_common.py:404 models.py:1419 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "Code postal" -#: forms_common.py:183 forms_common.py:407 models.py:1377 +#: forms_common.py:183 forms_common.py:407 models.py:1422 msgid "Country" msgstr "Pays" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1404 +#: forms_common.py:448 forms_common.py:572 models.py:1449 msgid "Email" msgstr "Courriel" -#: forms_common.py:186 forms_common.py:383 models.py:1389 +#: forms_common.py:186 forms_common.py:383 models.py:1434 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "Téléphone" -#: forms_common.py:187 forms_common.py:392 models.py:1401 +#: forms_common.py:187 forms_common.py:392 models.py:1446 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "Téléphone portable" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:1969 -#: models.py:2269 models.py:2679 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2018 +#: models.py:2318 models.py:2731 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -277,12 +279,13 @@ msgstr "Téléphone portable" msgid "Type" msgstr "Type" -#: forms_common.py:220 views.py:139 +#: forms_common.py:220 views.py:142 msgid "Organization search" msgstr "Recherche d'organisations" #: forms_common.py:244 -msgid "At leat two items have to be selected." +#, fuzzy +msgid "At least two items have to be selected." msgstr "AU moins deux éléments doivent être sélectionnés." #: forms_common.py:262 @@ -293,12 +296,12 @@ msgstr "Fusionner tous les éléments dans" msgid "Organization to merge" msgstr "Organisation à fusionner" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2368 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2420 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "Prénom" -#: forms_common.py:339 forms_common.py:434 views.py:104 +#: forms_common.py:339 forms_common.py:434 views.py:107 msgid "Person search" msgstr "Recherche de personnes" @@ -311,25 +314,25 @@ msgstr "Personne à fusionner" msgid "Identity" msgstr "Identité" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1942 -#: models.py:2362 models.py:2364 models.py:2676 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1991 +#: models.py:2414 models.py:2416 models.py:2728 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "Titre" -#: forms_common.py:372 models.py:2366 +#: forms_common.py:372 models.py:2418 msgid "Salutation" msgstr "Formule d'appel" -#: forms_common.py:378 models.py:2372 +#: forms_common.py:378 models.py:2424 msgid "Raw name" msgstr "Nom brut" -#: forms_common.py:381 models.py:1390 +#: forms_common.py:381 models.py:1435 msgid "Phone description" msgstr "Type de téléphone" -#: forms_common.py:384 models.py:1392 models.py:1394 +#: forms_common.py:384 models.py:1437 models.py:1439 msgid "Phone description 2" msgstr "Type de téléphone 2" @@ -337,11 +340,11 @@ msgstr "Type de téléphone 2" msgid "Phone 2" msgstr "Téléphone 2" -#: forms_common.py:388 models.py:1398 +#: forms_common.py:388 models.py:1443 msgid "Phone description 3" msgstr "Type de téléphone 3" -#: forms_common.py:390 models.py:1396 +#: forms_common.py:390 models.py:1441 msgid "Phone 3" msgstr "Téléphone 3" @@ -349,23 +352,23 @@ msgstr "Téléphone 3" msgid "Current organization" msgstr "Organisation actuelle" -#: forms_common.py:409 models.py:1379 +#: forms_common.py:409 models.py:1424 msgid "Other address: address" msgstr "Autre adresse : adresse" -#: forms_common.py:412 models.py:1382 +#: forms_common.py:412 models.py:1427 msgid "Other address: address complement" msgstr "Autre adresse : complément d'adresse" -#: forms_common.py:414 models.py:1383 +#: forms_common.py:414 models.py:1428 msgid "Other address: postal code" msgstr "Autre adresse : code postal" -#: forms_common.py:416 models.py:1385 +#: forms_common.py:416 models.py:1430 msgid "Other address: town" msgstr "Autre adresse : ville" -#: forms_common.py:418 models.py:1387 +#: forms_common.py:418 models.py:1432 msgid "Other address: country" msgstr "Autre adresse : pays" @@ -381,7 +384,7 @@ msgstr "Nom d'utilisateur" msgid "Account search" msgstr "Recherche de comptes" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2321 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2370 msgid "Person type" msgstr "Type de personne" @@ -389,7 +392,7 @@ msgstr "Type de personne" msgid "Account" msgstr "Compte" -#: forms_common.py:575 wizards.py:1192 +#: forms_common.py:575 wizards.py:1194 msgid "New password" msgstr "Nouveau mot de passe" @@ -413,7 +416,7 @@ msgstr "Ce nom d'utilisateur existe déjà." msgid "Send the new password by email?" msgstr "Envoyer le nouveau mot de passe par courriel ?" -#: forms_common.py:628 forms_common.py:641 models.py:2759 +#: forms_common.py:628 forms_common.py:641 models.py:2811 msgid "Towns" msgstr "Communes" @@ -429,7 +432,7 @@ msgstr "Seul un choix peut être coché." msgid "Documentation informations" msgstr "Information sur le document" -#: forms_common.py:775 forms_common.py:823 models.py:1943 models.py:2653 +#: forms_common.py:775 forms_common.py:823 models.py:1992 models.py:2705 msgid "Source type" msgstr "Type de document" @@ -441,37 +444,37 @@ msgstr "Référence" msgid "Internal reference" msgstr "Référence interne" -#: forms_common.py:783 models.py:2690 +#: forms_common.py:783 models.py:2742 msgid "Numerical ressource (web address)" msgstr "Ressource numérique (adresse web)" -#: forms_common.py:784 models.py:2692 +#: forms_common.py:784 models.py:2744 msgid "Receipt date" msgstr "Date de réception" -#: forms_common.py:786 models.py:2096 models.py:2694 +#: forms_common.py:786 models.py:2145 models.py:2746 msgid "Creation date" msgstr "Date de création" -#: forms_common.py:789 models.py:2697 +#: forms_common.py:789 models.py:2749 msgid "Receipt date in documentation" msgstr "Date de réception en documentation" -#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:577 -#: models.py:1837 models.py:2376 models.py:2704 +#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:622 +#: models.py:1886 models.py:2428 models.py:2756 msgid "Comment" msgstr "Commentaire" -#: forms_common.py:793 forms_common.py:826 models.py:979 models.py:1596 -#: models.py:1769 models.py:1811 models.py:2703 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1024 models.py:1644 +#: models.py:1818 models.py:1860 models.py:2755 templates/sheet_ope.html:128 msgid "Description" msgstr "Description" -#: forms_common.py:796 models.py:2705 +#: forms_common.py:796 models.py:2757 msgid "Additional information" msgstr "Informations supplémentaires" -#: forms_common.py:798 forms_common.py:830 models.py:2707 +#: forms_common.py:798 forms_common.py:830 models.py:2759 msgid "Has a duplicate" msgstr "Existe en doublon" @@ -488,7 +491,7 @@ msgstr "" "

Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

" -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2633 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2685 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "Auteur" @@ -501,7 +504,7 @@ msgstr "Informations complémentaires" msgid "Would you like to delete this documentation?" msgstr "Voulez-vous supprimer ce document ?" -#: forms_common.py:856 models.py:1944 models.py:2621 models.py:2630 +#: forms_common.py:856 models.py:1993 models.py:2673 models.py:2682 msgid "Author type" msgstr "Type d'auteur" @@ -513,7 +516,7 @@ msgstr "Sélection d'auteur" msgid "There are identical authors." msgstr "Il y a des auteurs identiques." -#: forms_common.py:893 models.py:2634 models.py:2686 +#: forms_common.py:893 models.py:2686 models.py:2738 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -527,11 +530,11 @@ msgstr "Administration" msgid "Add/modify" msgstr "Ajouter/Modifier" -#: ishtar_menu.py:36 +#: ishtar_menu.py:36 ishtar_menu.py:70 ishtar_menu.py:101 msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:39 models.py:1105 views.py:1484 +#: ishtar_menu.py:39 models.py:1150 views.py:1494 msgid "Global variables" msgstr "Variables globales" @@ -559,20 +562,15 @@ msgstr "Fusion automatique" msgid "Manual merge" msgstr "Fusion manuelle" -#: ishtar_menu.py:70 ishtar_menu.py:101 models.py:2133 widgets.py:110 -#: templates/ishtar/form_delete.html:11 -msgid "Delete" -msgstr "Suppression" - -#: ishtar_menu.py:109 models.py:2107 +#: ishtar_menu.py:109 models.py:2156 msgid "Imports" msgstr "Imports" -#: ishtar_menu.py:112 views.py:1492 +#: ishtar_menu.py:112 views.py:1502 msgid "New import" msgstr "Nouvel import" -#: ishtar_menu.py:116 views.py:1506 +#: ishtar_menu.py:116 views.py:1516 msgid "Current imports" msgstr "Imports en cours" @@ -592,7 +590,7 @@ msgstr "Un élément sélectionné n'est pas valide." msgid "This item already exists." msgstr "Cet élément existe déjà." -#: models.py:313 models.py:576 models.py:1344 models.py:1356 +#: models.py:313 models.py:621 models.py:1389 models.py:1401 models.py:1815 msgid "Label" msgstr "Libellé" @@ -600,83 +598,83 @@ msgstr "Libellé" msgid "Textual ID" msgstr "Identifiant textuel" -#: models.py:318 models.py:579 models.py:1313 +#: models.py:318 models.py:624 models.py:1358 msgid "Available" msgstr "Disponible" -#: models.py:598 models.py:1883 +#: models.py:643 models.py:1932 msgid "Key" msgstr "Clé" -#: models.py:604 +#: models.py:649 msgid "Specific key to an import" msgstr "Clé spécifique à un import" -#: models.py:696 +#: models.py:741 msgid "Last editor" msgstr "Dernier éditeur" -#: models.py:699 +#: models.py:744 msgid "Creator" msgstr "Créateur" -#: models.py:841 models.py:2770 +#: models.py:886 models.py:2822 msgid "Order" msgstr "Ordre" -#: models.py:842 +#: models.py:887 msgid "Symmetrical" msgstr "Symétrique" -#: models.py:843 +#: models.py:888 msgid "Tiny label" msgstr "Petit libellé" -#: models.py:857 +#: models.py:902 msgid "Cannot have symmetrical and an inverse_relation" msgstr "Ne peut pas être symétrique et avoir une relation inverse" -#: models.py:971 +#: models.py:1016 msgid "Euro" msgstr "Euro" -#: models.py:972 +#: models.py:1017 msgid "US dollar" msgstr "Dollars US" -#: models.py:978 models.py:1594 +#: models.py:1023 models.py:1642 msgid "Slug" msgstr "Identifiant texte" -#: models.py:980 +#: models.py:1025 msgid "Files module" msgstr "Module Dossiers" -#: models.py:981 +#: models.py:1026 msgid "Context records module" msgstr "Module Unités d'Enregistrement" -#: models.py:983 +#: models.py:1028 msgid "Finds module" msgstr "Module Mobilier" -#: models.py:984 +#: models.py:1029 msgid "Need context records module" msgstr "Nécessite le module Unités d'Enregistrement" -#: models.py:986 +#: models.py:1031 msgid "Warehouses module" msgstr "Module Dépôts" -#: models.py:987 +#: models.py:1032 msgid "Need finds module" msgstr "Nécessite le module mobilier" -#: models.py:989 +#: models.py:1034 msgid "Home page" msgstr "Page d'accueil" -#: models.py:990 +#: models.py:1035 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " @@ -686,22 +684,22 @@ msgstr "" "défaut va apparaître. Utiliser la syntaxe Markdown. {random_image} peut être " "utilisé pour afficher une image au hasard." -#: models.py:994 +#: models.py:1039 msgid "File external id" msgstr "Identifiant externe de fichier" -#: models.py:996 +#: models.py:1041 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "Formule pour gérer les identifiants externes" -#: models.py:1001 +#: models.py:1046 msgid "Parcel external id" msgstr "Identifiant externe de parcelle" -#: models.py:1004 +#: models.py:1049 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -711,11 +709,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1009 +#: models.py:1054 msgid "Context record external id" msgstr "Identifiant externe d'unité d'enregistrement" -#: models.py:1011 +#: models.py:1056 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -725,11 +723,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1016 +#: models.py:1061 msgid "Base find external id" msgstr "Identifiant externe de mobilier de base" -#: models.py:1018 +#: models.py:1063 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -739,11 +737,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1023 +#: models.py:1068 msgid "Find external id" msgstr "Identifiant externe de mobilier" -#: models.py:1025 +#: models.py:1070 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -753,11 +751,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1030 +#: models.py:1075 msgid "Raw name for person" msgstr "Nom brut pour une personne" -#: models.py:1032 +#: models.py:1077 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -767,43 +765,43 @@ msgstr "" "Une formule incorrecte peut rendre l'application inutilisable et l'import de " "données externes peut alors être destructif." -#: models.py:1036 +#: models.py:1081 msgid "Current active" msgstr "Actuellement utilisé" -#: models.py:1037 +#: models.py:1082 msgid "Currency" msgstr "Devise" -#: models.py:1041 +#: models.py:1086 msgid "Ishtar site profile" msgstr "Profil d'instance Ishtar" -#: models.py:1042 +#: models.py:1087 msgid "Ishtar site profiles" msgstr "Profils d'instance Ishtar" -#: models.py:1098 +#: models.py:1143 msgid "Variable name" msgstr "Nom de la variable" -#: models.py:1099 +#: models.py:1144 msgid "Description of the variable" msgstr "Description de la variable" -#: models.py:1101 models.py:1884 +#: models.py:1146 models.py:1933 msgid "Value" msgstr "Valeur" -#: models.py:1104 +#: models.py:1149 msgid "Global variable" msgstr "Variable globale" -#: models.py:1214 models.py:1244 +#: models.py:1259 models.py:1289 msgid "Total" msgstr "Total" -#: models.py:1221 models.py:1345 models.py:1357 +#: models.py:1266 models.py:1390 models.py:1402 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -811,599 +809,603 @@ msgstr "Total" msgid "Number" msgstr "Nombre" -#: models.py:1308 +#: models.py:1353 msgid "Administrative Act" msgstr "Acte administratif" -#: models.py:1312 +#: models.py:1357 msgid "Associated object" msgstr "Objet associé" -#: models.py:1316 +#: models.py:1361 msgid "Document template" msgstr "Patron de document" -#: models.py:1317 +#: models.py:1362 msgid "Document templates" msgstr "Patrons de documents" -#: models.py:1348 models.py:1358 models.py:2091 +#: models.py:1393 models.py:1403 models.py:2140 msgid "State" msgstr "État" -#: models.py:1362 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1407 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "Département" -#: models.py:1363 +#: models.py:1408 msgid "Departments" msgstr "Départements" -#: models.py:1400 +#: models.py:1445 msgid "Raw phone" msgstr "Téléphone brut" -#: models.py:1406 +#: models.py:1451 msgid "Alternative address is prefered" msgstr "L'adresse alternative est préférée" -#: models.py:1445 +#: models.py:1490 msgid "Tel: " msgstr "Tél :" -#: models.py:1449 +#: models.py:1494 msgid "Mobile: " msgstr "Mobile :" -#: models.py:1453 +#: models.py:1498 msgid "Email: " msgstr "Courriel :" -#: models.py:1458 +#: models.py:1503 msgid "Merge key" msgstr "Clé de fusion" -#: models.py:1532 +#: models.py:1577 msgid "Organization types" msgstr "Types d'organisation" -#: models.py:1548 views.py:234 +#: models.py:1596 views.py:237 msgid "Operation" msgstr "Opération" -#: models.py:1550 +#: models.py:1598 msgid "Archaeological site" msgstr "Entité Archéologique" -#: models.py:1551 +#: models.py:1599 msgid "Parcels" msgstr "Parcelles" -#: models.py:1553 +#: models.py:1601 msgid "Operation source" msgstr "Documentation de l'opération" -#: models.py:1556 views.py:1299 views.py:1350 +#: models.py:1604 views.py:1310 views.py:1360 msgid "Archaeological files" msgstr "Dossiers archéologiques" -#: models.py:1558 views.py:1302 views.py:1358 +#: models.py:1606 views.py:1313 views.py:1368 msgid "Context records" msgstr "Unités d'Enregistrement" -#: models.py:1560 +#: models.py:1608 msgid "Context record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:1562 views.py:1304 views.py:1361 +#: models.py:1610 views.py:1315 views.py:1371 msgid "Finds" msgstr "Mobilier" -#: models.py:1598 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1646 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "Utilisateurs" -#: models.py:1600 +#: models.py:1648 msgid "Associated model" msgstr "Modèle associé" -#: models.py:1603 +#: models.py:1651 msgid "Is template" msgstr "Est un patron" -#: models.py:1604 +#: models.py:1652 msgid "Unicity keys (separator \";\")" msgstr "Clés d'unicité (séparateur « ; »)" -#: models.py:1608 +#: models.py:1656 msgid "Importer - Type" msgstr "Importeur - Type" -#: models.py:1609 +#: models.py:1657 msgid "Importer - Types" msgstr "Importeur - Types" -#: models.py:1699 +#: models.py:1747 msgid "Importer - Default" msgstr "Importeur - Par défaut" -#: models.py:1700 +#: models.py:1748 msgid "Importer - Defaults" msgstr "Importeur - Par défaut" -#: models.py:1735 +#: models.py:1783 msgid "Importer - Default value" msgstr "Importeur - Valeur par défaut" -#: models.py:1736 +#: models.py:1784 msgid "Importer - Default values" msgstr "Importeur - Valeurs par défaut" -#: models.py:1768 +#: models.py:1817 msgid "Column number" msgstr "Numéro de colonne" -#: models.py:1771 +#: models.py:1820 msgid "Required" msgstr "Requis" -#: models.py:1774 +#: models.py:1823 msgid "Importer - Column" msgstr "Importeur - Colonne" -#: models.py:1775 +#: models.py:1824 msgid "Importer - Columns" msgstr "Importeur - Colonnes" -#: models.py:1795 +#: models.py:1844 msgid "Field name" msgstr "Nom du champ" -#: models.py:1797 models.py:1831 +#: models.py:1846 models.py:1880 msgid "Force creation of new items" msgstr "Forcer la création de nouveaux éléments" -#: models.py:1799 models.py:1833 +#: models.py:1848 models.py:1882 msgid "Concatenate with existing" msgstr "Concaténer avec l'existant" -#: models.py:1801 models.py:1835 +#: models.py:1850 models.py:1884 msgid "Concatenate character" msgstr "Caractère de concaténation" -#: models.py:1805 +#: models.py:1854 msgid "Importer - Duplicate field" msgstr "Importeur - Champ dupliqué" -#: models.py:1806 +#: models.py:1855 msgid "Importer - Duplicate fields" msgstr "Importeur - Champs dupliqués" -#: models.py:1813 +#: models.py:1862 msgid "Regular expression" msgstr "Expression régulière" -#: models.py:1816 +#: models.py:1865 msgid "Importer - Regular expression" msgstr "Importeur - Expression régulière" -#: models.py:1817 +#: models.py:1866 msgid "Importer - Regular expressions" msgstr "Importeur - Expressions régulières" -#: models.py:1840 +#: models.py:1889 msgid "Importer - Target" msgstr "Importeur - Cible" -#: models.py:1841 +#: models.py:1890 msgid "Importer - Targets" msgstr "Importeur - Cibles" -#: models.py:1865 views.py:518 +#: models.py:1914 views.py:520 msgid "True" msgstr "Oui" -#: models.py:1866 views.py:520 +#: models.py:1915 views.py:522 msgid "False" msgstr "Non" -#: models.py:1885 +#: models.py:1934 msgid "Is set" msgstr "Est défini" -#: models.py:1892 +#: models.py:1941 msgid "Importer - Target key" msgstr "Importeur - Rapprochement" -#: models.py:1893 +#: models.py:1942 msgid "Importer - Targets keys" msgstr "Importeur - Rapprochements" -#: models.py:1945 models.py:2669 models.py:2682 +#: models.py:1994 models.py:2721 models.py:2734 msgid "Format" msgstr "Format" -#: models.py:1946 models.py:2774 +#: models.py:1995 models.py:2826 msgid "Operation type" msgstr "Type d'opération" -#: models.py:1947 +#: models.py:1996 msgid "Period" msgstr "Périodes" -#: models.py:1948 +#: models.py:1997 msgid "Report state" msgstr "État de rapport" -#: models.py:1949 +#: models.py:1998 msgid "Unit" msgstr "Unité" -#: models.py:1950 +#: models.py:1999 msgid "Material" msgstr "Matériau" -#: models.py:1952 +#: models.py:2001 msgid "Conservatory state" msgstr "État de conservation" -#: models.py:1953 +#: models.py:2002 msgid "Preservation type" msgstr "Type de conservation" -#: models.py:1954 +#: models.py:2003 msgid "Object type" msgstr "Type d'objet" -#: models.py:1956 +#: models.py:2005 msgid "Identification type" msgstr "Type d'identification" -#: models.py:1958 +#: models.py:2007 msgid "Context record relation type" msgstr "Type de relations entre Unités d'Enregistrement" -#: models.py:1959 models.py:2661 +#: models.py:2008 models.py:2713 msgid "Support type" msgstr "Type de support" -#: models.py:1965 +#: models.py:2014 msgid "Integer" msgstr "Entier" -#: models.py:1966 +#: models.py:2015 msgid "Float" msgstr "Nombre à virgule" -#: models.py:1967 +#: models.py:2016 msgid "String" msgstr "Chaîne de caractères" -#: models.py:1968 templates/sheet_ope.html:86 +#: models.py:2017 templates/sheet_ope.html:86 msgid "Date" msgstr "Date" -#: models.py:1970 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2019 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "Année" -#: models.py:1971 +#: models.py:2020 msgid "String to boolean" msgstr "Chaîne de caractères vers booléen" -#: models.py:1972 +#: models.py:2021 msgctxt "filesystem" msgid "File" msgstr "Fichier" -#: models.py:1973 +#: models.py:2022 msgid "Unknow type" msgstr "Type inconnu" -#: models.py:1989 +#: models.py:2038 msgid "4 digit year. e.g.: \"2015\"" msgstr "Année sur 4 chiffres. Exemple : « 2015 »" -#: models.py:1990 +#: models.py:2039 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "Année sur 4 chiffres/mois/jour. Exemple : « 2015/02/04 »" -#: models.py:1991 +#: models.py:2040 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "Jour/mois/année sur 4 chiffres. Exemple : « 04/02/2015 »" -#: models.py:2001 +#: models.py:2050 msgid "Options" msgstr "Options" -#: models.py:2003 +#: models.py:2052 msgid "Split character(s)" msgstr "Caractère(s) de séparation" -#: models.py:2007 +#: models.py:2056 msgid "Importer - Formater type" msgstr "Importeur - Type de mise en forme" -#: models.py:2008 +#: models.py:2057 msgid "Importer - Formater types" msgstr "Importeur - Types de mise en forme" -#: models.py:2055 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2104 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "Créé" -#: models.py:2056 +#: models.py:2105 msgid "Analyse in progress" msgstr "Analyse en cours" -#: models.py:2057 +#: models.py:2106 msgid "Analysed" msgstr "Analysé" -#: models.py:2058 +#: models.py:2107 msgid "Import pending" msgstr "Import en attente" -#: models.py:2059 +#: models.py:2108 msgid "Import in progress" msgstr "Import en cours" -#: models.py:2060 +#: models.py:2109 msgid "Finished with errors" msgstr "Terminé avec des erreurs" -#: models.py:2061 +#: models.py:2110 msgid "Finished" msgstr "Terminé" -#: models.py:2062 +#: models.py:2111 msgid "Archived" msgstr "Archivé" -#: models.py:2074 +#: models.py:2123 msgid "Imported file" msgstr "Fichier importé" -#: models.py:2077 +#: models.py:2126 msgid "Associated images (zip file)" msgstr "Images associées (fichier zip)" -#: models.py:2079 +#: models.py:2128 msgid "Encoding" msgstr "Codage" -#: models.py:2081 +#: models.py:2130 msgid "Skip lines" msgstr "Nombre de lignes d'entête" -#: models.py:2082 templates/ishtar/import_list.html:47 +#: models.py:2131 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "Fichier erreur" -#: models.py:2085 +#: models.py:2134 msgid "Result file" msgstr "Fichier résultant" -#: models.py:2088 templates/ishtar/import_list.html:53 +#: models.py:2137 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "Fichier de correspondance" -#: models.py:2094 +#: models.py:2143 msgid "Conservative import" msgstr "Import conservateur" -#: models.py:2099 +#: models.py:2148 msgid "End date" msgstr "Date de fin" -#: models.py:2101 +#: models.py:2150 msgid "Remaining seconds" msgstr "Secondes restantes" -#: models.py:2106 +#: models.py:2155 msgid "Import" msgstr "Import" -#: models.py:2123 +#: models.py:2172 msgid "Analyse" msgstr "Analyser" -#: models.py:2125 models.py:2128 +#: models.py:2174 models.py:2177 msgid "Re-analyse" msgstr "Analyser de nouveau " -#: models.py:2126 +#: models.py:2175 msgid "Launch import" msgstr "Lancer l'import" -#: models.py:2129 +#: models.py:2178 msgid "Re-import" msgstr "Ré-importer" -#: models.py:2130 +#: models.py:2179 msgid "Archive" msgstr "Archiver" -#: models.py:2132 +#: models.py:2181 msgid "Unarchive" msgstr "Désarchiver" -#: models.py:2274 +#: models.py:2182 widgets.py:110 templates/ishtar/form_delete.html:11 +msgid "Delete" +msgstr "Suppression" + +#: models.py:2323 msgid "Organizations" msgstr "Organisations" -#: models.py:2276 +#: models.py:2325 msgid "Can view all Organizations" msgstr "Peut voir toutes les Organisations" -#: models.py:2277 +#: models.py:2326 msgid "Can view own Organization" msgstr "Peut voir sa propre Organisation" -#: models.py:2278 +#: models.py:2327 msgid "Can add own Organization" msgstr "Peut ajouter sa propre Organisation" -#: models.py:2280 +#: models.py:2329 msgid "Can change own Organization" msgstr "Peut modifier sa propre Organisation" -#: models.py:2282 +#: models.py:2331 msgid "Can delete own Organization" msgstr "Peut supprimer sa propre Organisation" -#: models.py:2317 +#: models.py:2366 msgid "Groups" msgstr "Groupes" -#: models.py:2322 +#: models.py:2371 msgid "Person types" msgstr "Types de personne" -#: models.py:2330 +#: models.py:2382 msgid "Title type" msgstr "Type de titre" -#: models.py:2331 +#: models.py:2383 msgid "Title types" msgstr "Types de titre" -#: models.py:2340 +#: models.py:2392 msgid "Mr" msgstr "M." -#: models.py:2341 +#: models.py:2393 msgid "Miss" msgstr "Mlle" -#: models.py:2342 +#: models.py:2394 msgid "Mr and Mrs" msgstr "M. et Mme" -#: models.py:2343 +#: models.py:2395 msgid "Mrs" msgstr "Mme" -#: models.py:2344 +#: models.py:2396 msgid "Doctor" msgstr "Dr." -#: models.py:2374 +#: models.py:2426 msgid "Contact type" msgstr "Type de contact" -#: models.py:2377 models.py:2441 +#: models.py:2429 models.py:2493 msgid "Types" msgstr "Types" -#: models.py:2380 +#: models.py:2432 msgid "Is attached to" msgstr "Est rattaché à" -#: models.py:2385 +#: models.py:2437 msgid "Persons" msgstr "Personnes" -#: models.py:2387 +#: models.py:2439 msgid "Can view all Persons" msgstr "Peut voir toutes les Personnes" -#: models.py:2388 +#: models.py:2440 msgid "Can view own Person" msgstr "Peut voir sa propre Personne" -#: models.py:2389 +#: models.py:2441 msgid "Can add own Person" msgstr "Peut ajouter sa propre Personne" -#: models.py:2390 +#: models.py:2442 msgid "Can change own Person" msgstr "Peut modifier sa propre Personne" -#: models.py:2391 +#: models.py:2443 msgid "Can delete own Person" msgstr "Peut supprimer sa propre Personne" -#: models.py:2569 +#: models.py:2621 msgid "Advanced shortcut menu" msgstr "Menu de raccourci (avancé)" -#: models.py:2572 +#: models.py:2624 msgid "Ishtar user" msgstr "Utilisateur d'Ishtar" -#: models.py:2573 +#: models.py:2625 msgid "Ishtar users" msgstr "Utilisateurs d'Ishtar" -#: models.py:2616 +#: models.py:2668 msgid "To modify the password use the form in Auth > User" msgstr "" "Pour modifier le mot de passe, utilisez le formulaire dans Authentification " "> Utilisateurs" -#: models.py:2622 +#: models.py:2674 msgid "Author types" msgstr "Types d'auteur" -#: models.py:2654 +#: models.py:2706 msgid "Source types" msgstr "Types de document" -#: models.py:2662 +#: models.py:2714 msgid "Support types" msgstr "Types de support" -#: models.py:2670 +#: models.py:2722 msgid "Formats" msgstr "Formats" -#: models.py:2677 +#: models.py:2729 msgid "External ID" msgstr "Identifiant externe" -#: models.py:2680 +#: models.py:2732 msgid "Support" msgstr "Support" -#: models.py:2684 +#: models.py:2736 msgid "Scale" msgstr "Échelle" -#: models.py:2698 +#: models.py:2750 msgid "Item number" msgstr "Numéro d'élément" -#: models.py:2699 +#: models.py:2751 msgid "Ref." msgstr "Réf." -#: models.py:2702 +#: models.py:2754 msgid "Internal ref." msgstr "Réf. interne" -#: models.py:2745 +#: models.py:2797 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:2746 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2798 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "Localisation" -#: models.py:2771 +#: models.py:2823 msgid "Is preventive" msgstr "Est du préventif" -#: models.py:2775 +#: models.py:2827 msgid "Operation types" msgstr "Types d'opération" -#: models.py:2804 +#: models.py:2856 msgid "Preventive" msgstr "Préventif" -#: models.py:2805 +#: models.py:2857 msgid "Research" msgstr "Programmé" @@ -1415,104 +1417,104 @@ msgstr " (...)" msgid "Load another random image?" msgstr "Charger une autre image au hasard ?" -#: views.py:111 +#: views.py:114 msgid "New person" msgstr "Nouvelle personne" -#: views.py:119 +#: views.py:122 msgid "Person modification" msgstr "Modification d'une personne" -#: views.py:134 +#: views.py:137 msgid "Person deletion" msgstr "Suppression de personne" -#: views.py:145 +#: views.py:148 msgid "New organization" msgstr "Nouvelle organisation" -#: views.py:152 +#: views.py:155 msgid "Organization modification" msgstr "Modification d'une organisation" -#: views.py:168 +#: views.py:171 msgid "Organization deletion" msgstr "Suppression d'une organisation" -#: views.py:175 +#: views.py:178 msgid "Account management" msgstr "Gestion des comptes" -#: views.py:181 +#: views.py:184 msgid "Account deletion" msgstr "Suppression de comptes" -#: views.py:233 +#: views.py:236 msgid "Archaeological file" msgstr "Dossier" -#: views.py:236 +#: views.py:239 msgid "Context record" msgstr "Unité d'Enregistrement" -#: views.py:238 +#: views.py:241 msgid "Find" msgstr "Mobilier" -#: views.py:1238 views.py:1281 +#: views.py:1249 views.py:1292 msgid "Operation not permitted." msgstr "Opération non permise." -#: views.py:1240 +#: views.py:1251 #, python-format msgid "New %s" msgstr "Nouveau %s" -#: views.py:1300 views.py:1354 +#: views.py:1311 views.py:1364 msgid "Operations" msgstr "Opérations" -#: views.py:1553 templates/ishtar/import_list.html:43 +#: views.py:1563 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "Associer les éléments non rapprochés" -#: views.py:1568 +#: views.py:1578 msgid "Delete import" msgstr "Suppression de l'import" -#: views.py:1607 +#: views.py:1617 msgid "Merge persons" msgstr "Fusionner des personnes" -#: views.py:1631 +#: views.py:1641 msgid "Select the main person" msgstr "Choisir la personne principale" -#: views.py:1640 +#: views.py:1650 msgid "Merge organization" msgstr "Fusionner des organisations" -#: views.py:1650 +#: views.py:1660 msgid "Select the main organization" msgstr "Sélectionner l'organisation principale" -#: views.py:1690 views.py:1706 +#: views.py:1700 views.py:1716 msgid "Corporation manager" msgstr "Représentant de la personne morale" -#: widgets.py:239 widgets.py:347 widgets.py:463 +#: widgets.py:239 widgets.py:347 widgets.py:462 msgid "Search..." msgstr "Recherche..." -#: widgets.py:623 templatetags/window_tables.py:79 +#: widgets.py:642 templatetags/window_tables.py:79 msgid "No results" msgstr "Pas de résultats" -#: widgets.py:624 templatetags/window_tables.py:80 +#: widgets.py:643 templatetags/window_tables.py:80 msgid "Loading..." msgstr "Chargement..." -#: widgets.py:625 +#: widgets.py:644 msgid "Remove" msgstr "Enlever" @@ -1524,7 +1526,7 @@ msgstr "Oui" msgid "No" msgstr "Non" -#: wizards.py:1249 +#: wizards.py:1251 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "[%(app_name)s] Création /modification du compte" @@ -1565,8 +1567,7 @@ msgstr "L'équipe %(app_name)s" #: templates/base.html:41 msgid "Searches in the shortcut menu deals with all items." -msgstr "" -"Les recherches dans le menu de raccourci concernent tous les éléments." +msgstr "Les recherches dans le menu de raccourci concernent tous les éléments." #: templates/base.html:42 msgid "Searches in the shortcut menu deals with only your items." -- cgit v1.2.3 From cbf59fbfc5e54958e62a27a01a6fec90dbc26059 Mon Sep 17 00:00:00 2001 From: Valérie-Emma Leroux Date: Mon, 14 Nov 2016 19:22:19 +0100 Subject: Update labels --- archaeological_files/forms.py | 4 ++-- archaeological_files/models.py | 6 +++--- archaeological_files/templates/ishtar/sheet_file.html | 12 ++++++------ archaeological_files_pdl/forms.py | 2 +- archaeological_finds/forms.py | 12 ++++++------ archaeological_operations/forms.py | 2 +- archaeological_operations/import_from_csv.py | 2 +- archaeological_operations/import_from_dbf.py | 2 +- .../management/commands/import_operations_old.py | 2 +- .../templates/ishtar/sheet_operation.html | 6 +++--- archaeological_operations/wizards.py | 4 ++-- ishtar_common/templates/ishtar/sheet_organization.html | 4 ++-- ishtar_common/templates/ishtar/sheet_person.html | 6 +++--- .../templates/ishtar/wizard/wizard_person_deletion.html | 2 +- ishtar_common/templates/sheet_ope.html | 2 +- 15 files changed, 34 insertions(+), 34 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 42a645171..45a05b9b1 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -290,7 +290,7 @@ class FileFormPreventive(ManageOldType, forms.Form): validators=[valid_id(Person)]) responsible_town_planning_service = forms.IntegerField( required=False, - label=_(u"Responsible for town planning service"), + label=_(u"Responsible for planning service"), widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', @@ -389,7 +389,7 @@ class FinalFileClosingForm(FinalForm): class FinalFileDeleteForm(FinalForm): confirm_msg = " " - confirm_end_msg = _(u"Would you like to delete this archaelogical file ?") + confirm_end_msg = _(u"Would you like to delete this archaeological file ?") class AdministrativeActFileModifySelect(TableSelect): diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 1d8317b31..7f5655c0c 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -135,16 +135,16 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, responsible_town_planning_service = models.ForeignKey( Person, related_name='responsible_town_planning_service_files', blank=True, null=True, - verbose_name=_(u"Responsible for town planning service"), + verbose_name=_(u"Responsible for planning service"), on_delete=models.SET_NULL,) # service instructeur - personne raw_town_planning_service = models.CharField( - _(u"Town planning service (raw)"), max_length=200, + _(u"Planning service (raw)"), max_length=200, blank=True, null=True) planning_service = models.ForeignKey( Organization, related_name='planning_service_files', blank=True, null=True, - verbose_name=_(u"Town planning service organization"), + verbose_name=_(u"Planning service organization"), on_delete=models.SET_NULL,) # service instructeur permit_type = models.ForeignKey( PermitType, verbose_name=_(u"Permit type"), blank=True, null=True) diff --git a/archaeological_files/templates/ishtar/sheet_file.html b/archaeological_files/templates/ishtar/sheet_file.html index f228531e1..249a9846c 100644 --- a/archaeological_files/templates/ishtar/sheet_file.html +++ b/archaeological_files/templates/ishtar/sheet_file.html @@ -59,18 +59,18 @@ {% if item.is_preventive %} -

{% trans "Preventive archaelogical file"%}

+

{% trans "Preventive archaeological file"%}

    {% if item.total_developed_surface %}
  • {{ item.total_developed_surface }} m2 ({{ item.total_developed_surface_ha }} ha)
  • {% endif %} {% field_li "Saisine type" item.saisine_type %} -{% field_li_detail "Responsible for town planning service" item.responsible_town_planning_service %} -{% field_li "Responsible for town planning service address" item.responsible_town_planning_service.full_address %} +{% field_li_detail "Responsible for planning service" item.responsible_town_planning_service %} +{% field_li "Responsible for planning service address" item.responsible_town_planning_service.full_address %} {% if item.town_planning_service %} - {% field_li "Town planning service organization" item.town_planning_service.full_address %} + {% field_li "Planning service organization" item.town_planning_service.full_address %} {% else %} - {% field_li "Town planning service organization" item.responsible_town_planning_service.attached_to.full_address %} + {% field_li "Planning service organization" item.responsible_town_planning_service.attached_to.full_address %} {% endif %} {% field_li "Permit type" item.permit_type %} @@ -132,7 +132,7 @@ {% empty %} - {% trans "No operation associated to this archaelogical file" %} + {% trans "No operation associated to this archaeological file" %} {% endfor %} diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py index 3b800dc8a..4890eb5d6 100644 --- a/archaeological_files_pdl/forms.py +++ b/archaeological_files_pdl/forms.py @@ -345,7 +345,7 @@ class FileFormGeneralContractor(PersonOrgaForm): class FileFormPlanningService(forms.Form): - form_label = _(u"Town planning service") + form_label = _(u"Planning service") associated_models = {'responsible_town_planning_service': models.Person, 'planning_service': models.Organization} diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 66ba9f8ea..a34da139e 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -454,9 +454,9 @@ class UpstreamFindFormSelection(FindFormSelection): super(UpstreamFindFormSelection, self).__init__(*args, **kwargs) self.fields['pk'].required = True -############################################# -# Source management for archaelogical finds # -############################################# +############################################## +# Source management for archaeological finds # +############################################## SourceFindFormSelection = get_form_selection( 'SourceFindFormSelection', _(u"Archaeological find search"), 'find', @@ -475,11 +475,11 @@ class FindSourceSelect(SourceSelect): widget=OAWidget, label="Code PATRIARCHE") find__datings__period = forms.ChoiceField( - label=_(u"Period of the archaelogical find"), choices=[]) + label=_(u"Period of the archaeological find"), choices=[]) find__material_type = forms.ChoiceField( - label=_("Material type of the archaelogical find"), choices=[]) + label=_("Material type of the archaeological find"), choices=[]) find__description = forms.CharField( - label=_(u"Description of the archaelogical find")) + label=_(u"Description of the archaeological find")) def __init__(self, *args, **kwargs): super(FindSourceSelect, self).__init__(*args, **kwargs) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 37c35f4be..c8bb5e8a1 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -1158,7 +1158,7 @@ ArchaeologicalSiteFormSet.form_label = _("Archaeological sites") class ArchaeologicalSiteSelectionForm(forms.Form): - form_label = _("Associated archaelogical sites") + form_label = _("Associated archaeological sites") archaeological_sites = forms.IntegerField( widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-archaeologicalsite'), diff --git a/archaeological_operations/import_from_csv.py b/archaeological_operations/import_from_csv.py index 45faae632..999ada690 100644 --- a/archaeological_operations/import_from_csv.py +++ b/archaeological_operations/import_from_csv.py @@ -18,7 +18,7 @@ # See the file COPYING for details. """ -Utils: import archaelogical operation from a CSV file +Utils: import archaeological operation from a CSV file """ DELIMITER = ";" diff --git a/archaeological_operations/import_from_dbf.py b/archaeological_operations/import_from_dbf.py index 3ce41fdfc..fa452d605 100644 --- a/archaeological_operations/import_from_dbf.py +++ b/archaeological_operations/import_from_dbf.py @@ -18,7 +18,7 @@ # See the file COPYING for details. """ -Utils: import archaelogical operation from a DBF file +Utils: import archaeological operation from a DBF file """ from __future__ import unicode_literals diff --git a/archaeological_operations/management/commands/import_operations_old.py b/archaeological_operations/management/commands/import_operations_old.py index a9ecf41c9..4ad229e9a 100755 --- a/archaeological_operations/management/commands/import_operations_old.py +++ b/archaeological_operations/management/commands/import_operations_old.py @@ -29,7 +29,7 @@ IMPORTERS = {'csv':import_from_csv, class Command(BaseCommand): args = ' []' - help = "Import archaelogical operations" + help = "Import archaeological operations" def handle(self, *args, **options): if not args or not args[0]: diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html index daddb42d6..4fc6c1a28 100644 --- a/archaeological_operations/templates/ishtar/sheet_operation.html +++ b/archaeological_operations/templates/ishtar/sheet_operation.html @@ -49,11 +49,11 @@ {% field_li "Deadline for submission of the finds" item.finds_deadline %} {% field_li "Finds received" item.finds_received %} {% field_li_detail "Associated file" item.associated_file %} -{% field_li "Responsible for town planning service" item.associated_file.responsible_town_planning_service.full_address %} +{% field_li "Responsible for planning service" item.associated_file.responsible_town_planning_service.full_address %} {% if item.associated_file.town_planning_service %} - {% field_li "Town planning service organization" item.associated_file.town_planning_service.full_address %} + {% field_li "Planning service organization" item.associated_file.town_planning_service.full_address %} {% else %} - {% field_li "Town planning service organization" item.associated_file.responsible_town_planning_service.attached_to.full_address %} + {% field_li "Planning service organization" item.associated_file.responsible_town_planning_service.attached_to.full_address %} {% endif %} {% field_li "Permit type" item.associated_file.permit_type %} {% field_li "Permit reference" item.associated_file.permit_reference %} diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index eeabef857..c5ddc64e5 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -189,7 +189,7 @@ class OperationWizard(Wizard): def get_formated_datas(self, forms): """ - Show a specific warning if no archaelogical file is provided + Show a specific warning if no archaeological file is provided """ datas = super(OperationWizard, self).get_formated_datas(forms) # if the general town form is used the advertissement is relevant @@ -245,7 +245,7 @@ class OperationWizard(Wizard): request = self.request post_data = request.POST.copy() - # add all parcel from available in the archaelogical file + # add all parcel from available in the archaeological file if not post_data.get('add_all_parcels'): return super(OperationWizard, self).post(*args, **kwargs) diff --git a/ishtar_common/templates/ishtar/sheet_organization.html b/ishtar_common/templates/ishtar/sheet_organization.html index 8a47c35f5..1f4bd77b7 100644 --- a/ishtar_common/templates/ishtar/sheet_organization.html +++ b/ishtar_common/templates/ishtar/sheet_organization.html @@ -35,12 +35,12 @@ {% endfor %} -{% trans "General contractor organization of archaelogical files" as af %} +{% trans "General contractor organization of archaeological files" as af %} {% if item.general_contractor_files.count %} {% dynamic_table_document af 'files' 'corporation_general_contractor' item.pk '' output %} {% endif %} -{% trans "Town planning service of archaelogical files" as af %} +{% trans "Planning service of archaeological files" as af %} {% if item.planning_service_files.count %} {% dynamic_table_document af 'files' 'planning_service' item.pk '' output %} {% endif %} diff --git a/ishtar_common/templates/ishtar/sheet_person.html b/ishtar_common/templates/ishtar/sheet_person.html index c84c56996..bcf39c363 100644 --- a/ishtar_common/templates/ishtar/sheet_person.html +++ b/ishtar_common/templates/ishtar/sheet_person.html @@ -77,17 +77,17 @@ {% dynamic_table_document ao 'operations' 'in_charge' item.pk '' output %} {% endif %} -{% trans "In charge of archaelogical files" as af %} +{% trans "In charge of archaeological files" as af %} {% if item.file_responsability.count %} {% dynamic_table_document af 'files' 'in_charge' item.pk '' output %} {% endif %} -{% trans "General contractor of archaelogical files" as af %} +{% trans "General contractor of archaeological files" as af %} {% if item.general_contractor_files.count %} {% dynamic_table_document af 'files' 'general_contractor' item.pk '' output %} {% endif %} -{% trans "Responsible for town planning service of archaelogical files" as af %} +{% trans "Responsible for planning service of archaeological files" as af %} {% if item.responsible_town_planning_service_files.count %} {% dynamic_table_document af 'files' 'responsible_town_planning_service' item.pk '' output %} {% endif %} diff --git a/ishtar_common/templates/ishtar/wizard/wizard_person_deletion.html b/ishtar_common/templates/ishtar/wizard/wizard_person_deletion.html index 03b941c60..86286fad0 100644 --- a/ishtar_common/templates/ishtar/wizard/wizard_person_deletion.html +++ b/ishtar_common/templates/ishtar/wizard/wizard_person_deletion.html @@ -19,7 +19,7 @@ {% endif %} {% if current_object.responsible_town_planning_service.count %} -

    {% trans "Responsible town planning service of archaeological files" %}

    +

    {% trans "Responsible for planning service of archaeological files" %}

      {% for file in current_object.responsible_town_planning_service.all %}
    • {{file}}
    • {% endfor %} diff --git a/ishtar_common/templates/sheet_ope.html b/ishtar_common/templates/sheet_ope.html index 28390af45..1e18e8b7e 100644 --- a/ishtar_common/templates/sheet_ope.html +++ b/ishtar_common/templates/sheet_ope.html @@ -33,7 +33,7 @@

      {{ item.related_file }}

      {% if item.related_file.is_preventive %} {% if item.operator_reference_code %}

      {{ item.operator_reference_code }}

      {% endif %} -{% if item.related_file.town_planning_service %}

      {{ item.related_file.town_planning_service }}

      {% endif %} +{% if item.related_file.town_planning_service %}

      {{ item.related_file.town_planning_service }}

      {% endif %} {% if item.related_file.permit_type %}

      {{ item.related_file.permit_type }}

      {% endif %} {% if item.related_file.permit_reference %}

      {{ item.related_file.permit_reference }}

      {% endif %} {% if item.related_file.general_contractor.attached_to %}

      {{ item.related_file.general_contractor.attached_to }}

      {% endif %} -- cgit v1.2.3 From e4c0173adc1250fe608f477bb80cbdc5bddc3885 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 14 Nov 2016 19:43:27 +0100 Subject: Explicit CSV headers (refs #3340) --- archaeological_context_records/models.py | 13 ++++++-- archaeological_finds/models.py | 54 ++++++++++++++++---------------- archaeological_operations/models.py | 22 +++++++++++++ ishtar_common/models.py | 13 ++++++-- ishtar_common/views.py | 11 +++++-- 5 files changed, 80 insertions(+), 33 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 3f4dc1598..22ff3b095 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -29,7 +29,7 @@ from ishtar_common.utils import cached_label_changed from ishtar_common.models import GeneralType, BaseHistorizedItem, \ HistoricalRecords, OwnPerms, ShortMenuItem, Source, GeneralRelationType,\ GeneralRecordRelations, post_delete_record_relation, get_external_id, \ - ImageModel, post_save_cache + ImageModel, post_save_cache, ValueGetter from archaeological_operations.models import Operation, Period, Parcel @@ -118,7 +118,8 @@ post_save.connect(post_save_cache, sender=IdentificationType) post_delete.connect(post_save_cache, sender=IdentificationType) -class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): +class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, + ValueGetter, ShortMenuItem): SHOW_URL = 'show-contextrecord' SLUG = 'contextrecord' TABLE_COLS = ['parcel__town', 'operation__year', @@ -155,6 +156,14 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): RELATIVE_SESSION_NAMES = [ ('operation', 'operation__pk'), ('file', 'operation__associated_file__pk')] + EXTRA_FULL_FIELDS_LABELS = { + 'parcel__town': _(u"Parcel (town)"), + 'detailled_related_context_records': _(u"Related context records"), + 'operation__code_patriarche': u"Operation (code patriarche)", + 'parcel__external_id': _(u"Parcel (external ID)"), + 'datings__period': _(u"Datings (period)"), + 'parcel__year': _(u"Parcel (year)"), + } # fields external_id = models.TextField(_(u"External ID"), blank=True, null=True) diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index aa5eacc30..6dcbbce65 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -291,41 +291,41 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): CHECK_DICT = dict(CHECK_CHOICES) SHOW_URL = 'show-find' SLUG = 'find' - TABLE_COLS = ['label', 'material_types', 'datings.period', - 'base_finds.context_record.parcel.town', - 'base_finds.context_record.operation.year', - 'base_finds.context_record.operation.operation_code', - 'container.reference', 'container.location', - 'base_finds.batch', - 'base_finds.context_record.parcel.town', - 'base_finds.context_record.parcel', ] + TABLE_COLS = ['label', 'material_types', 'datings__period', + 'base_finds__context_record__parcel__town', + 'base_finds__context_record__operation__year', + 'base_finds__context_record__operation__operation_code', + 'container__reference', 'container__location', + 'base_finds__batch', + 'base_finds__context_record__parcel__town', + 'base_finds__context_record__parcel', ] if settings.COUNTRY == 'fr': TABLE_COLS.insert( - 6, 'base_finds.context_record.operation.code_patriarche') + 6, 'base_finds__context_record__operation__code_patriarche') TABLE_COLS_FOR_OPE = [ - 'base_finds.cache_short_id', - 'base_finds.cache_complete_id', + 'base_finds__cache_short_id', + 'base_finds__cache_complete_id', 'previous_id', 'label', 'material_types', - 'datings.period', 'find_number', 'object_types', + 'datings__period', 'find_number', 'object_types', 'description', - 'base_finds.context_record.parcel.town', - 'base_finds.context_record.parcel', ] + 'base_finds__context_record__parcel__town', + 'base_finds__context_record__parcel', ] EXTRA_FULL_FIELDS = [ - 'base_finds.cache_short_id', 'base_finds.cache_complete_id', - 'base_finds.comment', 'base_finds.description', - 'base_finds.topographic_localisation', - 'base_finds.special_interest', - 'base_finds.discovery_date'] + 'base_finds__cache_short_id', 'base_finds__cache_complete_id', + 'base_finds__comment', 'base_finds__description', + 'base_finds__topographic_localisation', + 'base_finds__special_interest', + 'base_finds__discovery_date'] EXTRA_FULL_FIELDS_LABELS = { - 'base_finds.cache_short_id': _(u"Base find - Short ID"), - 'base_finds.cache_complete_id': _(u"Base find - Complete ID"), - 'base_finds.comment': _(u"Base find - Comment"), - 'base_finds.description': _(u"Base find - Description"), - 'base_finds.topographic_localisation': _(u"Base find - " - u"Topographic localisation"), - 'base_finds.special_interest': _(u"Base find - Special interest"), - 'base_finds.discovery_date': _(u"Base find - Discovery date"), + 'base_finds__cache_short_id': _(u"Base find - Short ID"), + 'base_finds__cache_complete_id': _(u"Base find - Complete ID"), + 'base_finds__comment': _(u"Base find - Comment"), + 'base_finds__description': _(u"Base find - Description"), + 'base_finds__topographic_localisation': _(u"Base find - " + u"Topographic localisation"), + 'base_finds__special_interest': _(u"Base find - Special interest"), + 'base_finds__discovery_date': _(u"Base find - Discovery date"), } ATTRS_EQUIV = {'get_first_base_find': 'base_finds'} diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 14e5e1f7e..1e108e98c 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -225,6 +225,28 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, 'finds_deadline_before': 'finds_deadline__lte', 'finds_deadline_after': 'finds_deadline__gte', } + EXTRA_FULL_FIELDS_LABELS = { + 'full_code_patriarche': u"Code patriarche", + 'year_index': _(u"Year - Index"), + 'associated_file_short_label': _(u"Associated file (label)"), + 'operator__name': _(u"Operator name"), + 'scientist__raw_name': _(u"Scientist (full name)"), + 'associated_file__external_id': _(u"Associated file (external ID)"), + 'scientist__title': _(u"Scientist (title)"), + 'scientist__surname': _(u"Scientist (surname)"), + 'scientist__name': _(u"Scientist (name)"), + 'scientist__attached_to__name': _(u"Scientist - Organization (name)"), + 'in_charge__title': _(u"In charge (title)"), + 'in_charge__surname': _(u"In charge (surname)"), + 'in_charge__name': _(u"In charge (name)"), + 'in_charge__attached_to__name': _(u"In charge - Organization (name)"), + 'cira_rapporteur__surname': u"Rapporteur CIRA (prénom)", + 'cira_rapporteur__name': u"Rapporteur CIRA (nom)", + 'cira_rapporteur__attached_to__name': u"Rapporteur CIRA - " + u"Organisation (nom)", + 'archaeological_sites__reference': _(u"Archaeological sites (" + u"reference)"), + } # fields definition creation_date = models.DateField(_(u"Creation date"), diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 72a3432f8..5b822c7dd 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -25,6 +25,7 @@ import copy import datetime from PIL import Image from importlib import import_module +import logging import os import re import shutil @@ -65,6 +66,9 @@ from ishtar_common.data_importer import Importer, ImportFormater, \ TypeFormater, YearFormater, StrToBoolean, FileFormater +logger = logging.getLogger(__name__) + + def post_save_user(sender, **kwargs): user = kwargs['instance'] try: @@ -95,6 +99,7 @@ class Imported(models.Model): class ValueGetter(object): _prefix = "" GET_VALUES_EXTRA = [] + EXTRA_FULL_FIELDS_LABELS = {} def get_values(self, prefix=''): if not prefix: @@ -1607,7 +1612,7 @@ def get_importer_models(): ('archaeological_context_records.models.RecordRelations', _(u"Context record relations"))] + MODELS MODELS = [('archaeological_finds.models.BaseFind', - _(u"Finds")), ] + MODELS + _(u"Base finds")), ] + MODELS return MODELS @@ -1995,7 +2000,9 @@ TARGET_MODELS = [ ('archaeological_operations.models.OperationType', _(u"Operation type")), ('archaeological_operations.models.Period', _(u"Period")), ('archaeological_operations.models.ReportState', _(u"Report state")), + ('archaeological_operations.models.RemainType', _(u"Remain type")), ('archaeological_context_records.models.Unit', _(u"Unit")), + ('archaeological_context_records.models.ActivityType', _(u"Activity type")), ('archaeological_finds.models.MaterialType', _(u"Material")), ('archaeological_finds.models.ConservatoryState', _(u"Conservatory state")), @@ -2077,7 +2084,9 @@ class FormaterType(models.Model): kwargs['many_split'] = self.many_split if self.formater_type == 'TypeFormater': if self.options not in TARGET_MODELS_KEYS: - print('%s not in TARGET_MODELS_KEYS' % self.options) + logger.warning( + "**WARN FormaterType.get_formater_type**: {} " + "is not in TARGET_MODELS_KEYS".format(self.options)) return model = None if self.options in dir(): diff --git a/ishtar_common/views.py b/ishtar_common/views.py index cd34a2019..8634125cd 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -981,8 +981,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], lnk = link_template % reverse('show-' + default_name, args=[data[0], '']) except NoReverseMatch: - print( - '"show-' + default_name + "\" args (" + logger.warning( + '**WARN "show-' + default_name + '" args (' + unicode(data[0]) + ") url not available") lnk = '' res = {'id': data[0], 'link': lnk} @@ -1027,6 +1027,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], writer = csv.writer(response, **CSV_OPTIONS) col_names = [] for field_name in table_cols: + if type(field_name) in (list, tuple): + field_name = " ; ".join(field_name) if hasattr(model, 'EXTRA_FULL_FIELDS_LABELS') and\ field_name in model.EXTRA_FULL_FIELDS_LABELS: field = model.EXTRA_FULL_FIELDS_LABELS[field_name] @@ -1037,6 +1039,11 @@ def get_item(model, func_name, default_name, extra_request_keys=[], field = model._meta.get_field(field_name) except: col_names.append(u"".encode(ENCODING)) + logger.warning( + "**WARN get_item - csv export**: no col name for " + "{}\nadd explicit label to " + "EXTRA_FULL_FIELDS_LABELS attribute of " + "{}".format(field_name, model)) continue col_names.append( unicode(field.verbose_name).encode(ENCODING)) -- cgit v1.2.3 From 6e305f456429b13f6cf645312fac9a242a6659f3 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 14 Nov 2016 19:58:46 +0100 Subject: Update translation files --- archaeological_context_records/locale/django.pot | 134 ++--- archaeological_files/locale/django.pot | 12 +- archaeological_files_pdl/locale/django.pot | 8 +- archaeological_finds/locale/django.pot | 8 +- archaeological_operations/locale/django.pot | 312 +++++++----- ishtar_common/locale/django.pot | 555 ++++++++++----------- translations/fr/archaeological_context_records.po | 147 +++--- translations/fr/archaeological_files.po | 20 +- translations/fr/archaeological_files_pdl.po | 13 +- translations/fr/archaeological_finds.po | 14 +- translations/fr/archaeological_operations.po | 328 +++++++----- translations/fr/archaeological_warehouse.po | 2 +- translations/fr/ishtar_common.po | 578 +++++++++++----------- 13 files changed, 1166 insertions(+), 965 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index dfd388ac2..f6189b42c 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -7,11 +7,11 @@ msgid "" msgstr "" -#: forms.py:47 forms.py:51 models.py:165 wizards.py:77 +#: forms.py:47 forms.py:51 models.py:174 wizards.py:77 msgid "Operation" msgstr "" -#: forms.py:59 forms.py:137 models.py:167 +#: forms.py:59 forms.py:137 models.py:176 msgid "ID" msgstr "" @@ -32,7 +32,7 @@ msgid "Archaelogical site" msgstr "" #: forms.py:75 -msgid "Search within operation relations" +msgid "Search within related operations" msgstr "" #: forms.py:77 forms.py:232 models.py:55 @@ -63,43 +63,43 @@ msgstr "" msgid "General" msgstr "" -#: forms.py:136 models.py:131 models.py:163 +#: forms.py:136 models.py:132 models.py:172 msgid "Parcel" msgstr "" -#: forms.py:139 models.py:168 templates/ishtar/sheet_contextrecord.html:27 +#: forms.py:139 models.py:177 templates/ishtar/sheet_contextrecord.html:27 msgid "Description" msgstr "" -#: forms.py:141 models.py:169 +#: forms.py:141 models.py:178 msgid "General comment" msgstr "" -#: forms.py:143 models.py:173 +#: forms.py:143 models.py:182 msgid "Length (m)" msgstr "" -#: forms.py:144 models.py:174 +#: forms.py:144 models.py:183 msgid "Width (m)" msgstr "" -#: forms.py:145 models.py:175 +#: forms.py:145 models.py:184 msgid "Thickness (m)" msgstr "" -#: forms.py:146 models.py:177 +#: forms.py:146 models.py:186 msgid "Depth (m)" msgstr "" -#: forms.py:147 models.py:185 +#: forms.py:147 models.py:194 msgid "Unit" msgstr "" -#: forms.py:148 models.py:187 +#: forms.py:148 models.py:196 msgid "Has furniture?" msgstr "" -#: forms.py:151 models.py:179 +#: forms.py:151 models.py:188 msgid "Location" msgstr "" @@ -126,7 +126,7 @@ msgstr "" msgid "Start date" msgstr "" -#: forms.py:234 models.py:57 models.py:172 +#: forms.py:234 models.py:57 models.py:181 msgid "End date" msgstr "" @@ -138,7 +138,7 @@ msgstr "" msgid "Dating type" msgstr "" -#: forms.py:263 ishtar_menu.py:29 models.py:459 +#: forms.py:263 ishtar_menu.py:29 models.py:468 msgid "Context record" msgstr "" @@ -146,7 +146,7 @@ msgstr "" msgid "Relations" msgstr "" -#: forms.py:288 forms.py:296 models.py:190 +#: forms.py:288 forms.py:296 models.py:199 #: templates/ishtar/sheet_contextrecord.html:39 msgid "Interpretation" msgstr "" @@ -155,31 +155,31 @@ msgstr "" msgid "Comments on dating" msgstr "" -#: forms.py:294 models.py:189 +#: forms.py:294 models.py:198 msgid "Filling" msgstr "" -#: forms.py:298 models.py:210 +#: forms.py:298 models.py:219 msgid "Activity" msgstr "" -#: forms.py:300 models.py:208 +#: forms.py:300 models.py:217 msgid "Identification" msgstr "" -#: forms.py:302 models.py:193 +#: forms.py:302 models.py:202 msgid "TAQ" msgstr "" -#: forms.py:303 models.py:197 +#: forms.py:303 models.py:206 msgid "Estimated TAQ" msgstr "" -#: forms.py:305 models.py:200 +#: forms.py:305 models.py:209 msgid "TPQ" msgstr "" -#: forms.py:306 models.py:204 +#: forms.py:306 models.py:213 msgid "Estimated TPQ" msgstr "" @@ -300,147 +300,167 @@ msgid "Identification Types" msgstr "" #: models.py:160 +msgid "Parcel (town)" +msgstr "" + +#: models.py:161 +msgid "Related context records" +msgstr "" + +#: models.py:163 +msgid "Parcel (external ID)" +msgstr "" + +#: models.py:164 +msgid "Datings (period)" +msgstr "" + +#: models.py:165 +msgid "Parcel (year)" +msgstr "" + +#: models.py:169 msgid "External ID" msgstr "" -#: models.py:162 +#: models.py:171 msgid "External ID is set automatically" msgstr "" -#: models.py:170 +#: models.py:179 msgid "Date d'ouverture" msgstr "" -#: models.py:180 +#: models.py:189 msgid "A short description of the location of the context record" msgstr "" -#: models.py:183 +#: models.py:192 msgid "Comment on datings" msgstr "" -#: models.py:194 +#: models.py:203 msgid "" "\"Terminus Ante Quem\" the context record can't have been created after this " "date" msgstr "" -#: models.py:198 +#: models.py:207 msgid "Estimation of a \"Terminus Ante Quem\"" msgstr "" -#: models.py:201 +#: models.py:210 msgid "" "\"Terminus Post Quem\" the context record can't have been created before " "this date" msgstr "" -#: models.py:205 +#: models.py:214 msgid "Estimation of a \"Terminus Post Quem\"" msgstr "" -#: models.py:213 +#: models.py:222 msgid "Point" msgstr "" -#: models.py:214 +#: models.py:223 msgid "Polygon" msgstr "" -#: models.py:215 +#: models.py:224 msgid "Cached name" msgstr "" -#: models.py:219 models.py:220 templates/ishtar/sheet_contextrecord.html:4 +#: models.py:228 models.py:229 templates/ishtar/sheet_contextrecord.html:4 msgid "Context Record" msgstr "" -#: models.py:222 +#: models.py:231 msgid "Can view all Context Records" msgstr "" -#: models.py:224 +#: models.py:233 msgid "Can view own Context Record" msgstr "" -#: models.py:226 +#: models.py:235 msgid "Can add own Context Record" msgstr "" -#: models.py:228 +#: models.py:237 msgid "Can change own Context Record" msgstr "" -#: models.py:230 +#: models.py:239 msgid "Can delete own Context Record" msgstr "" -#: models.py:240 +#: models.py:249 msgctxt "short" msgid "Context record" msgstr "" -#: models.py:377 +#: models.py:386 msgid "Inverse relation" msgstr "" -#: models.py:381 models.py:405 +#: models.py:390 models.py:414 msgid "Relation type" msgstr "" -#: models.py:382 +#: models.py:391 msgid "Relation types" msgstr "" -#: models.py:400 +#: models.py:409 msgid "ID (left)" msgstr "" -#: models.py:401 +#: models.py:410 msgid "Unit (left)" msgstr "" -#: models.py:402 +#: models.py:411 msgid "Parcel (left)" msgstr "" -#: models.py:403 +#: models.py:412 msgid "Description (left)" msgstr "" -#: models.py:404 +#: models.py:413 msgid "Periods (left)" msgstr "" -#: models.py:406 +#: models.py:415 msgid "Unit (right)" msgstr "" -#: models.py:407 models.py:408 +#: models.py:416 models.py:417 msgid "Parcel (right)" msgstr "" -#: models.py:409 +#: models.py:418 msgid "Description (right)" msgstr "" -#: models.py:410 +#: models.py:419 msgid "Periods (right)" msgstr "" -#: models.py:419 +#: models.py:428 msgid "Record relation" msgstr "" -#: models.py:420 +#: models.py:429 msgid "Record relations" msgstr "" -#: models.py:456 +#: models.py:465 msgid "Context record documentation" msgstr "" -#: models.py:457 +#: models.py:466 msgid "Context record documentations" msgstr "" diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot index 05c775798..361a0e7fc 100644 --- a/archaeological_files/locale/django.pot +++ b/archaeological_files/locale/django.pot @@ -156,7 +156,7 @@ msgid "Preventive informations" msgstr "" #: forms.py:293 models.py:138 -msgid "Responsible for town planning service" +msgid "Responsible for planning service" msgstr "" #: forms.py:310 models.py:174 @@ -197,7 +197,7 @@ msgid "Would you like to close this archaeological file?" msgstr "" #: forms.py:392 -msgid "Would you like to delete this archaelogical file ?" +msgid "Would you like to delete this archaeological file ?" msgstr "" #: forms.py:397 forms.py:424 forms.py:547 @@ -330,11 +330,11 @@ msgid "General contractor organization" msgstr "" #: models.py:141 -msgid "Town planning service (raw)" +msgid "Planning service (raw)" msgstr "" #: models.py:147 -msgid "Town planning service organization" +msgid "Planning service organization" msgstr "" #: models.py:153 @@ -530,7 +530,7 @@ msgid "Surface:" msgstr "" #: templates/ishtar/sheet_file.html:62 -msgid "Preventive archaelogical file" +msgid "Preventive archaeological file" msgstr "" #: templates/ishtar/sheet_file.html:64 @@ -573,7 +573,7 @@ msgid "Excavation end date" msgstr "" #: templates/ishtar/sheet_file.html:135 -msgid "No operation associated to this archaelogical file" +msgid "No operation associated to this archaeological file" msgstr "" #: templates/ishtar/sheet_file.html:141 diff --git a/archaeological_files_pdl/locale/django.pot b/archaeological_files_pdl/locale/django.pot index 79da87fd5..f86c85ac8 100644 --- a/archaeological_files_pdl/locale/django.pot +++ b/archaeological_files_pdl/locale/django.pot @@ -97,18 +97,14 @@ msgstr "" msgid "In charge" msgstr "" -#: forms.py:348 -msgid "Town planning service" +#: forms.py:348 forms.py:355 +msgid "Planning service" msgstr "" #: forms.py:352 msgid "File reference" msgstr "" -#: forms.py:355 -msgid "Planning service" -msgstr "" - #: forms.py:395 msgid "Person in charge" msgstr "" diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 9c2550def..d9903354c 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -188,7 +188,7 @@ msgid "Archaelogical site" msgstr "" #: forms.py:236 -msgid "Search within operation relations" +msgid "Search within related operations" msgstr "" #: forms.py:241 models.py:101 @@ -252,15 +252,15 @@ msgid "Numeric reference" msgstr "" #: forms.py:478 -msgid "Period of the archaelogical find" +msgid "Period of the archaeological find" msgstr "" #: forms.py:480 -msgid "Material type of the archaelogical find" +msgid "Material type of the archaeological find" msgstr "" #: forms.py:482 -msgid "Description of the archaelogical find" +msgid "Description of the archaeological find" msgstr "" #: forms.py:494 diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index d20ceba2d..09c184231 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -9,12 +9,12 @@ msgid "" msgstr "" #: forms.py:69 forms.py:371 forms.py:1009 forms.py:1031 forms.py:1035 -#: models.py:1168 templates/ishtar/sheet_operation.html:144 +#: models.py:1190 templates/ishtar/sheet_operation.html:144 #: templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "" -#: forms.py:72 forms.py:205 forms.py:985 models.py:1154 +#: forms.py:72 forms.py:205 forms.py:985 models.py:1176 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -23,22 +23,22 @@ msgstr "" msgid "Town" msgstr "" -#: forms.py:74 forms.py:455 forms.py:752 forms.py:1255 models.py:249 -#: models.py:971 models.py:1152 +#: forms.py:74 forms.py:455 forms.py:752 forms.py:1255 models.py:271 +#: models.py:993 models.py:1174 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "" -#: forms.py:77 models.py:1155 +#: forms.py:77 models.py:1177 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "" -#: forms.py:80 models.py:1157 +#: forms.py:80 models.py:1179 msgid "Parcel number" msgstr "" -#: forms.py:82 models.py:1159 models.py:1176 models.py:1225 +#: forms.py:82 models.py:1181 models.py:1198 models.py:1247 msgid "Public domain" msgstr "" @@ -74,8 +74,8 @@ msgstr "" msgid "Relation type" msgstr "" -#: forms.py:383 ishtar_menu.py:30 models.py:344 models.py:804 models.py:834 -#: models.py:862 models.py:963 models.py:1151 wizards.py:339 wizards.py:350 +#: forms.py:383 ishtar_menu.py:30 models.py:366 models.py:826 models.py:856 +#: models.py:884 models.py:985 models.py:1173 wizards.py:339 wizards.py:350 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "" @@ -104,7 +104,7 @@ msgstr "" msgid "Relations" msgstr "" -#: forms.py:456 forms.py:1226 models.py:250 +#: forms.py:456 forms.py:1226 models.py:272 msgid "Numeric reference" msgstr "" @@ -112,7 +112,7 @@ msgstr "" msgid "Parcel (section/number/public domain)" msgstr "" -#: forms.py:465 forms.py:1269 models.py:805 +#: forms.py:465 forms.py:1269 models.py:827 #: templates/ishtar/dashboards/dashboard_operation.html:390 #: templates/ishtar/dashboards/dashboard_operation.html:411 #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -126,7 +126,7 @@ msgstr "" msgid "Name" msgstr "" -#: forms.py:468 forms.py:672 forms.py:750 forms.py:1232 models.py:257 +#: forms.py:468 forms.py:672 forms.py:750 forms.py:1232 models.py:279 msgid "Operation type" msgstr "" @@ -134,24 +134,24 @@ msgstr "" msgid "Is open?" msgstr "" -#: forms.py:478 forms.py:782 models.py:246 +#: forms.py:478 forms.py:782 models.py:268 msgid "In charge" msgstr "" -#: forms.py:485 models.py:957 +#: forms.py:485 models.py:979 msgid "Scientist in charge" msgstr "" -#: forms.py:487 forms.py:674 forms.py:772 models.py:244 +#: forms.py:487 forms.py:674 forms.py:772 models.py:266 msgid "Operator" msgstr "" -#: forms.py:496 forms.py:1102 models.py:89 models.py:259 +#: forms.py:496 forms.py:1102 models.py:89 models.py:281 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10 msgid "Remains" msgstr "" -#: forms.py:497 forms.py:1080 forms.py:1099 models.py:87 models.py:265 +#: forms.py:497 forms.py:1080 forms.py:1099 models.py:87 models.py:287 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9 msgid "Periods" msgstr "" @@ -184,19 +184,19 @@ msgstr "" msgid "Abstract (full text search)" msgstr "" -#: forms.py:512 forms.py:840 models.py:313 +#: forms.py:512 forms.py:840 models.py:335 msgid "Comment about scientific documentation" msgstr "" -#: forms.py:513 forms.py:842 models.py:325 +#: forms.py:513 forms.py:842 models.py:347 msgid "Record quality" msgstr "" -#: forms.py:514 forms.py:807 models.py:277 +#: forms.py:514 forms.py:807 models.py:299 msgid "Report processing" msgstr "" -#: forms.py:516 forms.py:845 models.py:320 +#: forms.py:516 forms.py:845 models.py:342 msgid "Virtual operation" msgstr "" @@ -220,7 +220,7 @@ msgstr "" msgid "Documentation deadline after" msgstr "" -#: forms.py:541 forms.py:830 models.py:332 +#: forms.py:541 forms.py:830 models.py:354 msgid "Documentation received" msgstr "" @@ -232,7 +232,7 @@ msgstr "" msgid "Finds deadline after" msgstr "" -#: forms.py:547 forms.py:835 models.py:336 +#: forms.py:547 forms.py:835 models.py:358 msgid "Finds received" msgstr "" @@ -244,11 +244,11 @@ msgstr "" msgid "Associated file" msgstr "" -#: forms.py:640 forms.py:933 models.py:968 wizards.py:76 +#: forms.py:640 forms.py:933 models.py:990 wizards.py:76 msgid "Archaelogical file" msgstr "" -#: forms.py:647 forms.py:649 models.py:327 +#: forms.py:647 forms.py:649 models.py:349 msgid "Abstract" msgstr "" @@ -260,7 +260,7 @@ msgstr "" msgid "years" msgstr "" -#: forms.py:654 models.py:230 +#: forms.py:654 models.py:252 msgid "Creation date" msgstr "" @@ -317,11 +317,11 @@ msgstr "" msgid "General" msgstr "" -#: forms.py:748 models.py:310 +#: forms.py:748 models.py:332 msgid "Generic name" msgstr "" -#: forms.py:757 models.py:279 +#: forms.py:757 models.py:301 msgid "Old code" msgstr "" @@ -329,7 +329,7 @@ msgstr "" msgid "Head scientist" msgstr "" -#: forms.py:779 models.py:309 +#: forms.py:779 models.py:331 msgid "Operator reference" msgstr "" @@ -337,23 +337,23 @@ msgstr "" msgid "Total surface (m2)" msgstr "" -#: forms.py:800 models.py:53 models.py:233 models.py:1341 +#: forms.py:800 models.py:53 models.py:255 models.py:1363 msgid "Start date" msgstr "" -#: forms.py:802 models.py:235 +#: forms.py:802 models.py:257 msgid "Excavation end date" msgstr "" -#: forms.py:805 models.py:236 +#: forms.py:805 models.py:258 msgid "Report delivery date" msgstr "" -#: forms.py:827 models.py:329 +#: forms.py:827 models.py:351 msgid "Deadline for submission of the documentation" msgstr "" -#: forms.py:832 models.py:334 +#: forms.py:832 models.py:356 msgid "Deadline for submission of the finds" msgstr "" @@ -388,7 +388,7 @@ msgstr "" msgid "Bad operation code" msgstr "" -#: forms.py:929 models.py:486 +#: forms.py:929 models.py:508 msgid "Operation code" msgstr "" @@ -396,20 +396,20 @@ msgstr "" msgid "Preventive informations - excavation" msgstr "" -#: forms.py:956 models.py:263 +#: forms.py:956 models.py:285 #: templates/ishtar/dashboards/dashboard_operation.html:701 msgid "Cost (euros)" msgstr "" -#: forms.py:957 models.py:268 +#: forms.py:957 models.py:290 msgid "Scheduled man-days" msgstr "" -#: forms.py:959 models.py:271 +#: forms.py:959 models.py:293 msgid "Optional man-days" msgstr "" -#: forms.py:961 models.py:274 +#: forms.py:961 models.py:296 msgid "Effective man-days" msgstr "" @@ -417,23 +417,23 @@ msgstr "" msgid "Preventive informations - diagnostic" msgstr "" -#: forms.py:974 models.py:293 +#: forms.py:974 models.py:315 msgid "Prescription on zoning" msgstr "" -#: forms.py:976 models.py:296 +#: forms.py:976 models.py:318 msgid "Prescription on large area" msgstr "" -#: forms.py:979 models.py:298 +#: forms.py:979 models.py:320 msgid "Prescription on geoarchaeological context" msgstr "" -#: forms.py:983 forms.py:1005 models.py:261 models.py:981 +#: forms.py:983 forms.py:1005 models.py:283 models.py:1003 msgid "Towns" msgstr "" -#: forms.py:1012 models.py:1167 models.py:1339 +#: forms.py:1012 models.py:1189 models.py:1361 msgid "Parcel" msgstr "" @@ -462,13 +462,13 @@ msgstr "" msgid "Archaeological site" msgstr "" -#: forms.py:1157 models.py:94 models.py:317 +#: forms.py:1157 models.py:94 models.py:339 #: templates/ishtar/sheet_operation.html:94 msgid "Archaeological sites" msgstr "" #: forms.py:1161 -msgid "Associated archaelogical sites" +msgid "Associated archaeological sites" msgstr "" #: forms.py:1167 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 @@ -483,7 +483,7 @@ msgstr "" msgid "Would you like to delete this operation?" msgstr "" -#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:836 models.py:948 +#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:858 models.py:970 msgid "Index" msgstr "" @@ -510,7 +510,7 @@ msgstr "" msgid "You should select a document." msgstr "" -#: forms.py:1263 forms.py:1330 models.py:873 models.py:942 +#: forms.py:1263 forms.py:1330 models.py:895 models.py:964 msgid "Act type" msgstr "" @@ -518,7 +518,7 @@ msgstr "" msgid "Indexed?" msgstr "" -#: forms.py:1270 forms.py:1335 models.py:972 +#: forms.py:1270 forms.py:1335 models.py:994 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "" @@ -531,7 +531,7 @@ msgstr "" msgid "You should select an administrative act." msgstr "" -#: forms.py:1338 models.py:969 +#: forms.py:1338 models.py:991 msgid "Signature date" msgstr "" @@ -587,7 +587,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:58 models.py:988 +#: ishtar_menu.py:58 models.py:1010 #: templates/ishtar/sheet_administrativeact.html:4 msgid "Administrative act" msgstr "" @@ -612,16 +612,16 @@ msgstr "" msgid "General informations" msgstr "" -#: ishtar_menu.py:136 models.py:345 +#: ishtar_menu.py:136 models.py:367 #: templates/ishtar/dashboards/dashboard_operation.html:8 msgid "Operations" msgstr "" -#: models.py:52 models.py:70 models.py:1803 +#: models.py:52 models.py:70 models.py:1825 msgid "Order" msgstr "" -#: models.py:54 models.py:1342 +#: models.py:54 models.py:1364 msgid "End date" msgstr "" @@ -677,309 +677,365 @@ msgstr "" msgid "Reliable" msgstr "" +#: models.py:230 +msgid "Year - Index" +msgstr "" + +#: models.py:231 +msgid "Associated file (label)" +msgstr "" + #: models.py:232 -msgid "Closing date" +msgid "Operator name" +msgstr "" + +#: models.py:233 +msgid "Scientist (full name)" +msgstr "" + +#: models.py:234 +msgid "Associated file (external ID)" +msgstr "" + +#: models.py:235 +msgid "Scientist (title)" +msgstr "" + +#: models.py:236 +msgid "Scientist (surname)" +msgstr "" + +#: models.py:237 +msgid "Scientist (name)" +msgstr "" + +#: models.py:238 +msgid "Scientist - Organization (name)" msgstr "" #: models.py:239 +msgid "In charge (title)" +msgstr "" + +#: models.py:240 +msgid "In charge (surname)" +msgstr "" + +#: models.py:241 +msgid "In charge (name)" +msgstr "" + +#: models.py:242 +msgid "In charge - Organization (name)" +msgstr "" + +#: models.py:247 +msgid "Archaeological sites (reference)" +msgstr "" + +#: models.py:254 +msgid "Closing date" +msgstr "" + +#: models.py:261 msgid "In charge scientist" msgstr "" -#: models.py:254 models.py:1147 +#: models.py:276 models.py:1169 msgid "File" msgstr "" -#: models.py:258 +#: models.py:280 msgid "Surface (m2)" msgstr "" -#: models.py:311 +#: models.py:333 msgid "General comment" msgstr "" -#: models.py:314 +#: models.py:336 msgid "Cached name" msgstr "" -#: models.py:322 +#: models.py:344 msgid "" "If checked, it means that this operation have not been officialy registered." msgstr "" -#: models.py:338 +#: models.py:360 msgid "Point" msgstr "" -#: models.py:339 +#: models.py:361 msgid "Multi polygon" msgstr "" -#: models.py:347 +#: models.py:369 msgid "Can view all Operations" msgstr "" -#: models.py:348 +#: models.py:370 msgid "Can view own Operation" msgstr "" -#: models.py:349 +#: models.py:371 msgid "Can add own Operation" msgstr "" -#: models.py:350 +#: models.py:372 msgid "Can change own Operation" msgstr "" -#: models.py:351 +#: models.py:373 msgid "Can delete own Operation" msgstr "" -#: models.py:352 +#: models.py:374 msgid "Can close Operation" msgstr "" -#: models.py:380 +#: models.py:402 msgid "OPE" msgstr "" -#: models.py:440 +#: models.py:462 msgid "Intercommunal" msgstr "" -#: models.py:471 models.py:861 +#: models.py:493 models.py:883 msgid "Archaeological file" msgstr "" -#: models.py:472 +#: models.py:494 msgid "Code patriarche" msgstr "" -#: models.py:512 +#: models.py:534 msgid "This operation code already exists for this year" msgstr "" -#: models.py:545 +#: models.py:567 msgid "Number of parcels" msgstr "" -#: models.py:563 +#: models.py:585 msgid "Number of administrative acts" msgstr "" -#: models.py:571 +#: models.py:593 msgid "Number of indexed administrative acts" msgstr "" -#: models.py:579 +#: models.py:601 msgid "Number of context records" msgstr "" -#: models.py:615 +#: models.py:637 msgid "Number of finds" msgstr "" -#: models.py:660 +#: models.py:682 msgid "No type" msgstr "" -#: models.py:691 +#: models.py:713 msgid "Number of sources" msgstr "" -#: models.py:733 templates/ishtar/dashboards/dashboard_operation.html:309 +#: models.py:755 templates/ishtar/dashboards/dashboard_operation.html:309 #: templates/ishtar/dashboards/dashboard_operation.html:575 #: templates/ishtar/dashboards/dashboard_operation.html:611 msgid "Mean" msgstr "" -#: models.py:775 +#: models.py:797 msgid "Inverse relation" msgstr "" -#: models.py:779 +#: models.py:801 msgid "Operation relation type" msgstr "" -#: models.py:780 +#: models.py:802 msgid "Operation relation types" msgstr "" -#: models.py:793 +#: models.py:815 msgid "Operation record relation" msgstr "" -#: models.py:794 +#: models.py:816 msgid "Operation record relations" msgstr "" -#: models.py:840 +#: models.py:862 msgid "Operation documentation" msgstr "" -#: models.py:841 +#: models.py:863 msgid "Operation documentations" msgstr "" -#: models.py:844 +#: models.py:866 msgid "Can view all Operation sources" msgstr "" -#: models.py:846 +#: models.py:868 msgid "Can view own Operation source" msgstr "" -#: models.py:848 +#: models.py:870 msgid "Can add own Operation source" msgstr "" -#: models.py:850 +#: models.py:872 msgid "Can change own Operation source" msgstr "" -#: models.py:852 +#: models.py:874 msgid "Can delete own Operation source" msgstr "" -#: models.py:864 +#: models.py:886 msgid "Intended to" msgstr "" -#: models.py:866 +#: models.py:888 msgid "Code" msgstr "" -#: models.py:869 +#: models.py:891 msgid "Associated template" msgstr "" -#: models.py:870 +#: models.py:892 msgid "Indexed" msgstr "" -#: models.py:874 +#: models.py:896 msgid "Act types" msgstr "" -#: models.py:946 +#: models.py:968 msgid "Person in charge of the operation" msgstr "" -#: models.py:952 +#: models.py:974 msgid "Archaeological preventive operator" msgstr "" -#: models.py:960 +#: models.py:982 msgid "Signatory" msgstr "" -#: models.py:978 +#: models.py:1000 msgid "Departments" msgstr "" -#: models.py:979 +#: models.py:1001 msgid "Cached values get from associated departments" msgstr "" -#: models.py:982 +#: models.py:1004 msgid "Cached values get from associated towns" msgstr "" -#: models.py:989 templates/ishtar/sheet_operation.html:102 +#: models.py:1011 templates/ishtar/sheet_operation.html:102 #: templates/ishtar/sheet_operation.html:138 msgid "Administrative acts" msgstr "" -#: models.py:992 +#: models.py:1014 msgid "Can view all Administrative acts" msgstr "" -#: models.py:994 +#: models.py:1016 msgid "Can view own Administrative act" msgstr "" -#: models.py:996 +#: models.py:1018 msgid "Can add own Administrative act" msgstr "" -#: models.py:998 +#: models.py:1020 msgid "Can change own Administrative act" msgstr "" -#: models.py:1000 +#: models.py:1022 msgid "Can delete own Administrative act" msgstr "" -#: models.py:1009 +#: models.py:1031 #: templates/ishtar/blocks/window_tables/administrativacts.html:7 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7 msgid "Ref." msgstr "" -#: models.py:1092 +#: models.py:1114 msgid "This index already exists for this year" msgstr "" -#: models.py:1160 +#: models.py:1182 msgid "External ID" msgstr "" -#: models.py:1163 +#: models.py:1185 msgid "External ID is set automatically" msgstr "" -#: models.py:1164 +#: models.py:1186 msgid "Address - Locality" msgstr "" -#: models.py:1337 +#: models.py:1359 msgid "Owner" msgstr "" -#: models.py:1345 +#: models.py:1367 msgid "Parcel owner" msgstr "" -#: models.py:1346 +#: models.py:1368 msgid "Parcel owners" msgstr "" -#: models.py:1372 +#: models.py:1394 msgid "Recorded" msgstr "" -#: models.py:1373 +#: models.py:1395 msgid "Effective" msgstr "" -#: models.py:1374 +#: models.py:1396 msgid "Active" msgstr "" -#: models.py:1375 +#: models.py:1397 msgid "Field completed" msgstr "" -#: models.py:1376 +#: models.py:1398 msgid "Associated report" msgstr "" -#: models.py:1377 +#: models.py:1399 msgid "Closed" msgstr "" -#: models.py:1378 +#: models.py:1400 msgid "Documented and closed" msgstr "" -#: models.py:1804 +#: models.py:1826 msgid "Is preventive" msgstr "" -#: models.py:1807 +#: models.py:1829 msgid "Operation type old" msgstr "" -#: models.py:1808 +#: models.py:1830 msgid "Operation types old" msgstr "" diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index b687a55ed..094041952 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -155,12 +155,12 @@ msgstr "" msgid "Add a new item" msgstr "" -#: forms.py:262 models.py:1355 +#: forms.py:262 models.py:1360 msgid "Template" msgstr "" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1421 models.py:2810 +#: forms_common.py:406 models.py:1426 models.py:2819 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -176,8 +176,8 @@ msgid "" "french town Saint-Denis in the Seine-Saint-Denis department.

      " msgstr "" -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1594 -#: models.py:2436 models.py:2618 models.py:2680 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1599 +#: models.py:2445 models.py:2627 models.py:2689 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" @@ -189,63 +189,63 @@ msgid "" msgstr "" #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1595 models.py:2322 +#: ishtar_menu.py:75 models.py:1600 models.py:2331 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:1022 models.py:1354 -#: models.py:1640 models.py:1859 models.py:2316 models.py:2422 models.py:2796 +#: forms_common.py:376 forms_common.py:446 models.py:1027 models.py:1359 +#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2805 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "" -#: forms_common.py:174 models.py:1576 models.py:1990 +#: forms_common.py:174 models.py:1581 models.py:1995 msgid "Organization type" msgstr "" -#: forms_common.py:176 forms_common.py:400 models.py:1416 +#: forms_common.py:176 forms_common.py:400 models.py:1421 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "" -#: forms_common.py:178 forms_common.py:403 models.py:1417 +#: forms_common.py:178 forms_common.py:403 models.py:1422 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "" -#: forms_common.py:180 forms_common.py:404 models.py:1419 +#: forms_common.py:180 forms_common.py:404 models.py:1424 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "" -#: forms_common.py:183 forms_common.py:407 models.py:1422 +#: forms_common.py:183 forms_common.py:407 models.py:1427 msgid "Country" msgstr "" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1449 +#: forms_common.py:448 forms_common.py:572 models.py:1454 msgid "Email" msgstr "" -#: forms_common.py:186 forms_common.py:383 models.py:1434 +#: forms_common.py:186 forms_common.py:383 models.py:1439 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "" -#: forms_common.py:187 forms_common.py:392 models.py:1446 +#: forms_common.py:187 forms_common.py:392 models.py:1451 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2018 -#: models.py:2318 models.py:2731 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2025 +#: models.py:2327 models.py:2740 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -269,7 +269,7 @@ msgstr "" msgid "Organization to merge" msgstr "" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2420 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2429 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "" @@ -287,25 +287,25 @@ msgstr "" msgid "Identity" msgstr "" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1991 -#: models.py:2414 models.py:2416 models.py:2728 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1996 +#: models.py:2423 models.py:2425 models.py:2737 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" -#: forms_common.py:372 models.py:2418 +#: forms_common.py:372 models.py:2427 msgid "Salutation" msgstr "" -#: forms_common.py:378 models.py:2424 +#: forms_common.py:378 models.py:2433 msgid "Raw name" msgstr "" -#: forms_common.py:381 models.py:1435 +#: forms_common.py:381 models.py:1440 msgid "Phone description" msgstr "" -#: forms_common.py:384 models.py:1437 models.py:1439 +#: forms_common.py:384 models.py:1442 models.py:1444 msgid "Phone description 2" msgstr "" @@ -313,11 +313,11 @@ msgstr "" msgid "Phone 2" msgstr "" -#: forms_common.py:388 models.py:1443 +#: forms_common.py:388 models.py:1448 msgid "Phone description 3" msgstr "" -#: forms_common.py:390 models.py:1441 +#: forms_common.py:390 models.py:1446 msgid "Phone 3" msgstr "" @@ -325,23 +325,23 @@ msgstr "" msgid "Current organization" msgstr "" -#: forms_common.py:409 models.py:1424 +#: forms_common.py:409 models.py:1429 msgid "Other address: address" msgstr "" -#: forms_common.py:412 models.py:1427 +#: forms_common.py:412 models.py:1432 msgid "Other address: address complement" msgstr "" -#: forms_common.py:414 models.py:1428 +#: forms_common.py:414 models.py:1433 msgid "Other address: postal code" msgstr "" -#: forms_common.py:416 models.py:1430 +#: forms_common.py:416 models.py:1435 msgid "Other address: town" msgstr "" -#: forms_common.py:418 models.py:1432 +#: forms_common.py:418 models.py:1437 msgid "Other address: country" msgstr "" @@ -357,7 +357,7 @@ msgstr "" msgid "Account search" msgstr "" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2370 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2379 msgid "Person type" msgstr "" @@ -389,7 +389,7 @@ msgstr "" msgid "Send the new password by email?" msgstr "" -#: forms_common.py:628 forms_common.py:641 models.py:2811 +#: forms_common.py:628 forms_common.py:641 models.py:2820 msgid "Towns" msgstr "" @@ -405,7 +405,7 @@ msgstr "" msgid "Documentation informations" msgstr "" -#: forms_common.py:775 forms_common.py:823 models.py:1992 models.py:2705 +#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2714 msgid "Source type" msgstr "" @@ -417,37 +417,37 @@ msgstr "" msgid "Internal reference" msgstr "" -#: forms_common.py:783 models.py:2742 +#: forms_common.py:783 models.py:2751 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:784 models.py:2744 +#: forms_common.py:784 models.py:2753 msgid "Receipt date" msgstr "" -#: forms_common.py:786 models.py:2145 models.py:2746 +#: forms_common.py:786 models.py:2154 models.py:2755 msgid "Creation date" msgstr "" -#: forms_common.py:789 models.py:2749 +#: forms_common.py:789 models.py:2758 msgid "Receipt date in documentation" msgstr "" -#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:622 -#: models.py:1886 models.py:2428 models.py:2756 +#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:627 +#: models.py:1891 models.py:2437 models.py:2765 msgid "Comment" msgstr "" -#: forms_common.py:793 forms_common.py:826 models.py:1024 models.py:1644 -#: models.py:1818 models.py:1860 models.py:2755 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1029 models.py:1649 +#: models.py:1823 models.py:1865 models.py:2764 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:796 models.py:2757 +#: forms_common.py:796 models.py:2766 msgid "Additional information" msgstr "" -#: forms_common.py:798 forms_common.py:830 models.py:2759 +#: forms_common.py:798 forms_common.py:830 models.py:2768 msgid "Has a duplicate" msgstr "" @@ -462,7 +462,7 @@ msgid "" "p>" msgstr "" -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2685 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2694 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" @@ -475,7 +475,7 @@ msgstr "" msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:856 models.py:1993 models.py:2673 models.py:2682 +#: forms_common.py:856 models.py:1998 models.py:2682 models.py:2691 msgid "Author type" msgstr "" @@ -487,7 +487,7 @@ msgstr "" msgid "There are identical authors." msgstr "" -#: forms_common.py:893 models.py:2686 models.py:2738 +#: forms_common.py:893 models.py:2695 models.py:2747 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -505,7 +505,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1150 views.py:1494 +#: ishtar_menu.py:39 models.py:1155 views.py:1501 msgid "Global variables" msgstr "" @@ -533,15 +533,15 @@ msgstr "" msgid "Manual merge" msgstr "" -#: ishtar_menu.py:109 models.py:2156 +#: ishtar_menu.py:109 models.py:2165 msgid "Imports" msgstr "" -#: ishtar_menu.py:112 views.py:1502 +#: ishtar_menu.py:112 views.py:1509 msgid "New import" msgstr "" -#: ishtar_menu.py:116 views.py:1516 +#: ishtar_menu.py:116 views.py:1523 msgid "Current imports" msgstr "" @@ -549,212 +549,212 @@ msgstr "" msgid "Old imports" msgstr "" -#: models.py:178 +#: models.py:183 msgid "Not a valid item." msgstr "" -#: models.py:191 +#: models.py:196 msgid "A selected item is not a valid item." msgstr "" -#: models.py:202 +#: models.py:207 msgid "This item already exists." msgstr "" -#: models.py:313 models.py:621 models.py:1389 models.py:1401 models.py:1815 +#: models.py:318 models.py:626 models.py:1394 models.py:1406 models.py:1820 msgid "Label" msgstr "" -#: models.py:315 +#: models.py:320 msgid "Textual ID" msgstr "" -#: models.py:318 models.py:624 models.py:1358 +#: models.py:323 models.py:629 models.py:1363 msgid "Available" msgstr "" -#: models.py:643 models.py:1932 +#: models.py:648 models.py:1937 msgid "Key" msgstr "" -#: models.py:649 +#: models.py:654 msgid "Specific key to an import" msgstr "" -#: models.py:741 +#: models.py:746 msgid "Last editor" msgstr "" -#: models.py:744 +#: models.py:749 msgid "Creator" msgstr "" -#: models.py:886 models.py:2822 +#: models.py:891 models.py:2831 msgid "Order" msgstr "" -#: models.py:887 +#: models.py:892 msgid "Symmetrical" msgstr "" -#: models.py:888 +#: models.py:893 msgid "Tiny label" msgstr "" -#: models.py:902 +#: models.py:907 msgid "Cannot have symmetrical and an inverse_relation" msgstr "" -#: models.py:1016 +#: models.py:1021 msgid "Euro" msgstr "" -#: models.py:1017 +#: models.py:1022 msgid "US dollar" msgstr "" -#: models.py:1023 models.py:1642 +#: models.py:1028 models.py:1647 msgid "Slug" msgstr "" -#: models.py:1025 +#: models.py:1030 msgid "Files module" msgstr "" -#: models.py:1026 +#: models.py:1031 msgid "Context records module" msgstr "" -#: models.py:1028 +#: models.py:1033 msgid "Finds module" msgstr "" -#: models.py:1029 +#: models.py:1034 msgid "Need context records module" msgstr "" -#: models.py:1031 +#: models.py:1036 msgid "Warehouses module" msgstr "" -#: models.py:1032 +#: models.py:1037 msgid "Need finds module" msgstr "" -#: models.py:1034 +#: models.py:1039 msgid "Home page" msgstr "" -#: models.py:1035 +#: models.py:1040 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " "markdown syntax. {random_image} can be used to display a random image." msgstr "" -#: models.py:1039 +#: models.py:1044 msgid "File external id" msgstr "" -#: models.py:1041 +#: models.py:1046 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1046 +#: models.py:1051 msgid "Parcel external id" msgstr "" -#: models.py:1049 +#: models.py:1054 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1054 +#: models.py:1059 msgid "Context record external id" msgstr "" -#: models.py:1056 +#: models.py:1061 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1061 +#: models.py:1066 msgid "Base find external id" msgstr "" -#: models.py:1063 +#: models.py:1068 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1068 +#: models.py:1073 msgid "Find external id" msgstr "" -#: models.py:1070 +#: models.py:1075 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1075 +#: models.py:1080 msgid "Raw name for person" msgstr "" -#: models.py:1077 +#: models.py:1082 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1081 +#: models.py:1086 msgid "Current active" msgstr "" -#: models.py:1082 +#: models.py:1087 msgid "Currency" msgstr "" -#: models.py:1086 +#: models.py:1091 msgid "Ishtar site profile" msgstr "" -#: models.py:1087 +#: models.py:1092 msgid "Ishtar site profiles" msgstr "" -#: models.py:1143 +#: models.py:1148 msgid "Variable name" msgstr "" -#: models.py:1144 +#: models.py:1149 msgid "Description of the variable" msgstr "" -#: models.py:1146 models.py:1933 +#: models.py:1151 models.py:1938 msgid "Value" msgstr "" -#: models.py:1149 +#: models.py:1154 msgid "Global variable" msgstr "" -#: models.py:1259 models.py:1289 +#: models.py:1264 models.py:1294 msgid "Total" msgstr "" -#: models.py:1266 models.py:1390 models.py:1402 +#: models.py:1271 models.py:1395 models.py:1407 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -762,601 +762,609 @@ msgstr "" msgid "Number" msgstr "" -#: models.py:1353 +#: models.py:1358 msgid "Administrative Act" msgstr "" -#: models.py:1357 +#: models.py:1362 msgid "Associated object" msgstr "" -#: models.py:1361 +#: models.py:1366 msgid "Document template" msgstr "" -#: models.py:1362 +#: models.py:1367 msgid "Document templates" msgstr "" -#: models.py:1393 models.py:1403 models.py:2140 +#: models.py:1398 models.py:1408 models.py:2149 msgid "State" msgstr "" -#: models.py:1407 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1412 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "" -#: models.py:1408 +#: models.py:1413 msgid "Departments" msgstr "" -#: models.py:1445 +#: models.py:1450 msgid "Raw phone" msgstr "" -#: models.py:1451 +#: models.py:1456 msgid "Alternative address is prefered" msgstr "" -#: models.py:1490 +#: models.py:1495 msgid "Tel: " msgstr "" -#: models.py:1494 +#: models.py:1499 msgid "Mobile: " msgstr "" -#: models.py:1498 +#: models.py:1503 msgid "Email: " msgstr "" -#: models.py:1503 +#: models.py:1508 msgid "Merge key" msgstr "" -#: models.py:1577 +#: models.py:1582 msgid "Organization types" msgstr "" -#: models.py:1596 views.py:237 +#: models.py:1601 views.py:237 msgid "Operation" msgstr "" -#: models.py:1598 +#: models.py:1603 msgid "Archaeological site" msgstr "" -#: models.py:1599 +#: models.py:1604 msgid "Parcels" msgstr "" -#: models.py:1601 +#: models.py:1606 msgid "Operation source" msgstr "" -#: models.py:1604 views.py:1310 views.py:1360 +#: models.py:1609 views.py:1317 views.py:1367 msgid "Archaeological files" msgstr "" -#: models.py:1606 views.py:1313 views.py:1368 +#: models.py:1611 views.py:1320 views.py:1375 msgid "Context records" msgstr "" -#: models.py:1608 +#: models.py:1613 msgid "Context record relations" msgstr "" -#: models.py:1610 views.py:1315 views.py:1371 -msgid "Finds" +#: models.py:1615 +msgid "Base finds" msgstr "" -#: models.py:1646 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1651 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "" -#: models.py:1648 +#: models.py:1653 msgid "Associated model" msgstr "" -#: models.py:1651 +#: models.py:1656 msgid "Is template" msgstr "" -#: models.py:1652 +#: models.py:1657 msgid "Unicity keys (separator \";\")" msgstr "" -#: models.py:1656 +#: models.py:1661 msgid "Importer - Type" msgstr "" -#: models.py:1657 +#: models.py:1662 msgid "Importer - Types" msgstr "" -#: models.py:1747 +#: models.py:1752 msgid "Importer - Default" msgstr "" -#: models.py:1748 +#: models.py:1753 msgid "Importer - Defaults" msgstr "" -#: models.py:1783 +#: models.py:1788 msgid "Importer - Default value" msgstr "" -#: models.py:1784 +#: models.py:1789 msgid "Importer - Default values" msgstr "" -#: models.py:1817 +#: models.py:1822 msgid "Column number" msgstr "" -#: models.py:1820 +#: models.py:1825 msgid "Required" msgstr "" -#: models.py:1823 +#: models.py:1828 msgid "Importer - Column" msgstr "" -#: models.py:1824 +#: models.py:1829 msgid "Importer - Columns" msgstr "" -#: models.py:1844 +#: models.py:1849 msgid "Field name" msgstr "" -#: models.py:1846 models.py:1880 +#: models.py:1851 models.py:1885 msgid "Force creation of new items" msgstr "" -#: models.py:1848 models.py:1882 +#: models.py:1853 models.py:1887 msgid "Concatenate with existing" msgstr "" -#: models.py:1850 models.py:1884 +#: models.py:1855 models.py:1889 msgid "Concatenate character" msgstr "" -#: models.py:1854 +#: models.py:1859 msgid "Importer - Duplicate field" msgstr "" -#: models.py:1855 +#: models.py:1860 msgid "Importer - Duplicate fields" msgstr "" -#: models.py:1862 +#: models.py:1867 msgid "Regular expression" msgstr "" -#: models.py:1865 +#: models.py:1870 msgid "Importer - Regular expression" msgstr "" -#: models.py:1866 +#: models.py:1871 msgid "Importer - Regular expressions" msgstr "" -#: models.py:1889 +#: models.py:1894 msgid "Importer - Target" msgstr "" -#: models.py:1890 +#: models.py:1895 msgid "Importer - Targets" msgstr "" -#: models.py:1914 views.py:520 +#: models.py:1919 views.py:520 msgid "True" msgstr "" -#: models.py:1915 views.py:522 +#: models.py:1920 views.py:522 msgid "False" msgstr "" -#: models.py:1934 +#: models.py:1939 msgid "Is set" msgstr "" -#: models.py:1941 +#: models.py:1946 msgid "Importer - Target key" msgstr "" -#: models.py:1942 +#: models.py:1947 msgid "Importer - Targets keys" msgstr "" -#: models.py:1994 models.py:2721 models.py:2734 +#: models.py:1999 models.py:2730 models.py:2743 msgid "Format" msgstr "" -#: models.py:1995 models.py:2826 +#: models.py:2000 models.py:2835 msgid "Operation type" msgstr "" -#: models.py:1996 +#: models.py:2001 msgid "Period" msgstr "" -#: models.py:1997 +#: models.py:2002 msgid "Report state" msgstr "" -#: models.py:1998 +#: models.py:2003 +msgid "Remain type" +msgstr "" + +#: models.py:2004 msgid "Unit" msgstr "" -#: models.py:1999 +#: models.py:2005 +msgid "Activity type" +msgstr "" + +#: models.py:2006 msgid "Material" msgstr "" -#: models.py:2001 +#: models.py:2008 msgid "Conservatory state" msgstr "" -#: models.py:2002 +#: models.py:2009 msgid "Preservation type" msgstr "" -#: models.py:2003 +#: models.py:2010 msgid "Object type" msgstr "" -#: models.py:2005 +#: models.py:2012 msgid "Identification type" msgstr "" -#: models.py:2007 +#: models.py:2014 msgid "Context record relation type" msgstr "" -#: models.py:2008 models.py:2713 +#: models.py:2015 models.py:2722 msgid "Support type" msgstr "" -#: models.py:2014 +#: models.py:2021 msgid "Integer" msgstr "" -#: models.py:2015 +#: models.py:2022 msgid "Float" msgstr "" -#: models.py:2016 +#: models.py:2023 msgid "String" msgstr "" -#: models.py:2017 templates/sheet_ope.html:86 +#: models.py:2024 templates/sheet_ope.html:86 msgid "Date" msgstr "" -#: models.py:2019 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2026 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "" -#: models.py:2020 +#: models.py:2027 msgid "String to boolean" msgstr "" -#: models.py:2021 +#: models.py:2028 msgctxt "filesystem" msgid "File" msgstr "" -#: models.py:2022 +#: models.py:2029 msgid "Unknow type" msgstr "" -#: models.py:2038 +#: models.py:2045 msgid "4 digit year. e.g.: \"2015\"" msgstr "" -#: models.py:2039 +#: models.py:2046 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "" -#: models.py:2040 +#: models.py:2047 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "" -#: models.py:2050 +#: models.py:2057 msgid "Options" msgstr "" -#: models.py:2052 +#: models.py:2059 msgid "Split character(s)" msgstr "" -#: models.py:2056 +#: models.py:2063 msgid "Importer - Formater type" msgstr "" -#: models.py:2057 +#: models.py:2064 msgid "Importer - Formater types" msgstr "" -#: models.py:2104 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2113 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "" -#: models.py:2105 +#: models.py:2114 msgid "Analyse in progress" msgstr "" -#: models.py:2106 +#: models.py:2115 msgid "Analysed" msgstr "" -#: models.py:2107 +#: models.py:2116 msgid "Import pending" msgstr "" -#: models.py:2108 +#: models.py:2117 msgid "Import in progress" msgstr "" -#: models.py:2109 +#: models.py:2118 msgid "Finished with errors" msgstr "" -#: models.py:2110 +#: models.py:2119 msgid "Finished" msgstr "" -#: models.py:2111 +#: models.py:2120 msgid "Archived" msgstr "" -#: models.py:2123 +#: models.py:2132 msgid "Imported file" msgstr "" -#: models.py:2126 +#: models.py:2135 msgid "Associated images (zip file)" msgstr "" -#: models.py:2128 +#: models.py:2137 msgid "Encoding" msgstr "" -#: models.py:2130 +#: models.py:2139 msgid "Skip lines" msgstr "" -#: models.py:2131 templates/ishtar/import_list.html:47 +#: models.py:2140 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "" -#: models.py:2134 +#: models.py:2143 msgid "Result file" msgstr "" -#: models.py:2137 templates/ishtar/import_list.html:53 +#: models.py:2146 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "" -#: models.py:2143 +#: models.py:2152 msgid "Conservative import" msgstr "" -#: models.py:2148 +#: models.py:2157 msgid "End date" msgstr "" -#: models.py:2150 +#: models.py:2159 msgid "Remaining seconds" msgstr "" -#: models.py:2155 +#: models.py:2164 msgid "Import" msgstr "" -#: models.py:2172 +#: models.py:2181 msgid "Analyse" msgstr "" -#: models.py:2174 models.py:2177 +#: models.py:2183 models.py:2186 msgid "Re-analyse" msgstr "" -#: models.py:2175 +#: models.py:2184 msgid "Launch import" msgstr "" -#: models.py:2178 +#: models.py:2187 msgid "Re-import" msgstr "" -#: models.py:2179 +#: models.py:2188 msgid "Archive" msgstr "" -#: models.py:2181 +#: models.py:2190 msgid "Unarchive" msgstr "" -#: models.py:2182 widgets.py:110 templates/ishtar/form_delete.html:11 +#: models.py:2191 widgets.py:110 templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "" -#: models.py:2323 +#: models.py:2332 msgid "Organizations" msgstr "" -#: models.py:2325 +#: models.py:2334 msgid "Can view all Organizations" msgstr "" -#: models.py:2326 +#: models.py:2335 msgid "Can view own Organization" msgstr "" -#: models.py:2327 +#: models.py:2336 msgid "Can add own Organization" msgstr "" -#: models.py:2329 +#: models.py:2338 msgid "Can change own Organization" msgstr "" -#: models.py:2331 +#: models.py:2340 msgid "Can delete own Organization" msgstr "" -#: models.py:2366 +#: models.py:2375 msgid "Groups" msgstr "" -#: models.py:2371 +#: models.py:2380 msgid "Person types" msgstr "" -#: models.py:2382 +#: models.py:2391 msgid "Title type" msgstr "" -#: models.py:2383 +#: models.py:2392 msgid "Title types" msgstr "" -#: models.py:2392 +#: models.py:2401 msgid "Mr" msgstr "" -#: models.py:2393 +#: models.py:2402 msgid "Miss" msgstr "" -#: models.py:2394 +#: models.py:2403 msgid "Mr and Mrs" msgstr "" -#: models.py:2395 +#: models.py:2404 msgid "Mrs" msgstr "" -#: models.py:2396 +#: models.py:2405 msgid "Doctor" msgstr "" -#: models.py:2426 +#: models.py:2435 msgid "Contact type" msgstr "" -#: models.py:2429 models.py:2493 +#: models.py:2438 models.py:2502 msgid "Types" msgstr "" -#: models.py:2432 +#: models.py:2441 msgid "Is attached to" msgstr "" -#: models.py:2437 +#: models.py:2446 msgid "Persons" msgstr "" -#: models.py:2439 +#: models.py:2448 msgid "Can view all Persons" msgstr "" -#: models.py:2440 +#: models.py:2449 msgid "Can view own Person" msgstr "" -#: models.py:2441 +#: models.py:2450 msgid "Can add own Person" msgstr "" -#: models.py:2442 +#: models.py:2451 msgid "Can change own Person" msgstr "" -#: models.py:2443 +#: models.py:2452 msgid "Can delete own Person" msgstr "" -#: models.py:2621 +#: models.py:2630 msgid "Advanced shortcut menu" msgstr "" -#: models.py:2624 +#: models.py:2633 msgid "Ishtar user" msgstr "" -#: models.py:2625 +#: models.py:2634 msgid "Ishtar users" msgstr "" -#: models.py:2668 +#: models.py:2677 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2674 +#: models.py:2683 msgid "Author types" msgstr "" -#: models.py:2706 +#: models.py:2715 msgid "Source types" msgstr "" -#: models.py:2714 +#: models.py:2723 msgid "Support types" msgstr "" -#: models.py:2722 +#: models.py:2731 msgid "Formats" msgstr "" -#: models.py:2729 +#: models.py:2738 msgid "External ID" msgstr "" -#: models.py:2732 +#: models.py:2741 msgid "Support" msgstr "" -#: models.py:2736 +#: models.py:2745 msgid "Scale" msgstr "" -#: models.py:2750 +#: models.py:2759 msgid "Item number" msgstr "" -#: models.py:2751 +#: models.py:2760 msgid "Ref." msgstr "" -#: models.py:2754 +#: models.py:2763 msgid "Internal ref." msgstr "" -#: models.py:2797 +#: models.py:2806 msgid "Surface (m2)" msgstr "" -#: models.py:2798 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2807 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2823 +#: models.py:2832 msgid "Is preventive" msgstr "" -#: models.py:2827 +#: models.py:2836 msgid "Operation types" msgstr "" -#: models.py:2856 +#: models.py:2865 msgid "Preventive" msgstr "" -#: models.py:2857 +#: models.py:2866 msgid "Research" msgstr "" @@ -1412,44 +1420,48 @@ msgstr "" msgid "Find" msgstr "" -#: views.py:1249 views.py:1292 +#: views.py:1256 views.py:1299 msgid "Operation not permitted." msgstr "" -#: views.py:1251 +#: views.py:1258 #, python-format msgid "New %s" msgstr "" -#: views.py:1311 views.py:1364 +#: views.py:1318 views.py:1371 msgid "Operations" msgstr "" -#: views.py:1563 templates/ishtar/import_list.html:43 +#: views.py:1322 views.py:1378 +msgid "Finds" +msgstr "" + +#: views.py:1570 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "" -#: views.py:1578 +#: views.py:1585 msgid "Delete import" msgstr "" -#: views.py:1617 +#: views.py:1624 msgid "Merge persons" msgstr "" -#: views.py:1641 +#: views.py:1648 msgid "Select the main person" msgstr "" -#: views.py:1650 +#: views.py:1657 msgid "Merge organization" msgstr "" -#: views.py:1660 +#: views.py:1667 msgid "Select the main organization" msgstr "" -#: views.py:1700 views.py:1716 +#: views.py:1707 views.py:1723 msgid "Corporation manager" msgstr "" @@ -1685,7 +1697,7 @@ msgid "Operator's reference code:" msgstr "" #: templates/sheet_ope.html:36 -msgid "Town planning service:" +msgid "Planning service:" msgstr "" #: templates/sheet_ope.html:37 @@ -2069,11 +2081,11 @@ msgid "No person in this organization" msgstr "" #: templates/ishtar/sheet_organization.html:38 -msgid "General contractor organization of archaelogical files" +msgid "General contractor organization of archaeological files" msgstr "" #: templates/ishtar/sheet_organization.html:43 -msgid "Town planning service of archaelogical files" +msgid "Planning service of archaeological files" msgstr "" #: templates/ishtar/sheet_person.html:21 @@ -2104,15 +2116,18 @@ msgid "Associated operations as responsible" msgstr "" #: templates/ishtar/sheet_person.html:80 -msgid "In charge of archaelogical files" +#: templates/ishtar/wizard/wizard_person_deletion.html:6 +msgid "In charge of archaeological files" msgstr "" #: templates/ishtar/sheet_person.html:85 -msgid "General contractor of archaelogical files" +#: templates/ishtar/wizard/wizard_person_deletion.html:14 +msgid "General contractor of archaeological files" msgstr "" #: templates/ishtar/sheet_person.html:90 -msgid "Responsible for town planning service of archaelogical files" +#: templates/ishtar/wizard/wizard_person_deletion.html:22 +msgid "Responsible for planning service of archaeological files" msgstr "" #: templates/ishtar/sheet_person.html:96 @@ -2384,18 +2399,6 @@ msgstr "" msgid "Adminact: operator of archaeological operations" msgstr "" -#: templates/ishtar/wizard/wizard_person_deletion.html:6 -msgid "In charge of archaeological files" -msgstr "" - -#: templates/ishtar/wizard/wizard_person_deletion.html:14 -msgid "General contractor of archaeological files" -msgstr "" - -#: templates/ishtar/wizard/wizard_person_deletion.html:22 -msgid "Responsible town planning service of archaeological files" -msgstr "" - #: templates/ishtar/wizard/wizard_person_deletion.html:30 msgid "Scientist in charge of archaeological files" msgstr "" diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 76c791c25..b6f9f1f97 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-09 22:11+0100\n" +"POT-Creation-Date: 2016-11-14 19:57+0100\n" "PO-Revision-Date: 2016-10-17 01:16-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" @@ -18,11 +18,11 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.5\n" -#: forms.py:47 forms.py:51 models.py:165 wizards.py:77 +#: forms.py:47 forms.py:51 models.py:174 wizards.py:77 msgid "Operation" msgstr "Opération" -#: forms.py:59 forms.py:137 models.py:167 +#: forms.py:59 forms.py:137 models.py:176 msgid "ID" msgstr "Identifiant" @@ -43,8 +43,9 @@ msgid "Archaelogical site" msgstr "Entité Archéologique" #: forms.py:75 -msgid "Search within operation relations" -msgstr "Rechercher parmi les opérations reliées" +#, fuzzy +msgid "Search within related operations" +msgstr "Recherche parmi les relations" #: forms.py:77 forms.py:232 models.py:55 msgid "Period" @@ -74,43 +75,43 @@ msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement." msgid "General" msgstr "Général" -#: forms.py:136 models.py:131 models.py:163 +#: forms.py:136 models.py:132 models.py:172 msgid "Parcel" msgstr "Parcelle" -#: forms.py:139 models.py:168 templates/ishtar/sheet_contextrecord.html:27 +#: forms.py:139 models.py:177 templates/ishtar/sheet_contextrecord.html:27 msgid "Description" msgstr "Description" -#: forms.py:141 models.py:169 +#: forms.py:141 models.py:178 msgid "General comment" msgstr "Commentaire général" -#: forms.py:143 models.py:173 +#: forms.py:143 models.py:182 msgid "Length (m)" msgstr "Taille (m)" -#: forms.py:144 models.py:174 +#: forms.py:144 models.py:183 msgid "Width (m)" msgstr "Largeur (m)" -#: forms.py:145 models.py:175 +#: forms.py:145 models.py:184 msgid "Thickness (m)" msgstr "Épaisseur (m)" -#: forms.py:146 models.py:177 +#: forms.py:146 models.py:186 msgid "Depth (m)" msgstr "Profondeur (m)" -#: forms.py:147 models.py:185 +#: forms.py:147 models.py:194 msgid "Unit" msgstr "Unité" -#: forms.py:148 models.py:187 +#: forms.py:148 models.py:196 msgid "Has furniture?" msgstr "Contient du mobilier ?" -#: forms.py:151 models.py:179 +#: forms.py:151 models.py:188 msgid "Location" msgstr "Lieu" @@ -139,7 +140,7 @@ msgstr "Datation" msgid "Start date" msgstr "Date de début" -#: forms.py:234 models.py:57 models.py:172 +#: forms.py:234 models.py:57 models.py:181 msgid "End date" msgstr "Date de fin" @@ -151,7 +152,7 @@ msgstr "Qualité" msgid "Dating type" msgstr "Type de datation" -#: forms.py:263 ishtar_menu.py:29 models.py:459 +#: forms.py:263 ishtar_menu.py:29 models.py:468 msgid "Context record" msgstr "Unité d'Enregistrement" @@ -159,7 +160,7 @@ msgstr "Unité d'Enregistrement" msgid "Relations" msgstr "Relations" -#: forms.py:288 forms.py:296 models.py:190 +#: forms.py:288 forms.py:296 models.py:199 #: templates/ishtar/sheet_contextrecord.html:39 msgid "Interpretation" msgstr "Interprétation" @@ -168,31 +169,31 @@ msgstr "Interprétation" msgid "Comments on dating" msgstr "Commentaires sur la datation" -#: forms.py:294 models.py:189 +#: forms.py:294 models.py:198 msgid "Filling" msgstr "Remplissage" -#: forms.py:298 models.py:210 +#: forms.py:298 models.py:219 msgid "Activity" msgstr "Activité" -#: forms.py:300 models.py:208 +#: forms.py:300 models.py:217 msgid "Identification" msgstr "Identification" -#: forms.py:302 models.py:193 +#: forms.py:302 models.py:202 msgid "TAQ" msgstr "TAQ" -#: forms.py:303 models.py:197 +#: forms.py:303 models.py:206 msgid "Estimated TAQ" msgstr "TAQ estimé" -#: forms.py:305 models.py:200 +#: forms.py:305 models.py:209 msgid "TPQ" msgstr "TPQ" -#: forms.py:306 models.py:204 +#: forms.py:306 models.py:213 msgid "Estimated TPQ" msgstr "TPQ estimé" @@ -313,26 +314,51 @@ msgid "Identification Types" msgstr "Types d'identification" #: models.py:160 +#, fuzzy +msgid "Parcel (town)" +msgstr "Parcelle (gauche)" + +#: models.py:161 +#, fuzzy +msgid "Related context records" +msgstr "Nouvelle Unité d'Enregistrement" + +#: models.py:163 +#, fuzzy +msgid "Parcel (external ID)" +msgstr "Parcelle (gauche)" + +#: models.py:164 +#, fuzzy +msgid "Datings (period)" +msgstr "Type de datation" + +#: models.py:165 +#, fuzzy +msgid "Parcel (year)" +msgstr "Parcelle (gauche)" + +#: models.py:169 msgid "External ID" msgstr "ID externe" -#: models.py:162 +#: models.py:171 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:170 +#: models.py:179 msgid "Date d'ouverture" msgstr "Date d'ouverture" -#: models.py:180 +#: models.py:189 msgid "A short description of the location of the context record" msgstr "Une courte description de la localisation de l'Unité d'Enregistrement" -#: models.py:183 +#: models.py:192 msgid "Comment on datings" msgstr "Commentaire sur les datations" -#: models.py:194 +#: models.py:203 msgid "" "\"Terminus Ante Quem\" the context record can't have been created after this " "date" @@ -340,11 +366,11 @@ msgstr "" "« Terminus Ante Quem » l'Unité d'Enregistrement ne peut avoir été créée " "après cette date" -#: models.py:198 +#: models.py:207 msgid "Estimation of a \"Terminus Ante Quem\"" msgstr "Estimation d'un « Terminus Ante Quem »" -#: models.py:201 +#: models.py:210 msgid "" "\"Terminus Post Quem\" the context record can't have been created before " "this date" @@ -352,112 +378,112 @@ msgstr "" "« Terminus Post Quem » l'Unité d'Enregistrement ne peut avoir été créée " "avant cette date" -#: models.py:205 +#: models.py:214 msgid "Estimation of a \"Terminus Post Quem\"" msgstr "Estimation d'un « Terminus Post Quem »" -#: models.py:213 +#: models.py:222 msgid "Point" msgstr "Point" -#: models.py:214 +#: models.py:223 msgid "Polygon" msgstr "Polygone" -#: models.py:215 +#: models.py:224 msgid "Cached name" msgstr "Nom en cache" -#: models.py:219 models.py:220 templates/ishtar/sheet_contextrecord.html:4 +#: models.py:228 models.py:229 templates/ishtar/sheet_contextrecord.html:4 msgid "Context Record" msgstr "Unité d'Enregistrement" -#: models.py:222 +#: models.py:231 msgid "Can view all Context Records" msgstr "Peut voir toutes les Unités d'Enregistrement" -#: models.py:224 +#: models.py:233 msgid "Can view own Context Record" msgstr "Peut voir sa propre Unité d'Enregistrement" -#: models.py:226 +#: models.py:235 msgid "Can add own Context Record" msgstr "Peut ajouter sa propre Unité d'Enregistrement" -#: models.py:228 +#: models.py:237 msgid "Can change own Context Record" msgstr "Peut modifier sa propre Unité d'Enregistrement" -#: models.py:230 +#: models.py:239 msgid "Can delete own Context Record" msgstr "Peut supprimer sa propre Unité d'Enregistrement" -#: models.py:240 +#: models.py:249 msgctxt "short" msgid "Context record" msgstr "UE" -#: models.py:377 +#: models.py:386 msgid "Inverse relation" msgstr "Relation inverse" -#: models.py:381 models.py:405 +#: models.py:390 models.py:414 msgid "Relation type" msgstr "Type de relation" -#: models.py:382 +#: models.py:391 msgid "Relation types" msgstr "Types de relation" -#: models.py:400 +#: models.py:409 msgid "ID (left)" msgstr "ID (gauche)" -#: models.py:401 +#: models.py:410 msgid "Unit (left)" msgstr "Unité (gauche)" -#: models.py:402 +#: models.py:411 msgid "Parcel (left)" msgstr "Parcelle (gauche)" -#: models.py:403 +#: models.py:412 msgid "Description (left)" msgstr "Description (gauche)" -#: models.py:404 +#: models.py:413 msgid "Periods (left)" msgstr "Périodes (gauche)" -#: models.py:406 +#: models.py:415 msgid "Unit (right)" msgstr "Unité (droite)" -#: models.py:407 models.py:408 +#: models.py:416 models.py:417 msgid "Parcel (right)" msgstr "Parcelle (droite)" -#: models.py:409 +#: models.py:418 msgid "Description (right)" msgstr "Description (droite)" -#: models.py:410 +#: models.py:419 msgid "Periods (right)" msgstr "Périodes (droite)" -#: models.py:419 +#: models.py:428 msgid "Record relation" msgstr "Relation entre Unités d'Enregistrement" -#: models.py:420 +#: models.py:429 msgid "Record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:456 +#: models.py:465 msgid "Context record documentation" msgstr "Documentation d'une Unité d'Enregistrement" -#: models.py:457 +#: models.py:466 msgid "Context record documentations" msgstr "Documentations des Unités d'Enregistrement" @@ -565,5 +591,8 @@ msgstr "Documents du mobilier associé" msgid "Context record source" msgstr "Documentation associée à l'UE" +#~ msgid "Search within operation relations" +#~ msgstr "Rechercher parmi les opérations reliées" + #~ msgid "Add" #~ msgstr "Ajout" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index dcefc0c0b..66f8b99fd 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-09 22:11+0100\n" +"POT-Creation-Date: 2016-11-14 19:57+0100\n" "PO-Revision-Date: 2016-08-29 11:35-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" @@ -167,7 +167,8 @@ msgid "Preventive informations" msgstr "Information archéologie préventive" #: forms.py:293 models.py:138 -msgid "Responsible for town planning service" +#, fuzzy +msgid "Responsible for planning service" msgstr "Responsable au service instructeur" #: forms.py:310 models.py:174 @@ -208,7 +209,8 @@ msgid "Would you like to close this archaeological file?" msgstr "Voulez vous clore ce dossier archéologique ?" #: forms.py:392 -msgid "Would you like to delete this archaelogical file ?" +#, fuzzy +msgid "Would you like to delete this archaeological file ?" msgstr "Voulez vous supprimer ce dossier archéologique ?" #: forms.py:397 forms.py:424 forms.py:547 @@ -341,11 +343,13 @@ msgid "General contractor organization" msgstr "Organisation de l'aménageur" #: models.py:141 -msgid "Town planning service (raw)" +#, fuzzy +msgid "Planning service (raw)" msgstr "Service instructeur (brut)" #: models.py:147 -msgid "Town planning service organization" +#, fuzzy +msgid "Planning service organization" msgstr "Service instructeur" #: models.py:153 @@ -541,7 +545,8 @@ msgid "Surface:" msgstr "Surface :" #: templates/ishtar/sheet_file.html:62 -msgid "Preventive archaelogical file" +#, fuzzy +msgid "Preventive archaeological file" msgstr "Dossier d'archéologie préventive" #: templates/ishtar/sheet_file.html:64 @@ -584,7 +589,8 @@ msgid "Excavation end date" msgstr "Date de fin de chantier" #: templates/ishtar/sheet_file.html:135 -msgid "No operation associated to this archaelogical file" +#, fuzzy +msgid "No operation associated to this archaeological file" msgstr "Pas d'opération associée à ce dossier archéologique" #: templates/ishtar/sheet_file.html:141 diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index 7fb2c2643..150de352e 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-09 22:11+0100\n" +"POT-Creation-Date: 2016-11-14 19:57+0100\n" "PO-Revision-Date: 2016-02-23 08:09-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" @@ -108,18 +108,14 @@ msgstr "Aménageur" msgid "In charge" msgstr "Responsable" -#: forms.py:348 -msgid "Town planning service" +#: forms.py:348 forms.py:355 +msgid "Planning service" msgstr "Service instructeur" #: forms.py:352 msgid "File reference" msgstr "Référence du dossier" -#: forms.py:355 -msgid "Planning service" -msgstr "Service instructeur" - #: forms.py:395 msgid "Person in charge" msgstr "Dossier suivi par" @@ -165,3 +161,6 @@ msgstr "Personne morale" #: templates/ishtar/wizard/wizard_person_orga.html:32 msgid "Natural person" msgstr "Personne physique" + +#~ msgid "Town planning service" +#~ msgstr "Service instructeur" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 20fdfd694..780d6ca0e 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-09 22:11+0100\n" +"POT-Creation-Date: 2016-11-14 19:57+0100\n" "PO-Revision-Date: 2016-09-15 10:20-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" @@ -201,7 +201,8 @@ msgid "Archaelogical site" msgstr "Entité Archéologique" #: forms.py:236 -msgid "Search within operation relations" +#, fuzzy +msgid "Search within related operations" msgstr "Rechercher parmi les opérations reliées" #: forms.py:241 models.py:101 @@ -265,15 +266,18 @@ msgid "Numeric reference" msgstr "Référence numérique" #: forms.py:478 -msgid "Period of the archaelogical find" +#, fuzzy +msgid "Period of the archaeological find" msgstr "Période du mobilier" #: forms.py:480 -msgid "Material type of the archaelogical find" +#, fuzzy +msgid "Material type of the archaeological find" msgstr "Type de matériau du mobilier" #: forms.py:482 -msgid "Description of the archaelogical find" +#, fuzzy +msgid "Description of the archaeological find" msgstr "Description du mobilier" #: forms.py:494 diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index a2f639881..73a9d307e 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-09 22:11+0100\n" +"POT-Creation-Date: 2016-11-14 19:57+0100\n" "PO-Revision-Date: 2016-10-17 01:17-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" @@ -20,12 +20,12 @@ msgstr "" "X-Generator: Zanata 3.9.5\n" #: forms.py:69 forms.py:371 forms.py:1009 forms.py:1031 forms.py:1035 -#: models.py:1168 templates/ishtar/sheet_operation.html:144 +#: models.py:1190 templates/ishtar/sheet_operation.html:144 #: templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "Parcelles" -#: forms.py:72 forms.py:205 forms.py:985 models.py:1154 +#: forms.py:72 forms.py:205 forms.py:985 models.py:1176 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -34,22 +34,22 @@ msgstr "Parcelles" msgid "Town" msgstr "Commune" -#: forms.py:74 forms.py:455 forms.py:752 forms.py:1255 models.py:249 -#: models.py:971 models.py:1152 +#: forms.py:74 forms.py:455 forms.py:752 forms.py:1255 models.py:271 +#: models.py:993 models.py:1174 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "Année" -#: forms.py:77 models.py:1155 +#: forms.py:77 models.py:1177 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "Section" -#: forms.py:80 models.py:1157 +#: forms.py:80 models.py:1179 msgid "Parcel number" msgstr "Numéro de parcelle" -#: forms.py:82 models.py:1159 models.py:1176 models.py:1225 +#: forms.py:82 models.py:1181 models.py:1198 models.py:1247 msgid "Public domain" msgstr "Domaine public" @@ -85,8 +85,8 @@ msgstr "Il y a des parcelles identiques." msgid "Relation type" msgstr "Type de relation" -#: forms.py:383 ishtar_menu.py:30 models.py:344 models.py:804 models.py:834 -#: models.py:862 models.py:963 models.py:1151 wizards.py:339 wizards.py:350 +#: forms.py:383 ishtar_menu.py:30 models.py:366 models.py:826 models.py:856 +#: models.py:884 models.py:985 models.py:1173 wizards.py:339 wizards.py:350 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "Opération" @@ -115,7 +115,7 @@ msgstr "Relations supprimées" msgid "Relations" msgstr "Relations" -#: forms.py:456 forms.py:1226 models.py:250 +#: forms.py:456 forms.py:1226 models.py:272 msgid "Numeric reference" msgstr "Identifiant numérique" @@ -123,7 +123,7 @@ msgstr "Identifiant numérique" msgid "Parcel (section/number/public domain)" msgstr "Parcelle (section/nombre/domaine public)" -#: forms.py:465 forms.py:1269 models.py:805 +#: forms.py:465 forms.py:1269 models.py:827 #: templates/ishtar/dashboards/dashboard_operation.html:390 #: templates/ishtar/dashboards/dashboard_operation.html:411 #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -137,7 +137,7 @@ msgstr "Département" msgid "Name" msgstr "Nom" -#: forms.py:468 forms.py:672 forms.py:750 forms.py:1232 models.py:257 +#: forms.py:468 forms.py:672 forms.py:750 forms.py:1232 models.py:279 msgid "Operation type" msgstr "Type d'opération" @@ -145,24 +145,24 @@ msgstr "Type d'opération" msgid "Is open?" msgstr "Est ouvert ?" -#: forms.py:478 forms.py:782 models.py:246 +#: forms.py:478 forms.py:782 models.py:268 msgid "In charge" msgstr "Responsable" -#: forms.py:485 models.py:957 +#: forms.py:485 models.py:979 msgid "Scientist in charge" msgstr "Responsable scientifique" -#: forms.py:487 forms.py:674 forms.py:772 models.py:244 +#: forms.py:487 forms.py:674 forms.py:772 models.py:266 msgid "Operator" msgstr "Opérateur" -#: forms.py:496 forms.py:1102 models.py:89 models.py:259 +#: forms.py:496 forms.py:1102 models.py:89 models.py:281 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10 msgid "Remains" msgstr "Vestiges" -#: forms.py:497 forms.py:1080 forms.py:1099 models.py:87 models.py:265 +#: forms.py:497 forms.py:1080 forms.py:1099 models.py:87 models.py:287 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9 msgid "Periods" msgstr "Périodes" @@ -195,19 +195,19 @@ msgstr "Commentaire" msgid "Abstract (full text search)" msgstr "Résumé (recherche texte intégral)" -#: forms.py:512 forms.py:840 models.py:313 +#: forms.py:512 forms.py:840 models.py:335 msgid "Comment about scientific documentation" msgstr "Commentaire concernant la documentation scientifique" -#: forms.py:513 forms.py:842 models.py:325 +#: forms.py:513 forms.py:842 models.py:347 msgid "Record quality" msgstr "Qualité d'enregistrement" -#: forms.py:514 forms.py:807 models.py:277 +#: forms.py:514 forms.py:807 models.py:299 msgid "Report processing" msgstr "Traitement du rapport" -#: forms.py:516 forms.py:845 models.py:320 +#: forms.py:516 forms.py:845 models.py:342 msgid "Virtual operation" msgstr "Opération virtuelle" @@ -231,7 +231,7 @@ msgstr "Date limite de rendu de la documentation avant" msgid "Documentation deadline after" msgstr "Date limite de rendu de la documentation après" -#: forms.py:541 forms.py:830 models.py:332 +#: forms.py:541 forms.py:830 models.py:354 msgid "Documentation received" msgstr "Documentation reçue" @@ -243,7 +243,7 @@ msgstr "Date limite de rendu du mobilier avant" msgid "Finds deadline after" msgstr "Date limite de rendu du mobilier après" -#: forms.py:547 forms.py:835 models.py:336 +#: forms.py:547 forms.py:835 models.py:358 msgid "Finds received" msgstr "Mobilier reçu" @@ -255,11 +255,11 @@ msgstr "Recherche d'opérations" msgid "Associated file" msgstr "Dossier associé" -#: forms.py:640 forms.py:933 models.py:968 wizards.py:76 +#: forms.py:640 forms.py:933 models.py:990 wizards.py:76 msgid "Archaelogical file" msgstr "Dossier" -#: forms.py:647 forms.py:649 models.py:327 +#: forms.py:647 forms.py:649 models.py:349 msgid "Abstract" msgstr "Résumé" @@ -271,7 +271,7 @@ msgstr "mois" msgid "years" msgstr "années" -#: forms.py:654 models.py:230 +#: forms.py:654 models.py:252 msgid "Creation date" msgstr "Date de création" @@ -328,11 +328,11 @@ msgstr "Avec du mobilier" msgid "General" msgstr "Général" -#: forms.py:748 models.py:310 +#: forms.py:748 models.py:332 msgid "Generic name" msgstr "Nom générique" -#: forms.py:757 models.py:279 +#: forms.py:757 models.py:301 msgid "Old code" msgstr "Ancien code" @@ -340,7 +340,7 @@ msgstr "Ancien code" msgid "Head scientist" msgstr "Responsable scientifique" -#: forms.py:779 models.py:309 +#: forms.py:779 models.py:331 msgid "Operator reference" msgstr "Référence de l'opérateur" @@ -348,23 +348,23 @@ msgstr "Référence de l'opérateur" msgid "Total surface (m2)" msgstr "Surface totale (m2)" -#: forms.py:800 models.py:53 models.py:233 models.py:1341 +#: forms.py:800 models.py:53 models.py:255 models.py:1363 msgid "Start date" msgstr "Date de début" -#: forms.py:802 models.py:235 +#: forms.py:802 models.py:257 msgid "Excavation end date" msgstr "Date de fin de chantier" -#: forms.py:805 models.py:236 +#: forms.py:805 models.py:258 msgid "Report delivery date" msgstr "Date de livraison du rapport" -#: forms.py:827 models.py:329 +#: forms.py:827 models.py:351 msgid "Deadline for submission of the documentation" msgstr "Date limite de rendu de la documentation" -#: forms.py:832 models.py:334 +#: forms.py:832 models.py:356 msgid "Deadline for submission of the finds" msgstr "Date limite de rendu du mobilier" @@ -405,7 +405,7 @@ msgstr "" msgid "Bad operation code" msgstr "Mauvais code d'opération" -#: forms.py:929 models.py:486 +#: forms.py:929 models.py:508 msgid "Operation code" msgstr "Code de l'opération" @@ -413,20 +413,20 @@ msgstr "Code de l'opération" msgid "Preventive informations - excavation" msgstr "Information archéologie préventive - fouille" -#: forms.py:956 models.py:263 +#: forms.py:956 models.py:285 #: templates/ishtar/dashboards/dashboard_operation.html:701 msgid "Cost (euros)" msgstr "Coût (euros)" -#: forms.py:957 models.py:268 +#: forms.py:957 models.py:290 msgid "Scheduled man-days" msgstr "Jours-hommes prévus" -#: forms.py:959 models.py:271 +#: forms.py:959 models.py:293 msgid "Optional man-days" msgstr "Jours-hommes optionnels" -#: forms.py:961 models.py:274 +#: forms.py:961 models.py:296 msgid "Effective man-days" msgstr "Jours-hommes effectifs" @@ -434,23 +434,23 @@ msgstr "Jours-hommes effectifs" msgid "Preventive informations - diagnostic" msgstr "Information archéologie préventive - diagnostic" -#: forms.py:974 models.py:293 +#: forms.py:974 models.py:315 msgid "Prescription on zoning" msgstr "Prescription sur zonage" -#: forms.py:976 models.py:296 +#: forms.py:976 models.py:318 msgid "Prescription on large area" msgstr "Prescription sur une vaste surface" -#: forms.py:979 models.py:298 +#: forms.py:979 models.py:320 msgid "Prescription on geoarchaeological context" msgstr "Prescription sur un contexte géoarchéologique" -#: forms.py:983 forms.py:1005 models.py:261 models.py:981 +#: forms.py:983 forms.py:1005 models.py:283 models.py:1003 msgid "Towns" msgstr "Communes" -#: forms.py:1012 models.py:1167 models.py:1339 +#: forms.py:1012 models.py:1189 models.py:1361 msgid "Parcel" msgstr "Parcelle" @@ -479,13 +479,14 @@ msgstr "Cette référence existe déjà." msgid "Archaeological site" msgstr "Entité archéologique" -#: forms.py:1157 models.py:94 models.py:317 +#: forms.py:1157 models.py:94 models.py:339 #: templates/ishtar/sheet_operation.html:94 msgid "Archaeological sites" msgstr "Entités archéologiques" #: forms.py:1161 -msgid "Associated archaelogical sites" +#, fuzzy +msgid "Associated archaeological sites" msgstr "Entités archéologiques associées" #: forms.py:1167 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 @@ -500,7 +501,7 @@ msgstr "Voulez-vous clore cette opération ?" msgid "Would you like to delete this operation?" msgstr "Voulez-vous supprimer cette opération ?" -#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:836 models.py:948 +#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:858 models.py:970 msgid "Index" msgstr "Index" @@ -529,7 +530,7 @@ msgstr "Recherche de document" msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: forms.py:1263 forms.py:1330 models.py:873 models.py:942 +#: forms.py:1263 forms.py:1330 models.py:895 models.py:964 msgid "Act type" msgstr "Type d'acte" @@ -537,7 +538,7 @@ msgstr "Type d'acte" msgid "Indexed?" msgstr "Indexé ?" -#: forms.py:1270 forms.py:1335 models.py:972 +#: forms.py:1270 forms.py:1335 models.py:994 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "Objet" @@ -550,7 +551,7 @@ msgstr "Recherche d'actes administratifs" msgid "You should select an administrative act." msgstr "Vous devez sélectionner un acte administratif." -#: forms.py:1338 models.py:969 +#: forms.py:1338 models.py:991 msgid "Signature date" msgstr "Date de signature" @@ -608,7 +609,7 @@ msgstr "Clôture" msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:58 models.py:988 +#: ishtar_menu.py:58 models.py:1010 #: templates/ishtar/sheet_administrativeact.html:4 msgid "Administrative act" msgstr "Acte administratif" @@ -633,16 +634,16 @@ msgstr "Tableau de bord" msgid "General informations" msgstr "Informations générales" -#: ishtar_menu.py:136 models.py:345 +#: ishtar_menu.py:136 models.py:367 #: templates/ishtar/dashboards/dashboard_operation.html:8 msgid "Operations" msgstr "Opérations" -#: models.py:52 models.py:70 models.py:1803 +#: models.py:52 models.py:70 models.py:1825 msgid "Order" msgstr "Ordre" -#: models.py:54 models.py:1342 +#: models.py:54 models.py:1364 msgid "End date" msgstr "Date de fin" @@ -698,311 +699,380 @@ msgstr "Arbitraire" msgid "Reliable" msgstr "Fiable" +#: models.py:230 +msgid "Year - Index" +msgstr "" + +#: models.py:231 +#, fuzzy +msgid "Associated file (label)" +msgstr "Dossier associé" + #: models.py:232 +#, fuzzy +msgid "Operator name" +msgstr "Opérateur" + +#: models.py:233 +#, fuzzy +msgid "Scientist (full name)" +msgstr "Responsable scientifique" + +#: models.py:234 +#, fuzzy +msgid "Associated file (external ID)" +msgstr "Dossier associé" + +#: models.py:235 +#, fuzzy +msgid "Scientist (title)" +msgstr "Responsable scientifique" + +#: models.py:236 +#, fuzzy +msgid "Scientist (surname)" +msgstr "Responsable scientifique" + +#: models.py:237 +#, fuzzy +msgid "Scientist (name)" +msgstr "Responsable scientifique" + +#: models.py:238 +#, fuzzy +msgid "Scientist - Organization (name)" +msgstr "Responsable scientifique" + +#: models.py:239 +#, fuzzy +msgid "In charge (title)" +msgstr "Responsable scientifique" + +#: models.py:240 +#, fuzzy +msgid "In charge (surname)" +msgstr "Responsable" + +#: models.py:241 +#, fuzzy +msgid "In charge (name)" +msgstr "Responsable" + +#: models.py:242 +#, fuzzy +msgid "In charge - Organization (name)" +msgstr "surface par organisation et par année" + +#: models.py:247 +#, fuzzy +msgid "Archaeological sites (reference)" +msgstr "Entités archéologiques" + +#: models.py:254 msgid "Closing date" msgstr "Date de clôture" -#: models.py:239 +#: models.py:261 msgid "In charge scientist" msgstr "Responsable scientifique" -#: models.py:254 models.py:1147 +#: models.py:276 models.py:1169 msgid "File" msgstr "Dossier" -#: models.py:258 +#: models.py:280 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:311 +#: models.py:333 msgid "General comment" msgstr "Commentaire général" -#: models.py:314 +#: models.py:336 msgid "Cached name" msgstr "Nom en cache" -#: models.py:322 +#: models.py:344 msgid "" "If checked, it means that this operation have not been officialy registered." msgstr "" "Si coché, cela signifie que cette opération n'a pas été officiellement " "enregistrée." -#: models.py:338 +#: models.py:360 msgid "Point" msgstr "Point" -#: models.py:339 +#: models.py:361 msgid "Multi polygon" msgstr "Polygones multiples" -#: models.py:347 +#: models.py:369 msgid "Can view all Operations" msgstr "Peut voir toutes les Opérations" -#: models.py:348 +#: models.py:370 msgid "Can view own Operation" msgstr "Peut voir sa propre Opération" -#: models.py:349 +#: models.py:371 msgid "Can add own Operation" msgstr "Peut ajouter sa propre Opération" -#: models.py:350 +#: models.py:372 msgid "Can change own Operation" msgstr "Peut modifier sa propre Opération" -#: models.py:351 +#: models.py:373 msgid "Can delete own Operation" msgstr "Peut supprimer sa propre Opération" -#: models.py:352 +#: models.py:374 msgid "Can close Operation" msgstr "Peut fermer une Opération" -#: models.py:380 +#: models.py:402 msgid "OPE" msgstr "OPE" -#: models.py:440 +#: models.py:462 msgid "Intercommunal" msgstr "Intercommunal" -#: models.py:471 models.py:861 +#: models.py:493 models.py:883 msgid "Archaeological file" msgstr "Dossier archéologique" -#: models.py:472 +#: models.py:494 msgid "Code patriarche" msgstr "Code patriarche" -#: models.py:512 +#: models.py:534 msgid "This operation code already exists for this year" msgstr "Ce code d'opération existe déjà pour cette année." -#: models.py:545 +#: models.py:567 msgid "Number of parcels" msgstr "Nombre de parcelles" -#: models.py:563 +#: models.py:585 msgid "Number of administrative acts" msgstr "Nombre d'actes administratifs" -#: models.py:571 +#: models.py:593 msgid "Number of indexed administrative acts" msgstr "Nombre d'actes administratifs indexés" -#: models.py:579 +#: models.py:601 msgid "Number of context records" msgstr "Nombre d'Unités d'Enregistrement" -#: models.py:615 +#: models.py:637 msgid "Number of finds" msgstr "Nombre d'élément de mobilier" -#: models.py:660 +#: models.py:682 msgid "No type" msgstr "Pas de type" -#: models.py:691 +#: models.py:713 msgid "Number of sources" msgstr "Nombre de documents" -#: models.py:733 templates/ishtar/dashboards/dashboard_operation.html:309 +#: models.py:755 templates/ishtar/dashboards/dashboard_operation.html:309 #: templates/ishtar/dashboards/dashboard_operation.html:575 #: templates/ishtar/dashboards/dashboard_operation.html:611 msgid "Mean" msgstr "Moyenne" -#: models.py:775 +#: models.py:797 msgid "Inverse relation" msgstr "Relation inverse" -#: models.py:779 +#: models.py:801 msgid "Operation relation type" msgstr "Type de relation entre opérations" -#: models.py:780 +#: models.py:802 msgid "Operation relation types" msgstr "Types de relation entre opérations" -#: models.py:793 +#: models.py:815 msgid "Operation record relation" msgstr "Relation entre opérations" -#: models.py:794 +#: models.py:816 msgid "Operation record relations" msgstr "Relations entre opérations" -#: models.py:840 +#: models.py:862 msgid "Operation documentation" msgstr "Documentation d'une opération" -#: models.py:841 +#: models.py:863 msgid "Operation documentations" msgstr "Documentations des opérations" -#: models.py:844 +#: models.py:866 msgid "Can view all Operation sources" msgstr "Peut voir toutes les Documentations d'opération" -#: models.py:846 +#: models.py:868 msgid "Can view own Operation source" msgstr "Peut voir sa propre Documentation d'opération" -#: models.py:848 +#: models.py:870 msgid "Can add own Operation source" msgstr "Peut ajouter sa propre Documentation d'opération" -#: models.py:850 +#: models.py:872 msgid "Can change own Operation source" msgstr "Peut modifier sa propre Documentation d'opération" -#: models.py:852 +#: models.py:874 msgid "Can delete own Operation source" msgstr "Peut supprimer sa propre Documentation d'opération" -#: models.py:864 +#: models.py:886 msgid "Intended to" msgstr "Destiné à" -#: models.py:866 +#: models.py:888 msgid "Code" msgstr "Code" -#: models.py:869 +#: models.py:891 msgid "Associated template" msgstr "Patron associé" -#: models.py:870 +#: models.py:892 msgid "Indexed" msgstr "Indexé" -#: models.py:874 +#: models.py:896 msgid "Act types" msgstr "Types d'acte" -#: models.py:946 +#: models.py:968 msgid "Person in charge of the operation" msgstr "Responsable d'opération" -#: models.py:952 +#: models.py:974 msgid "Archaeological preventive operator" msgstr "Opérateur d'archéologie préventive" -#: models.py:960 +#: models.py:982 msgid "Signatory" msgstr "Signataire" -#: models.py:978 +#: models.py:1000 msgid "Departments" msgstr "Départements" -#: models.py:979 +#: models.py:1001 msgid "Cached values get from associated departments" msgstr "Valeur en cache des départements associés" -#: models.py:982 +#: models.py:1004 msgid "Cached values get from associated towns" msgstr "Valeur en cache des communes associées" -#: models.py:989 templates/ishtar/sheet_operation.html:102 +#: models.py:1011 templates/ishtar/sheet_operation.html:102 #: templates/ishtar/sheet_operation.html:138 msgid "Administrative acts" msgstr "Actes administratifs" -#: models.py:992 +#: models.py:1014 msgid "Can view all Administrative acts" msgstr "Peut voir tous les Actes administratifs" -#: models.py:994 +#: models.py:1016 msgid "Can view own Administrative act" msgstr "Peut voir son propre Acte administratif" -#: models.py:996 +#: models.py:1018 msgid "Can add own Administrative act" msgstr "Peut ajouter son propre Acte administratif" -#: models.py:998 +#: models.py:1020 msgid "Can change own Administrative act" msgstr "Peut modifier son propre Acte administratif" -#: models.py:1000 +#: models.py:1022 msgid "Can delete own Administrative act" msgstr "Peut supprimer son propre Acte administratif" -#: models.py:1009 +#: models.py:1031 #: templates/ishtar/blocks/window_tables/administrativacts.html:7 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7 msgid "Ref." msgstr "Réf." -#: models.py:1092 +#: models.py:1114 msgid "This index already exists for this year" msgstr "Cet index existe déjà pour cette année." -#: models.py:1160 +#: models.py:1182 msgid "External ID" msgstr "ID externe" -#: models.py:1163 +#: models.py:1185 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:1164 +#: models.py:1186 msgid "Address - Locality" msgstr "Adresse - Lieu-dit" -#: models.py:1337 +#: models.py:1359 msgid "Owner" msgstr "Propriétaire" -#: models.py:1345 +#: models.py:1367 msgid "Parcel owner" msgstr "Propriétaire de parcelle" -#: models.py:1346 +#: models.py:1368 msgid "Parcel owners" msgstr "Propriétaires de parcelle" -#: models.py:1372 +#: models.py:1394 msgid "Recorded" msgstr "Enregistré" -#: models.py:1373 +#: models.py:1395 msgid "Effective" msgstr "Effectif" -#: models.py:1374 +#: models.py:1396 msgid "Active" msgstr "Actif" -#: models.py:1375 +#: models.py:1397 msgid "Field completed" msgstr "Terrain achevé" -#: models.py:1376 +#: models.py:1398 msgid "Associated report" msgstr "Rapport associé" -#: models.py:1377 +#: models.py:1399 msgid "Closed" msgstr "Clos" -#: models.py:1378 +#: models.py:1400 msgid "Documented and closed" msgstr "Documenté et clos" -#: models.py:1804 +#: models.py:1826 msgid "Is preventive" msgstr "Préventif" -#: models.py:1807 +#: models.py:1829 msgid "Operation type old" msgstr "Type d'opération - ancien" -#: models.py:1808 +#: models.py:1830 msgid "Operation types old" msgstr "Types d'opération - ancien" diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index 7f00b83eb..f04c4baa6 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-09 22:11+0100\n" +"POT-Creation-Date: 2016-11-14 19:57+0100\n" "PO-Revision-Date: 2016-02-24 10:52-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index bb3723b32..8e087761e 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-09 22:11+0100\n" +"POT-Creation-Date: 2016-11-14 19:57+0100\n" "PO-Revision-Date: 2016-10-22 06:30-0400\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" @@ -171,12 +171,12 @@ msgstr "Vous devez sélectionner un élément." msgid "Add a new item" msgstr "Ajouter un nouvel élément" -#: forms.py:262 models.py:1355 +#: forms.py:262 models.py:1360 msgid "Template" msgstr "Patron" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1421 models.py:2810 +#: forms_common.py:406 models.py:1426 models.py:2819 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -200,8 +200,8 @@ msgstr "" "

      Par exemple tapez « saint denis 93 » pour obtenir la " "commune Saint-Denis dans le département français de Seine-Saint-Denis.

      " -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1594 -#: models.py:2436 models.py:2618 models.py:2680 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1599 +#: models.py:2445 models.py:2627 models.py:2689 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "Personne" @@ -215,63 +215,63 @@ msgstr "" "pas possible." #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1595 models.py:2322 +#: ishtar_menu.py:75 models.py:1600 models.py:2331 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "Organisation" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:1022 models.py:1354 -#: models.py:1640 models.py:1859 models.py:2316 models.py:2422 models.py:2796 +#: forms_common.py:376 forms_common.py:446 models.py:1027 models.py:1359 +#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2805 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "Nom" -#: forms_common.py:174 models.py:1576 models.py:1990 +#: forms_common.py:174 models.py:1581 models.py:1995 msgid "Organization type" msgstr "Type d'organisation" -#: forms_common.py:176 forms_common.py:400 models.py:1416 +#: forms_common.py:176 forms_common.py:400 models.py:1421 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "Adresse" -#: forms_common.py:178 forms_common.py:403 models.py:1417 +#: forms_common.py:178 forms_common.py:403 models.py:1422 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "Complément d'adresse" -#: forms_common.py:180 forms_common.py:404 models.py:1419 +#: forms_common.py:180 forms_common.py:404 models.py:1424 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "Code postal" -#: forms_common.py:183 forms_common.py:407 models.py:1422 +#: forms_common.py:183 forms_common.py:407 models.py:1427 msgid "Country" msgstr "Pays" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1449 +#: forms_common.py:448 forms_common.py:572 models.py:1454 msgid "Email" msgstr "Courriel" -#: forms_common.py:186 forms_common.py:383 models.py:1434 +#: forms_common.py:186 forms_common.py:383 models.py:1439 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "Téléphone" -#: forms_common.py:187 forms_common.py:392 models.py:1446 +#: forms_common.py:187 forms_common.py:392 models.py:1451 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "Téléphone portable" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2018 -#: models.py:2318 models.py:2731 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2025 +#: models.py:2327 models.py:2740 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -296,7 +296,7 @@ msgstr "Fusionner tous les éléments dans" msgid "Organization to merge" msgstr "Organisation à fusionner" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2420 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2429 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "Prénom" @@ -314,25 +314,25 @@ msgstr "Personne à fusionner" msgid "Identity" msgstr "Identité" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1991 -#: models.py:2414 models.py:2416 models.py:2728 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1996 +#: models.py:2423 models.py:2425 models.py:2737 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "Titre" -#: forms_common.py:372 models.py:2418 +#: forms_common.py:372 models.py:2427 msgid "Salutation" msgstr "Formule d'appel" -#: forms_common.py:378 models.py:2424 +#: forms_common.py:378 models.py:2433 msgid "Raw name" msgstr "Nom brut" -#: forms_common.py:381 models.py:1435 +#: forms_common.py:381 models.py:1440 msgid "Phone description" msgstr "Type de téléphone" -#: forms_common.py:384 models.py:1437 models.py:1439 +#: forms_common.py:384 models.py:1442 models.py:1444 msgid "Phone description 2" msgstr "Type de téléphone 2" @@ -340,11 +340,11 @@ msgstr "Type de téléphone 2" msgid "Phone 2" msgstr "Téléphone 2" -#: forms_common.py:388 models.py:1443 +#: forms_common.py:388 models.py:1448 msgid "Phone description 3" msgstr "Type de téléphone 3" -#: forms_common.py:390 models.py:1441 +#: forms_common.py:390 models.py:1446 msgid "Phone 3" msgstr "Téléphone 3" @@ -352,23 +352,23 @@ msgstr "Téléphone 3" msgid "Current organization" msgstr "Organisation actuelle" -#: forms_common.py:409 models.py:1424 +#: forms_common.py:409 models.py:1429 msgid "Other address: address" msgstr "Autre adresse : adresse" -#: forms_common.py:412 models.py:1427 +#: forms_common.py:412 models.py:1432 msgid "Other address: address complement" msgstr "Autre adresse : complément d'adresse" -#: forms_common.py:414 models.py:1428 +#: forms_common.py:414 models.py:1433 msgid "Other address: postal code" msgstr "Autre adresse : code postal" -#: forms_common.py:416 models.py:1430 +#: forms_common.py:416 models.py:1435 msgid "Other address: town" msgstr "Autre adresse : ville" -#: forms_common.py:418 models.py:1432 +#: forms_common.py:418 models.py:1437 msgid "Other address: country" msgstr "Autre adresse : pays" @@ -384,7 +384,7 @@ msgstr "Nom d'utilisateur" msgid "Account search" msgstr "Recherche de comptes" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2370 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2379 msgid "Person type" msgstr "Type de personne" @@ -416,7 +416,7 @@ msgstr "Ce nom d'utilisateur existe déjà." msgid "Send the new password by email?" msgstr "Envoyer le nouveau mot de passe par courriel ?" -#: forms_common.py:628 forms_common.py:641 models.py:2811 +#: forms_common.py:628 forms_common.py:641 models.py:2820 msgid "Towns" msgstr "Communes" @@ -432,7 +432,7 @@ msgstr "Seul un choix peut être coché." msgid "Documentation informations" msgstr "Information sur le document" -#: forms_common.py:775 forms_common.py:823 models.py:1992 models.py:2705 +#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2714 msgid "Source type" msgstr "Type de document" @@ -444,37 +444,37 @@ msgstr "Référence" msgid "Internal reference" msgstr "Référence interne" -#: forms_common.py:783 models.py:2742 +#: forms_common.py:783 models.py:2751 msgid "Numerical ressource (web address)" msgstr "Ressource numérique (adresse web)" -#: forms_common.py:784 models.py:2744 +#: forms_common.py:784 models.py:2753 msgid "Receipt date" msgstr "Date de réception" -#: forms_common.py:786 models.py:2145 models.py:2746 +#: forms_common.py:786 models.py:2154 models.py:2755 msgid "Creation date" msgstr "Date de création" -#: forms_common.py:789 models.py:2749 +#: forms_common.py:789 models.py:2758 msgid "Receipt date in documentation" msgstr "Date de réception en documentation" -#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:622 -#: models.py:1886 models.py:2428 models.py:2756 +#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:627 +#: models.py:1891 models.py:2437 models.py:2765 msgid "Comment" msgstr "Commentaire" -#: forms_common.py:793 forms_common.py:826 models.py:1024 models.py:1644 -#: models.py:1818 models.py:1860 models.py:2755 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1029 models.py:1649 +#: models.py:1823 models.py:1865 models.py:2764 templates/sheet_ope.html:128 msgid "Description" msgstr "Description" -#: forms_common.py:796 models.py:2757 +#: forms_common.py:796 models.py:2766 msgid "Additional information" msgstr "Informations supplémentaires" -#: forms_common.py:798 forms_common.py:830 models.py:2759 +#: forms_common.py:798 forms_common.py:830 models.py:2768 msgid "Has a duplicate" msgstr "Existe en doublon" @@ -491,7 +491,7 @@ msgstr "" "

      Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

      " -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2685 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2694 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "Auteur" @@ -504,7 +504,7 @@ msgstr "Informations complémentaires" msgid "Would you like to delete this documentation?" msgstr "Voulez-vous supprimer ce document ?" -#: forms_common.py:856 models.py:1993 models.py:2673 models.py:2682 +#: forms_common.py:856 models.py:1998 models.py:2682 models.py:2691 msgid "Author type" msgstr "Type d'auteur" @@ -516,7 +516,7 @@ msgstr "Sélection d'auteur" msgid "There are identical authors." msgstr "Il y a des auteurs identiques." -#: forms_common.py:893 models.py:2686 models.py:2738 +#: forms_common.py:893 models.py:2695 models.py:2747 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -534,7 +534,7 @@ msgstr "Ajouter/Modifier" msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:39 models.py:1150 views.py:1494 +#: ishtar_menu.py:39 models.py:1155 views.py:1501 msgid "Global variables" msgstr "Variables globales" @@ -562,15 +562,15 @@ msgstr "Fusion automatique" msgid "Manual merge" msgstr "Fusion manuelle" -#: ishtar_menu.py:109 models.py:2156 +#: ishtar_menu.py:109 models.py:2165 msgid "Imports" msgstr "Imports" -#: ishtar_menu.py:112 views.py:1502 +#: ishtar_menu.py:112 views.py:1509 msgid "New import" msgstr "Nouvel import" -#: ishtar_menu.py:116 views.py:1516 +#: ishtar_menu.py:116 views.py:1523 msgid "Current imports" msgstr "Imports en cours" @@ -578,103 +578,103 @@ msgstr "Imports en cours" msgid "Old imports" msgstr "Anciens imports" -#: models.py:178 +#: models.py:183 msgid "Not a valid item." msgstr "Élément invalide." -#: models.py:191 +#: models.py:196 msgid "A selected item is not a valid item." msgstr "Un élément sélectionné n'est pas valide." -#: models.py:202 +#: models.py:207 msgid "This item already exists." msgstr "Cet élément existe déjà." -#: models.py:313 models.py:621 models.py:1389 models.py:1401 models.py:1815 +#: models.py:318 models.py:626 models.py:1394 models.py:1406 models.py:1820 msgid "Label" msgstr "Libellé" -#: models.py:315 +#: models.py:320 msgid "Textual ID" msgstr "Identifiant textuel" -#: models.py:318 models.py:624 models.py:1358 +#: models.py:323 models.py:629 models.py:1363 msgid "Available" msgstr "Disponible" -#: models.py:643 models.py:1932 +#: models.py:648 models.py:1937 msgid "Key" msgstr "Clé" -#: models.py:649 +#: models.py:654 msgid "Specific key to an import" msgstr "Clé spécifique à un import" -#: models.py:741 +#: models.py:746 msgid "Last editor" msgstr "Dernier éditeur" -#: models.py:744 +#: models.py:749 msgid "Creator" msgstr "Créateur" -#: models.py:886 models.py:2822 +#: models.py:891 models.py:2831 msgid "Order" msgstr "Ordre" -#: models.py:887 +#: models.py:892 msgid "Symmetrical" msgstr "Symétrique" -#: models.py:888 +#: models.py:893 msgid "Tiny label" msgstr "Petit libellé" -#: models.py:902 +#: models.py:907 msgid "Cannot have symmetrical and an inverse_relation" msgstr "Ne peut pas être symétrique et avoir une relation inverse" -#: models.py:1016 +#: models.py:1021 msgid "Euro" msgstr "Euro" -#: models.py:1017 +#: models.py:1022 msgid "US dollar" msgstr "Dollars US" -#: models.py:1023 models.py:1642 +#: models.py:1028 models.py:1647 msgid "Slug" msgstr "Identifiant texte" -#: models.py:1025 +#: models.py:1030 msgid "Files module" msgstr "Module Dossiers" -#: models.py:1026 +#: models.py:1031 msgid "Context records module" msgstr "Module Unités d'Enregistrement" -#: models.py:1028 +#: models.py:1033 msgid "Finds module" msgstr "Module Mobilier" -#: models.py:1029 +#: models.py:1034 msgid "Need context records module" msgstr "Nécessite le module Unités d'Enregistrement" -#: models.py:1031 +#: models.py:1036 msgid "Warehouses module" msgstr "Module Dépôts" -#: models.py:1032 +#: models.py:1037 msgid "Need finds module" msgstr "Nécessite le module mobilier" -#: models.py:1034 +#: models.py:1039 msgid "Home page" msgstr "Page d'accueil" -#: models.py:1035 +#: models.py:1040 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " @@ -684,22 +684,22 @@ msgstr "" "défaut va apparaître. Utiliser la syntaxe Markdown. {random_image} peut être " "utilisé pour afficher une image au hasard." -#: models.py:1039 +#: models.py:1044 msgid "File external id" msgstr "Identifiant externe de fichier" -#: models.py:1041 +#: models.py:1046 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "Formule pour gérer les identifiants externes" -#: models.py:1046 +#: models.py:1051 msgid "Parcel external id" msgstr "Identifiant externe de parcelle" -#: models.py:1049 +#: models.py:1054 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -709,11 +709,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1054 +#: models.py:1059 msgid "Context record external id" msgstr "Identifiant externe d'unité d'enregistrement" -#: models.py:1056 +#: models.py:1061 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -723,11 +723,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1061 +#: models.py:1066 msgid "Base find external id" msgstr "Identifiant externe de mobilier de base" -#: models.py:1063 +#: models.py:1068 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -737,11 +737,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1068 +#: models.py:1073 msgid "Find external id" msgstr "Identifiant externe de mobilier" -#: models.py:1070 +#: models.py:1075 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -751,11 +751,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1075 +#: models.py:1080 msgid "Raw name for person" msgstr "Nom brut pour une personne" -#: models.py:1077 +#: models.py:1082 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -765,43 +765,43 @@ msgstr "" "Une formule incorrecte peut rendre l'application inutilisable et l'import de " "données externes peut alors être destructif." -#: models.py:1081 +#: models.py:1086 msgid "Current active" msgstr "Actuellement utilisé" -#: models.py:1082 +#: models.py:1087 msgid "Currency" msgstr "Devise" -#: models.py:1086 +#: models.py:1091 msgid "Ishtar site profile" msgstr "Profil d'instance Ishtar" -#: models.py:1087 +#: models.py:1092 msgid "Ishtar site profiles" msgstr "Profils d'instance Ishtar" -#: models.py:1143 +#: models.py:1148 msgid "Variable name" msgstr "Nom de la variable" -#: models.py:1144 +#: models.py:1149 msgid "Description of the variable" msgstr "Description de la variable" -#: models.py:1146 models.py:1933 +#: models.py:1151 models.py:1938 msgid "Value" msgstr "Valeur" -#: models.py:1149 +#: models.py:1154 msgid "Global variable" msgstr "Variable globale" -#: models.py:1259 models.py:1289 +#: models.py:1264 models.py:1294 msgid "Total" msgstr "Total" -#: models.py:1266 models.py:1390 models.py:1402 +#: models.py:1271 models.py:1395 models.py:1407 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -809,603 +809,613 @@ msgstr "Total" msgid "Number" msgstr "Nombre" -#: models.py:1353 +#: models.py:1358 msgid "Administrative Act" msgstr "Acte administratif" -#: models.py:1357 +#: models.py:1362 msgid "Associated object" msgstr "Objet associé" -#: models.py:1361 +#: models.py:1366 msgid "Document template" msgstr "Patron de document" -#: models.py:1362 +#: models.py:1367 msgid "Document templates" msgstr "Patrons de documents" -#: models.py:1393 models.py:1403 models.py:2140 +#: models.py:1398 models.py:1408 models.py:2149 msgid "State" msgstr "État" -#: models.py:1407 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1412 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "Département" -#: models.py:1408 +#: models.py:1413 msgid "Departments" msgstr "Départements" -#: models.py:1445 +#: models.py:1450 msgid "Raw phone" msgstr "Téléphone brut" -#: models.py:1451 +#: models.py:1456 msgid "Alternative address is prefered" msgstr "L'adresse alternative est préférée" -#: models.py:1490 +#: models.py:1495 msgid "Tel: " msgstr "Tél :" -#: models.py:1494 +#: models.py:1499 msgid "Mobile: " msgstr "Mobile :" -#: models.py:1498 +#: models.py:1503 msgid "Email: " msgstr "Courriel :" -#: models.py:1503 +#: models.py:1508 msgid "Merge key" msgstr "Clé de fusion" -#: models.py:1577 +#: models.py:1582 msgid "Organization types" msgstr "Types d'organisation" -#: models.py:1596 views.py:237 +#: models.py:1601 views.py:237 msgid "Operation" msgstr "Opération" -#: models.py:1598 +#: models.py:1603 msgid "Archaeological site" msgstr "Entité Archéologique" -#: models.py:1599 +#: models.py:1604 msgid "Parcels" msgstr "Parcelles" -#: models.py:1601 +#: models.py:1606 msgid "Operation source" msgstr "Documentation de l'opération" -#: models.py:1604 views.py:1310 views.py:1360 +#: models.py:1609 views.py:1317 views.py:1367 msgid "Archaeological files" msgstr "Dossiers archéologiques" -#: models.py:1606 views.py:1313 views.py:1368 +#: models.py:1611 views.py:1320 views.py:1375 msgid "Context records" msgstr "Unités d'Enregistrement" -#: models.py:1608 +#: models.py:1613 msgid "Context record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:1610 views.py:1315 views.py:1371 -msgid "Finds" -msgstr "Mobilier" +#: models.py:1615 +msgid "Base finds" +msgstr "" -#: models.py:1646 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1651 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "Utilisateurs" -#: models.py:1648 +#: models.py:1653 msgid "Associated model" msgstr "Modèle associé" -#: models.py:1651 +#: models.py:1656 msgid "Is template" msgstr "Est un patron" -#: models.py:1652 +#: models.py:1657 msgid "Unicity keys (separator \";\")" msgstr "Clés d'unicité (séparateur « ; »)" -#: models.py:1656 +#: models.py:1661 msgid "Importer - Type" msgstr "Importeur - Type" -#: models.py:1657 +#: models.py:1662 msgid "Importer - Types" msgstr "Importeur - Types" -#: models.py:1747 +#: models.py:1752 msgid "Importer - Default" msgstr "Importeur - Par défaut" -#: models.py:1748 +#: models.py:1753 msgid "Importer - Defaults" msgstr "Importeur - Par défaut" -#: models.py:1783 +#: models.py:1788 msgid "Importer - Default value" msgstr "Importeur - Valeur par défaut" -#: models.py:1784 +#: models.py:1789 msgid "Importer - Default values" msgstr "Importeur - Valeurs par défaut" -#: models.py:1817 +#: models.py:1822 msgid "Column number" msgstr "Numéro de colonne" -#: models.py:1820 +#: models.py:1825 msgid "Required" msgstr "Requis" -#: models.py:1823 +#: models.py:1828 msgid "Importer - Column" msgstr "Importeur - Colonne" -#: models.py:1824 +#: models.py:1829 msgid "Importer - Columns" msgstr "Importeur - Colonnes" -#: models.py:1844 +#: models.py:1849 msgid "Field name" msgstr "Nom du champ" -#: models.py:1846 models.py:1880 +#: models.py:1851 models.py:1885 msgid "Force creation of new items" msgstr "Forcer la création de nouveaux éléments" -#: models.py:1848 models.py:1882 +#: models.py:1853 models.py:1887 msgid "Concatenate with existing" msgstr "Concaténer avec l'existant" -#: models.py:1850 models.py:1884 +#: models.py:1855 models.py:1889 msgid "Concatenate character" msgstr "Caractère de concaténation" -#: models.py:1854 +#: models.py:1859 msgid "Importer - Duplicate field" msgstr "Importeur - Champ dupliqué" -#: models.py:1855 +#: models.py:1860 msgid "Importer - Duplicate fields" msgstr "Importeur - Champs dupliqués" -#: models.py:1862 +#: models.py:1867 msgid "Regular expression" msgstr "Expression régulière" -#: models.py:1865 +#: models.py:1870 msgid "Importer - Regular expression" msgstr "Importeur - Expression régulière" -#: models.py:1866 +#: models.py:1871 msgid "Importer - Regular expressions" msgstr "Importeur - Expressions régulières" -#: models.py:1889 +#: models.py:1894 msgid "Importer - Target" msgstr "Importeur - Cible" -#: models.py:1890 +#: models.py:1895 msgid "Importer - Targets" msgstr "Importeur - Cibles" -#: models.py:1914 views.py:520 +#: models.py:1919 views.py:520 msgid "True" msgstr "Oui" -#: models.py:1915 views.py:522 +#: models.py:1920 views.py:522 msgid "False" msgstr "Non" -#: models.py:1934 +#: models.py:1939 msgid "Is set" msgstr "Est défini" -#: models.py:1941 +#: models.py:1946 msgid "Importer - Target key" msgstr "Importeur - Rapprochement" -#: models.py:1942 +#: models.py:1947 msgid "Importer - Targets keys" msgstr "Importeur - Rapprochements" -#: models.py:1994 models.py:2721 models.py:2734 +#: models.py:1999 models.py:2730 models.py:2743 msgid "Format" msgstr "Format" -#: models.py:1995 models.py:2826 +#: models.py:2000 models.py:2835 msgid "Operation type" msgstr "Type d'opération" -#: models.py:1996 +#: models.py:2001 msgid "Period" msgstr "Périodes" -#: models.py:1997 +#: models.py:2002 msgid "Report state" msgstr "État de rapport" -#: models.py:1998 +#: models.py:2003 +#, fuzzy +msgid "Remain type" +msgstr "Type d'opération" + +#: models.py:2004 msgid "Unit" msgstr "Unité" -#: models.py:1999 +#: models.py:2005 +#, fuzzy +msgid "Activity type" +msgstr "Type de titre" + +#: models.py:2006 msgid "Material" msgstr "Matériau" -#: models.py:2001 +#: models.py:2008 msgid "Conservatory state" msgstr "État de conservation" -#: models.py:2002 +#: models.py:2009 msgid "Preservation type" msgstr "Type de conservation" -#: models.py:2003 +#: models.py:2010 msgid "Object type" msgstr "Type d'objet" -#: models.py:2005 +#: models.py:2012 msgid "Identification type" msgstr "Type d'identification" -#: models.py:2007 +#: models.py:2014 msgid "Context record relation type" msgstr "Type de relations entre Unités d'Enregistrement" -#: models.py:2008 models.py:2713 +#: models.py:2015 models.py:2722 msgid "Support type" msgstr "Type de support" -#: models.py:2014 +#: models.py:2021 msgid "Integer" msgstr "Entier" -#: models.py:2015 +#: models.py:2022 msgid "Float" msgstr "Nombre à virgule" -#: models.py:2016 +#: models.py:2023 msgid "String" msgstr "Chaîne de caractères" -#: models.py:2017 templates/sheet_ope.html:86 +#: models.py:2024 templates/sheet_ope.html:86 msgid "Date" msgstr "Date" -#: models.py:2019 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2026 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "Année" -#: models.py:2020 +#: models.py:2027 msgid "String to boolean" msgstr "Chaîne de caractères vers booléen" -#: models.py:2021 +#: models.py:2028 msgctxt "filesystem" msgid "File" msgstr "Fichier" -#: models.py:2022 +#: models.py:2029 msgid "Unknow type" msgstr "Type inconnu" -#: models.py:2038 +#: models.py:2045 msgid "4 digit year. e.g.: \"2015\"" msgstr "Année sur 4 chiffres. Exemple : « 2015 »" -#: models.py:2039 +#: models.py:2046 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "Année sur 4 chiffres/mois/jour. Exemple : « 2015/02/04 »" -#: models.py:2040 +#: models.py:2047 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "Jour/mois/année sur 4 chiffres. Exemple : « 04/02/2015 »" -#: models.py:2050 +#: models.py:2057 msgid "Options" msgstr "Options" -#: models.py:2052 +#: models.py:2059 msgid "Split character(s)" msgstr "Caractère(s) de séparation" -#: models.py:2056 +#: models.py:2063 msgid "Importer - Formater type" msgstr "Importeur - Type de mise en forme" -#: models.py:2057 +#: models.py:2064 msgid "Importer - Formater types" msgstr "Importeur - Types de mise en forme" -#: models.py:2104 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2113 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "Créé" -#: models.py:2105 +#: models.py:2114 msgid "Analyse in progress" msgstr "Analyse en cours" -#: models.py:2106 +#: models.py:2115 msgid "Analysed" msgstr "Analysé" -#: models.py:2107 +#: models.py:2116 msgid "Import pending" msgstr "Import en attente" -#: models.py:2108 +#: models.py:2117 msgid "Import in progress" msgstr "Import en cours" -#: models.py:2109 +#: models.py:2118 msgid "Finished with errors" msgstr "Terminé avec des erreurs" -#: models.py:2110 +#: models.py:2119 msgid "Finished" msgstr "Terminé" -#: models.py:2111 +#: models.py:2120 msgid "Archived" msgstr "Archivé" -#: models.py:2123 +#: models.py:2132 msgid "Imported file" msgstr "Fichier importé" -#: models.py:2126 +#: models.py:2135 msgid "Associated images (zip file)" msgstr "Images associées (fichier zip)" -#: models.py:2128 +#: models.py:2137 msgid "Encoding" msgstr "Codage" -#: models.py:2130 +#: models.py:2139 msgid "Skip lines" msgstr "Nombre de lignes d'entête" -#: models.py:2131 templates/ishtar/import_list.html:47 +#: models.py:2140 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "Fichier erreur" -#: models.py:2134 +#: models.py:2143 msgid "Result file" msgstr "Fichier résultant" -#: models.py:2137 templates/ishtar/import_list.html:53 +#: models.py:2146 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "Fichier de correspondance" -#: models.py:2143 +#: models.py:2152 msgid "Conservative import" msgstr "Import conservateur" -#: models.py:2148 +#: models.py:2157 msgid "End date" msgstr "Date de fin" -#: models.py:2150 +#: models.py:2159 msgid "Remaining seconds" msgstr "Secondes restantes" -#: models.py:2155 +#: models.py:2164 msgid "Import" msgstr "Import" -#: models.py:2172 +#: models.py:2181 msgid "Analyse" msgstr "Analyser" -#: models.py:2174 models.py:2177 +#: models.py:2183 models.py:2186 msgid "Re-analyse" msgstr "Analyser de nouveau " -#: models.py:2175 +#: models.py:2184 msgid "Launch import" msgstr "Lancer l'import" -#: models.py:2178 +#: models.py:2187 msgid "Re-import" msgstr "Ré-importer" -#: models.py:2179 +#: models.py:2188 msgid "Archive" msgstr "Archiver" -#: models.py:2181 +#: models.py:2190 msgid "Unarchive" msgstr "Désarchiver" -#: models.py:2182 widgets.py:110 templates/ishtar/form_delete.html:11 +#: models.py:2191 widgets.py:110 templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "Suppression" -#: models.py:2323 +#: models.py:2332 msgid "Organizations" msgstr "Organisations" -#: models.py:2325 +#: models.py:2334 msgid "Can view all Organizations" msgstr "Peut voir toutes les Organisations" -#: models.py:2326 +#: models.py:2335 msgid "Can view own Organization" msgstr "Peut voir sa propre Organisation" -#: models.py:2327 +#: models.py:2336 msgid "Can add own Organization" msgstr "Peut ajouter sa propre Organisation" -#: models.py:2329 +#: models.py:2338 msgid "Can change own Organization" msgstr "Peut modifier sa propre Organisation" -#: models.py:2331 +#: models.py:2340 msgid "Can delete own Organization" msgstr "Peut supprimer sa propre Organisation" -#: models.py:2366 +#: models.py:2375 msgid "Groups" msgstr "Groupes" -#: models.py:2371 +#: models.py:2380 msgid "Person types" msgstr "Types de personne" -#: models.py:2382 +#: models.py:2391 msgid "Title type" msgstr "Type de titre" -#: models.py:2383 +#: models.py:2392 msgid "Title types" msgstr "Types de titre" -#: models.py:2392 +#: models.py:2401 msgid "Mr" msgstr "M." -#: models.py:2393 +#: models.py:2402 msgid "Miss" msgstr "Mlle" -#: models.py:2394 +#: models.py:2403 msgid "Mr and Mrs" msgstr "M. et Mme" -#: models.py:2395 +#: models.py:2404 msgid "Mrs" msgstr "Mme" -#: models.py:2396 +#: models.py:2405 msgid "Doctor" msgstr "Dr." -#: models.py:2426 +#: models.py:2435 msgid "Contact type" msgstr "Type de contact" -#: models.py:2429 models.py:2493 +#: models.py:2438 models.py:2502 msgid "Types" msgstr "Types" -#: models.py:2432 +#: models.py:2441 msgid "Is attached to" msgstr "Est rattaché à" -#: models.py:2437 +#: models.py:2446 msgid "Persons" msgstr "Personnes" -#: models.py:2439 +#: models.py:2448 msgid "Can view all Persons" msgstr "Peut voir toutes les Personnes" -#: models.py:2440 +#: models.py:2449 msgid "Can view own Person" msgstr "Peut voir sa propre Personne" -#: models.py:2441 +#: models.py:2450 msgid "Can add own Person" msgstr "Peut ajouter sa propre Personne" -#: models.py:2442 +#: models.py:2451 msgid "Can change own Person" msgstr "Peut modifier sa propre Personne" -#: models.py:2443 +#: models.py:2452 msgid "Can delete own Person" msgstr "Peut supprimer sa propre Personne" -#: models.py:2621 +#: models.py:2630 msgid "Advanced shortcut menu" msgstr "Menu de raccourci (avancé)" -#: models.py:2624 +#: models.py:2633 msgid "Ishtar user" msgstr "Utilisateur d'Ishtar" -#: models.py:2625 +#: models.py:2634 msgid "Ishtar users" msgstr "Utilisateurs d'Ishtar" -#: models.py:2668 +#: models.py:2677 msgid "To modify the password use the form in Auth > User" msgstr "" "Pour modifier le mot de passe, utilisez le formulaire dans Authentification " "> Utilisateurs" -#: models.py:2674 +#: models.py:2683 msgid "Author types" msgstr "Types d'auteur" -#: models.py:2706 +#: models.py:2715 msgid "Source types" msgstr "Types de document" -#: models.py:2714 +#: models.py:2723 msgid "Support types" msgstr "Types de support" -#: models.py:2722 +#: models.py:2731 msgid "Formats" msgstr "Formats" -#: models.py:2729 +#: models.py:2738 msgid "External ID" msgstr "Identifiant externe" -#: models.py:2732 +#: models.py:2741 msgid "Support" msgstr "Support" -#: models.py:2736 +#: models.py:2745 msgid "Scale" msgstr "Échelle" -#: models.py:2750 +#: models.py:2759 msgid "Item number" msgstr "Numéro d'élément" -#: models.py:2751 +#: models.py:2760 msgid "Ref." msgstr "Réf." -#: models.py:2754 +#: models.py:2763 msgid "Internal ref." msgstr "Réf. interne" -#: models.py:2797 +#: models.py:2806 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:2798 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2807 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "Localisation" -#: models.py:2823 +#: models.py:2832 msgid "Is preventive" msgstr "Est du préventif" -#: models.py:2827 +#: models.py:2836 msgid "Operation types" msgstr "Types d'opération" -#: models.py:2856 +#: models.py:2865 msgid "Preventive" msgstr "Préventif" -#: models.py:2857 +#: models.py:2866 msgid "Research" msgstr "Programmé" @@ -1461,44 +1471,48 @@ msgstr "Unité d'Enregistrement" msgid "Find" msgstr "Mobilier" -#: views.py:1249 views.py:1292 +#: views.py:1256 views.py:1299 msgid "Operation not permitted." msgstr "Opération non permise." -#: views.py:1251 +#: views.py:1258 #, python-format msgid "New %s" msgstr "Nouveau %s" -#: views.py:1311 views.py:1364 +#: views.py:1318 views.py:1371 msgid "Operations" msgstr "Opérations" -#: views.py:1563 templates/ishtar/import_list.html:43 +#: views.py:1322 views.py:1378 +msgid "Finds" +msgstr "Mobilier" + +#: views.py:1570 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "Associer les éléments non rapprochés" -#: views.py:1578 +#: views.py:1585 msgid "Delete import" msgstr "Suppression de l'import" -#: views.py:1617 +#: views.py:1624 msgid "Merge persons" msgstr "Fusionner des personnes" -#: views.py:1641 +#: views.py:1648 msgid "Select the main person" msgstr "Choisir la personne principale" -#: views.py:1650 +#: views.py:1657 msgid "Merge organization" msgstr "Fusionner des organisations" -#: views.py:1660 +#: views.py:1667 msgid "Select the main organization" msgstr "Sélectionner l'organisation principale" -#: views.py:1700 views.py:1716 +#: views.py:1707 views.py:1723 msgid "Corporation manager" msgstr "Représentant de la personne morale" @@ -1735,7 +1749,8 @@ msgid "Operator's reference code:" msgstr "Référence de l'opérateur :" #: templates/sheet_ope.html:36 -msgid "Town planning service:" +#, fuzzy +msgid "Planning service:" msgstr "Service instructeur :" #: templates/sheet_ope.html:37 @@ -2125,11 +2140,13 @@ msgid "No person in this organization" msgstr "Pas de personne au sein de cette organisation" #: templates/ishtar/sheet_organization.html:38 -msgid "General contractor organization of archaelogical files" +#, fuzzy +msgid "General contractor organization of archaeological files" msgstr "Aménageur (organisation) pour les dossiers archéologiques" #: templates/ishtar/sheet_organization.html:43 -msgid "Town planning service of archaelogical files" +#, fuzzy +msgid "Planning service of archaeological files" msgstr "Service instructeur pour les dossiers archéologiques" #: templates/ishtar/sheet_person.html:21 @@ -2160,15 +2177,19 @@ msgid "Associated operations as responsible" msgstr "Opérations associées en tant que responsable" #: templates/ishtar/sheet_person.html:80 -msgid "In charge of archaelogical files" -msgstr "Responsable des dossiers archéologiques" +#: templates/ishtar/wizard/wizard_person_deletion.html:6 +msgid "In charge of archaeological files" +msgstr "Responsable des dossiers" #: templates/ishtar/sheet_person.html:85 -msgid "General contractor of archaelogical files" -msgstr "Aménageur des dossiers archéologiques" +#: templates/ishtar/wizard/wizard_person_deletion.html:14 +msgid "General contractor of archaeological files" +msgstr "Aménageur des dossiers" #: templates/ishtar/sheet_person.html:90 -msgid "Responsible for town planning service of archaelogical files" +#: templates/ishtar/wizard/wizard_person_deletion.html:22 +#, fuzzy +msgid "Responsible for planning service of archaeological files" msgstr "Responsable au service instructeur des dossiers" #: templates/ishtar/sheet_person.html:96 @@ -2453,18 +2474,6 @@ msgstr "Opérateur des opérations" msgid "Adminact: operator of archaeological operations" msgstr "Acte administratif : opérateur des opérations" -#: templates/ishtar/wizard/wizard_person_deletion.html:6 -msgid "In charge of archaeological files" -msgstr "Responsable des dossiers" - -#: templates/ishtar/wizard/wizard_person_deletion.html:14 -msgid "General contractor of archaeological files" -msgstr "Aménageur des dossiers" - -#: templates/ishtar/wizard/wizard_person_deletion.html:22 -msgid "Responsible town planning service of archaeological files" -msgstr "Responsable au service instructeur des dossiers" - #: templates/ishtar/wizard/wizard_person_deletion.html:30 msgid "Scientist in charge of archaeological files" msgstr "Responsable scientifique des dossiers" @@ -2612,3 +2621,12 @@ msgid "You are now registered. Activation email sent." msgstr "" "Vous êtes maintenant enregistré. Un courriel d'activation de votre compte " "vous a été envoyé." + +#~ msgid "In charge of archaelogical files" +#~ msgstr "Responsable des dossiers archéologiques" + +#~ msgid "General contractor of archaelogical files" +#~ msgstr "Aménageur des dossiers archéologiques" + +#~ msgid "Responsible for town planning service of archaelogical files" +#~ msgstr "Responsable au service instructeur des dossiers" -- cgit v1.2.3 From cdc78be87e57b871f1c535a13dbd46b98714f2c5 Mon Sep 17 00:00:00 2001 From: Valérie-Emma Leroux Date: Mon, 14 Nov 2016 22:17:04 +0100 Subject: Update labels --- archaeological_context_records/forms.py | 2 +- archaeological_files/models.py | 10 +++++----- archaeological_files/wizards.py | 4 ++-- archaeological_finds/forms.py | 4 ++-- archaeological_operations/forms.py | 8 ++++---- archaeological_operations/models.py | 2 +- archaeological_operations/wizards.py | 4 ++-- ishtar_common/forms_common.py | 2 +- ishtar_common/ishtar_menu.py | 2 +- ishtar_common/templates/base.html | 4 ++-- ishtar_common/templates/ishtar/blocks/window_nav.html | 2 +- ishtar_common/templates/ishtar/wizard/default_wizard.html | 2 +- 12 files changed, 23 insertions(+), 23 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index 3b99042ec..f47f41614 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -66,7 +66,7 @@ class RecordSelect(TableSelect): operation__operation_code = forms.IntegerField( label=_(u"Operation's number (index by year)")) archaeological_sites = forms.IntegerField( - label=_("Archaelogical site"), + label=_("Archaeological site"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-archaeologicalsite'), associated_model=ArchaeologicalSite), diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 7f5655c0c..330fe019a 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -220,13 +220,13 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, verbose_name = _(u"Archaeological file") verbose_name_plural = _(u"Archaeological files") permissions = ( - ("view_file", ugettext(u"Can view all Archaelogical files")), - ("view_own_file", ugettext(u"Can view own Archaelogical file")), - ("add_own_file", ugettext(u"Can add own Archaelogical file")), + ("view_file", ugettext(u"Can view all Archaeological files")), + ("view_own_file", ugettext(u"Can view own Archaeological file")), + ("add_own_file", ugettext(u"Can add own Archaeological file")), ("change_own_file", - ugettext(u"Can change own Archaelogical file")), + ugettext(u"Can change own Archaeological file")), ("delete_own_file", - ugettext(u"Can delete own Archaelogical file")), + ugettext(u"Can delete own Archaeological file")), ("close_file", ugettext(u"Can close File")), ) ordering = ('cached_label',) diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py index ea06a48f7..4c3a13ee2 100644 --- a/archaeological_files/wizards.py +++ b/archaeological_files/wizards.py @@ -151,7 +151,7 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard): file_id = self.session_get_value(form_key, "pk") try: return ( - (_(u"Archaelogical file"), + (_(u"Archaeological file"), unicode(models.File.objects.get(pk=file_id))),) except models.File.DoesNotExist: return @@ -161,7 +161,7 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard): admin = AdministrativeAct.objects.get(pk=admin_id) if not admin.associated_file: return - return ((_(u"Archaelogical file"), + return ((_(u"Archaeological file"), unicode(admin.associated_file)),) except AdministrativeAct.DoesNotExist: return diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 724576ec6..2a297ea12 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -227,7 +227,7 @@ class FindSelect(TableSelect): widget=OAWidget ) archaeological_sites = forms.IntegerField( - label=_("Archaelogical site"), + label=_("Archaeological site"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-archaeologicalsite'), associated_model=ArchaeologicalSite), @@ -510,7 +510,7 @@ class NewFindBasketForm(forms.ModelForm): q = models.FindBasket.objects.filter(user=self.user, label=self.cleaned_data['label']) if q.count(): - raise forms.ValidationError(_(u"Another basket already exist with " + raise forms.ValidationError(_(u"Another basket already exists with " u"this name.")) return self.cleaned_data diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index c8bb5e8a1..8d900036d 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -515,7 +515,7 @@ class OperationSelect(TableSelect): choices=[]) virtual_operation = forms.NullBooleanField(label=_(u"Virtual operation")) archaeological_sites = forms.IntegerField( - label=_("Archaelogical site"), + label=_("Archaeological site"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-archaeologicalsite'), associated_model=models.ArchaeologicalSite), @@ -637,7 +637,7 @@ class OperationFormFileChoice(forms.Form): associated_models = {'associated_file': File, } currents = {'associated_file': File} associated_file = forms.IntegerField( - label=_(u"Archaelogical file"), + label=_(u"Archaeological file"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-file'), associated_model=File), validators=[valid_id(File)], required=False) @@ -930,7 +930,7 @@ class OperationFormModifGeneral(OperationFormGeneral): required=False) currents = {'associated_file': File} associated_file = forms.IntegerField( - label=_(u"Archaelogical file"), + label=_(u"Archaeological file"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-file'), associated_model=File), @@ -1143,7 +1143,7 @@ class ArchaeologicalSiteBasicForm(forms.Form): base_model = 'archaeological_site' associated_models = {'archaeological_site': models.ArchaeologicalSite} archaeological_site = forms.IntegerField( - label=_("Archaelogical site"), + label=_("Archaeological site"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-archaeologicalsite'), associated_model=models.ArchaeologicalSite, diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 1e108e98c..c54a060cb 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -987,7 +987,7 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): 'archaeological_files.File', blank=True, null=True, related_name='administrative_act', - verbose_name=_(u"Archaelogical file")) + verbose_name=_(u"Archaeological file")) signature_date = models.DateField(_(u"Signature date"), blank=True, null=True) year = models.IntegerField(_(u"Year"), blank=True, null=True) diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index c5ddc64e5..ece14d1d2 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -73,7 +73,7 @@ class OperationWizard(Wizard): def get_reminder(self): archaeological_file = self.get_current_file() if archaeological_file: - return ((_("Archaelogical file"), + return ((_("Archaeological file"), unicode(archaeological_file)),) def get_context_data(self, form, **kwargs): @@ -196,7 +196,7 @@ class OperationWizard(Wizard): has_no_af = [form.prefix for form in forms if form.prefix == 'townsgeneral-operation'] and True if has_no_af: - datas = [[_(u"Warning: No Archaelogical File is provided. " + datas = [[_(u"Warning: No Archaeological File is provided. " u"If you have forget it return to the first step."), []]]\ + datas return datas diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 82849d21c..7ab09f9f7 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -40,7 +40,7 @@ from forms import FinalForm, FormSet, reverse_lazy, name_validator, \ def get_town_field(label=_(u"Town"), required=True): help_text = _( - u"

      Type name, department code and/or postal code of the " + u"

      Type name, department code of the " u"town you would like to select. The search is insensitive to case." u"

      \n

      Only the first twenty results are displayed but specifying " u"the department code is generally sufficient to get the appropriate " diff --git a/ishtar_common/ishtar_menu.py b/ishtar_common/ishtar_menu.py index a733ea612..5ed8cad37 100644 --- a/ishtar_common/ishtar_menu.py +++ b/ishtar_common/ishtar_menu.py @@ -30,7 +30,7 @@ MENU_SECTIONS = [ childs=[ SectionItem( 'account', _(u"Account"), - childs=[MenuItem('account_management', _(u"Add/modify"), + childs=[MenuItem('account_management', _(u"Addition/modification"), model=models.IshtarUser, access_controls=['add_ishtaruser', ]), MenuItem('account_deletion', _(u"Deletion"), diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html index 7101ed7de..dcd3043ca 100644 --- a/ishtar_common/templates/base.html +++ b/ishtar_common/templates/base.html @@ -38,8 +38,8 @@ var get_find_url = '{% url "get-find-shortcut" %}'; var activate_all_search_url = '{% url "activate-all-search" %}'; var activate_own_search_url = '{% url "activate-own-search" %}'; - var activate_all_search_msg = "{% trans 'Searches in the shortcut menu deals with all items.' %}"; - var activate_own_search_msg = "{% trans 'Searches in the shortcut menu deals with only your items.' %}"; + var activate_all_search_msg = "{% trans 'Searches in the shortcut menu deal with all items.' %}"; + var activate_own_search_msg = "{% trans 'Searches in the shortcut menu deal with only your items.' %}"; diff --git a/ishtar_common/templates/ishtar/blocks/window_nav.html b/ishtar_common/templates/ishtar/blocks/window_nav.html index 4ce316217..3c52063f4 100644 --- a/ishtar_common/templates/ishtar/blocks/window_nav.html +++ b/ishtar_common/templates/ishtar/blocks/window_nav.html @@ -14,7 +14,7 @@ {% endif %} {% if next %} - + diff --git a/ishtar_common/templates/ishtar/wizard/default_wizard.html b/ishtar_common/templates/ishtar/wizard/default_wizard.html index 6491b7a0f..c52d71536 100644 --- a/ishtar_common/templates/ishtar/wizard/default_wizard.html +++ b/ishtar_common/templates/ishtar/wizard/default_wizard.html @@ -55,7 +55,7 @@ $(document).ready(function(){ $('form :input').change(function(){form_changed=true;}); $('.change_step').click(function(){ if(!form_changed || - confirm("{% trans "The form has changed if you don't validate it all your changes will be lost." %}")){ + confirm("{% trans "The form has changed. If you don't validate it, all your changes will be lost." %}")){ return true; } return false; -- cgit v1.2.3 From 7fe3705f76e472bb2f3f00d656fd0da1aaaea493 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 14 Nov 2016 22:51:17 +0100 Subject: Generate translation files --- archaeological_context_records/locale/django.pot | 3 +- archaeological_files/locale/django.pot | 17 ++++------ archaeological_files_pdl/locale/django.pot | 1 - archaeological_finds/locale/django.pot | 5 ++- archaeological_operations/locale/django.pot | 19 ++++------- ishtar_common/locale/django.pot | 17 +++++----- translations/fr/archaeological_context_records.po | 11 +++--- translations/fr/archaeological_files.po | 33 +++++++++++------- translations/fr/archaeological_files_pdl.po | 8 +++-- translations/fr/archaeological_finds.po | 14 +++++--- translations/fr/archaeological_operations.po | 41 ++++++++++++----------- translations/fr/archaeological_warehouse.po | 8 +++-- translations/fr/ishtar_common.po | 39 +++++++++++++-------- 13 files changed, 117 insertions(+), 99 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index f6189b42c..7793cc906 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -3,7 +3,6 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2015. # Valérie-Emma Leroux , 2016. #zanata -# Étienne Loks , 2016. #zanata msgid "" msgstr "" @@ -28,7 +27,7 @@ msgid "Operation's number (index by year)" msgstr "" #: forms.py:69 -msgid "Archaelogical site" +msgid "Archaeological site" msgstr "" #: forms.py:75 diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot index 361a0e7fc..97541ac1e 100644 --- a/archaeological_files/locale/django.pot +++ b/archaeological_files/locale/django.pot @@ -248,7 +248,8 @@ msgstr "" msgid "File permit reference" msgstr "" -#: ishtar_menu.py:33 models.py:220 templates/ishtar/sheet_file.html:4 +#: ishtar_menu.py:33 models.py:220 wizards.py:154 wizards.py:164 +#: templates/ishtar/sheet_file.html:4 msgid "Archaeological file" msgstr "" @@ -378,23 +379,23 @@ msgid "Imported line" msgstr "" #: models.py:223 -msgid "Can view all Archaelogical files" +msgid "Can view all Archaeological files" msgstr "" #: models.py:224 -msgid "Can view own Archaelogical file" +msgid "Can view own Archaeological file" msgstr "" #: models.py:225 -msgid "Can add own Archaelogical file" +msgid "Can add own Archaeological file" msgstr "" #: models.py:227 -msgid "Can change own Archaelogical file" +msgid "Can change own Archaeological file" msgstr "" #: models.py:229 -msgid "Can delete own Archaelogical file" +msgid "Can delete own Archaeological file" msgstr "" #: models.py:230 @@ -457,10 +458,6 @@ msgstr "" msgid "Associated operations" msgstr "" -#: wizards.py:154 wizards.py:164 -msgid "Archaelogical file" -msgstr "" - #: templates/ishtar/administrativeact_document.html:9 msgid "Document generation" msgstr "" diff --git a/archaeological_files_pdl/locale/django.pot b/archaeological_files_pdl/locale/django.pot index f86c85ac8..24d70d743 100644 --- a/archaeological_files_pdl/locale/django.pot +++ b/archaeological_files_pdl/locale/django.pot @@ -2,7 +2,6 @@ # Copyright (C) 2014 # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2014. -# Étienne Loks , 2015. #zanata # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index d9903354c..7cbf00077 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -2,7 +2,6 @@ # Copyright (C) 2010-2015 # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2015. -# Étienne Loks , 2015. #zanata # Valérie-Emma Leroux , 2016. #zanata # Étienne Loks , 2016. #zanata msgid "" @@ -184,7 +183,7 @@ msgid "Code PATRIARCHE" msgstr "" #: forms.py:230 -msgid "Archaelogical site" +msgid "Archaeological site" msgstr "" #: forms.py:236 @@ -272,7 +271,7 @@ msgid "You should select a document." msgstr "" #: forms.py:513 -msgid "Another basket already exist with this name." +msgid "Another basket already exists with this name." msgstr "" #: forms.py:523 ishtar_menu.py:60 diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index 09c184231..12be6902e 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -200,8 +200,8 @@ msgstr "" msgid "Virtual operation" msgstr "" -#: forms.py:518 forms.py:1146 -msgid "Archaelogical site" +#: forms.py:518 forms.py:1142 forms.py:1146 models.py:93 +msgid "Archaeological site" msgstr "" #: forms.py:524 forms.py:1273 @@ -244,8 +244,9 @@ msgstr "" msgid "Associated file" msgstr "" -#: forms.py:640 forms.py:933 models.py:990 wizards.py:76 -msgid "Archaelogical file" +#: forms.py:640 forms.py:933 models.py:493 models.py:883 models.py:990 +#: wizards.py:76 +msgid "Archaeological file" msgstr "" #: forms.py:647 forms.py:649 models.py:349 @@ -458,10 +459,6 @@ msgstr "" msgid "This reference already exists." msgstr "" -#: forms.py:1142 models.py:93 -msgid "Archaeological site" -msgstr "" - #: forms.py:1157 models.py:94 models.py:339 #: templates/ishtar/sheet_operation.html:94 msgid "Archaeological sites" @@ -802,10 +799,6 @@ msgstr "" msgid "Intercommunal" msgstr "" -#: models.py:493 models.py:883 -msgid "Archaeological file" -msgstr "" - #: models.py:494 msgid "Code patriarche" msgstr "" @@ -1089,7 +1082,7 @@ msgstr "" #: wizards.py:199 msgid "" -"Warning: No Archaelogical File is provided. If you have forget it return to " +"Warning: No Archaeological File is provided. If you have forget it return to " "the first step." msgstr "" diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 094041952..e08650308 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -168,8 +168,8 @@ msgstr "" #: forms_common.py:43 msgid "" -"

      Type name, department code and/or postal code of the town you would like " -"to select. The search is insensitive to case.

      \n" +"

      Type name, department code of the town you would like to select. The " +"search is insensitive to case.

      \n" "

      Only the first twenty results are displayed but specifying the department " "code is generally sufficient to get the appropriate result.

      \n" "

      For instance type \"saint denis 93\" for getting the " @@ -498,7 +498,7 @@ msgid "Administration" msgstr "" #: ishtar_menu.py:33 -msgid "Add/modify" +msgid "Addition/modification" msgstr "" #: ishtar_menu.py:36 ishtar_menu.py:70 ishtar_menu.py:101 @@ -1529,11 +1529,11 @@ msgid "The %(app_name)s team" msgstr "" #: templates/base.html:41 -msgid "Searches in the shortcut menu deals with all items." +msgid "Searches in the shortcut menu deal with all items." msgstr "" #: templates/base.html:42 -msgid "Searches in the shortcut menu deals with only your items." +msgid "Searches in the shortcut menu deal with only your items." msgstr "" #: templates/base.html:49 @@ -2199,8 +2199,8 @@ msgstr "" #: templates/ishtar/blocks/window_nav.html:17 msgid "" -"Are you sure to restore to this version? All changement made since this " -"version will be lost." +"Are you sure to restore to this version? All changes made since this version " +"will be lost." msgstr "" #: templates/ishtar/blocks/window_nav.html:22 @@ -2340,7 +2340,8 @@ msgstr "" #: templates/ishtar/wizard/default_wizard.html:58 msgid "" -"The form has changed if you don't validate it all your changes will be lost." +"The form has changed. If you don't validate it, all your changes will be " +"lost." msgstr "" #: templates/ishtar/wizard/parcels_wizard.html:12 diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 7b4fd2c95..875f0d210 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-14 22:28+0100\n" "PO-Revision-Date: 2016-11-14 03:46-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -36,7 +38,8 @@ msgid "Operation's number (index by year)" msgstr "Numéro de l'opération (index par année)" #: forms.py:69 -msgid "Archaelogical site" +#, fuzzy +msgid "Archaeological site" msgstr "Entité Archéologique" #: forms.py:75 diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 784e0ec63..8b38c7ab5 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-14 22:28+0100\n" "PO-Revision-Date: 2016-11-14 03:47-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -257,7 +259,8 @@ msgstr "Dossier : responsable" msgid "File permit reference" msgstr "Dossier : réf. du permis" -#: ishtar_menu.py:33 models.py:220 templates/ishtar/sheet_file.html:4 +#: ishtar_menu.py:33 models.py:220 wizards.py:154 wizards.py:164 +#: templates/ishtar/sheet_file.html:4 msgid "Archaeological file" msgstr "Dossier" @@ -387,23 +390,28 @@ msgid "Imported line" msgstr "Ligne importée" #: models.py:223 -msgid "Can view all Archaelogical files" +#, fuzzy +msgid "Can view all Archaeological files" msgstr "Peut voir tous les Dossiers" #: models.py:224 -msgid "Can view own Archaelogical file" +#, fuzzy +msgid "Can view own Archaeological file" msgstr "Peut voir son propre Dossier" #: models.py:225 -msgid "Can add own Archaelogical file" +#, fuzzy +msgid "Can add own Archaeological file" msgstr "Peut ajouter son propre Dossier" #: models.py:227 -msgid "Can change own Archaelogical file" +#, fuzzy +msgid "Can change own Archaeological file" msgstr "Peut modifier son propre Dossier" #: models.py:229 -msgid "Can delete own Archaelogical file" +#, fuzzy +msgid "Can delete own Archaeological file" msgstr "Peut supprimer son propre Dossier" #: models.py:230 @@ -466,10 +474,6 @@ msgstr "Dossier : suppression d'acte administratif" msgid "Associated operations" msgstr "Opérations associées" -#: wizards.py:154 wizards.py:164 -msgid "Archaelogical file" -msgstr "Dossier" - #: templates/ishtar/administrativeact_document.html:9 msgid "Document generation" msgstr "Génération de document" @@ -673,3 +677,6 @@ msgstr "communes principales en nombre" #: templates/ishtar/dashboards/dashboard_file.html:220 msgid "main towns by surface (ha)" msgstr "communes principales en surface (ha)" + +#~ msgid "Archaelogical file" +#~ msgstr "Dossier" diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index 80fc338aa..eceb0cb20 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-14 22:28+0100\n" "PO-Revision-Date: 2016-11-14 03:48-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 22efd2e37..6cdc23d4c 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -6,13 +6,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-14 22:28+0100\n" "PO-Revision-Date: 2016-11-14 03:48-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -194,7 +196,8 @@ msgid "Code PATRIARCHE" msgstr "Code PATRIARCHE" #: forms.py:230 -msgid "Archaelogical site" +#, fuzzy +msgid "Archaeological site" msgstr "Entité Archéologique" #: forms.py:236 @@ -282,7 +285,8 @@ msgid "You should select a document." msgstr "Vous devez sélectionner un document." #: forms.py:513 -msgid "Another basket already exist with this name." +#, fuzzy +msgid "Another basket already exists with this name." msgstr "Un autre panier existe déjà avec ce nom." #: forms.py:523 ishtar_menu.py:60 diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index dbc8acbf8..e741c8830 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-14 22:28+0100\n" "PO-Revision-Date: 2016-11-14 03:52-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -209,9 +211,9 @@ msgstr "Traitement du rapport" msgid "Virtual operation" msgstr "Opération virtuelle" -#: forms.py:518 forms.py:1146 -msgid "Archaelogical site" -msgstr "Entité Archéologique" +#: forms.py:518 forms.py:1142 forms.py:1146 models.py:93 +msgid "Archaeological site" +msgstr "Entité archéologique" #: forms.py:524 forms.py:1273 msgid "Created by" @@ -253,9 +255,10 @@ msgstr "Rechercher une opération" msgid "Associated file" msgstr "Dossier associé" -#: forms.py:640 forms.py:933 models.py:990 wizards.py:76 -msgid "Archaelogical file" -msgstr "Dossier" +#: forms.py:640 forms.py:933 models.py:493 models.py:883 models.py:990 +#: wizards.py:76 +msgid "Archaeological file" +msgstr "Dossier archéologique" #: forms.py:647 forms.py:649 models.py:349 msgid "Abstract" @@ -388,8 +391,7 @@ msgstr "" #: forms.py:891 msgid "The excavation end date cannot be before the start date." -msgstr "" -"La date de fin de chantier ne peut être antérieure à la date de début." +msgstr "La date de fin de chantier ne peut être antérieure à la date de début." #: forms.py:919 #, python-format @@ -474,10 +476,6 @@ msgstr "Référence" msgid "This reference already exists." msgstr "Cette référence existe déjà." -#: forms.py:1142 models.py:93 -msgid "Archaeological site" -msgstr "Entité archéologique" - #: forms.py:1157 models.py:94 models.py:339 #: templates/ishtar/sheet_operation.html:94 msgid "Archaeological sites" @@ -824,10 +822,6 @@ msgstr "OPE" msgid "Intercommunal" msgstr "Intercommunal" -#: models.py:493 models.py:883 -msgid "Archaeological file" -msgstr "Dossier archéologique" - #: models.py:494 msgid "Code patriarche" msgstr "Code patriarche" @@ -1110,8 +1104,9 @@ msgid "Add" msgstr "Ajouter" #: wizards.py:199 +#, fuzzy msgid "" -"Warning: No Archaelogical File is provided. If you have forget it return to " +"Warning: No Archaeological File is provided. If you have forget it return to " "the first step." msgstr "" "Attention : Aucun dossier archéologique n'a été précisé. S'il s'agit d'un " @@ -1523,3 +1518,9 @@ msgstr "communes principales par coût" #: templates/ishtar/wizard/wizard_adminact_deletion.html:6 msgid "This act is indexed!" msgstr "Cet acte est indexé !" + +#~ msgid "Archaelogical site" +#~ msgstr "Entité Archéologique" + +#~ msgid "Archaelogical file" +#~ msgstr "Dossier" diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index c97ae6a4f..7a7c62fb5 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-14 22:28+0100\n" "PO-Revision-Date: 2016-11-14 03:41-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index b1fe6b3b0..a70847aa7 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-14 22:28+0100\n" "PO-Revision-Date: 2016-11-14 04:01-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -181,9 +183,10 @@ msgid "Town" msgstr "Commune" #: forms_common.py:43 +#, fuzzy msgid "" -"

      Type name, department code and/or postal code of the town you would like " -"to select. The search is insensitive to case.

      \n" +"

      Type name, department code of the town you would like to select. The " +"search is insensitive to case.

      \n" "

      Only the first twenty results are displayed but specifying the department " "code is generally sufficient to get the appropriate result.

      \n" "

      For instance type \"saint denis 93\" for getting the " @@ -523,8 +526,9 @@ msgid "Administration" msgstr "Administration" #: ishtar_menu.py:33 -msgid "Add/modify" -msgstr "Ajouter/Modifier" +#, fuzzy +msgid "Addition/modification" +msgstr "Modifier une organisation" #: ishtar_menu.py:36 ishtar_menu.py:70 ishtar_menu.py:101 msgid "Deletion" @@ -1577,12 +1581,13 @@ msgid "The %(app_name)s team" msgstr "L'équipe %(app_name)s" #: templates/base.html:41 -msgid "Searches in the shortcut menu deals with all items." -msgstr "" -"Les recherches dans le menu de raccourci concernent tous les éléments." +#, fuzzy +msgid "Searches in the shortcut menu deal with all items." +msgstr "Les recherches dans le menu de raccourci concernent tous les éléments." #: templates/base.html:42 -msgid "Searches in the shortcut menu deals with only your items." +#, fuzzy +msgid "Searches in the shortcut menu deal with only your items." msgstr "" "Les recherches dans le menu de raccourci ne concernent que vos éléments." @@ -2259,9 +2264,10 @@ msgid "Restore this version" msgstr "Restaurer cette version" #: templates/ishtar/blocks/window_nav.html:17 +#, fuzzy msgid "" -"Are you sure to restore to this version? All changement made since this " -"version will be lost." +"Are you sure to restore to this version? All changes made since this version " +"will be lost." msgstr "" "Êtes-vous cerrtain de vouloir revenir à cette version ? Tous les changements " "réalisées depuis cette version seront perdus." @@ -2404,8 +2410,10 @@ msgid "Add/Modify" msgstr "Ajouter/Modifier" #: templates/ishtar/wizard/default_wizard.html:58 +#, fuzzy msgid "" -"The form has changed if you don't validate it all your changes will be lost." +"The form has changed. If you don't validate it, all your changes will be " +"lost." msgstr "" "Le formulaire a changé. Si vous ne le validez pas, tous vos changements " "seront perdus." @@ -2615,3 +2623,6 @@ msgid "You are now registered. Activation email sent." msgstr "" "Vous êtes maintenant enregistré. Un courriel d'activation de votre compte " "vous a été envoyé." + +#~ msgid "Add/modify" +#~ msgstr "Ajouter/Modifier" -- cgit v1.2.3 From 64101d6c9112110420c077f26146f879ffec349d Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 15 Nov 2016 16:41:27 +0100 Subject: Shortcut menu: put research archaeological files in blue (refs #3346) --- archaeological_files/models.py | 4 +++- ishtar_common/static/media/style.css | 13 ++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 330fe019a..638b19d18 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -352,7 +352,9 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, cache_key, val = get_cache(self.__class__, [self.pk, 'short_class_name']) cls = 'normal' - if not self.has_adminact and self.reception_date: + if not self.file_type.txt_idx == 'preventive': + cls = "blue" + elif not self.has_adminact and self.reception_date: delta = datetime.date.today() - self.reception_date cls = 'red' if self.saisine_type and self.saisine_type.delay: diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css index 00fed380d..b1939eaf0 100644 --- a/ishtar_common/static/media/style.css +++ b/ishtar_common/static/media/style.css @@ -60,6 +60,10 @@ a.add-button, color:#000; } +#context_menu .blue { + color:#00a8ff; +} + .chosen-container, #context_menu .green, #context_menu .red, @@ -272,7 +276,9 @@ button.ui-widget-header:hover { .chosen-container-single .chosen-single{ background: none; background-color: #fff; - border-radius:4px; + border-radius: 0; + box-shadow: none; + border: 1px solid #fff; } textarea, @@ -847,6 +853,11 @@ ul.form .help_text{ .autocomplete{ width:350px; + font-size: 13px; +} + +#current_items .autocomplete{ + width:400px; } .delete td{ -- cgit v1.2.3 From 8b666443667f92e014d70a4247c7885375bba610 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 30 Nov 2016 13:20:53 +0100 Subject: Simple treatment form. Treatment listing. (refs #3365) --- archaeological_finds/forms.py | 23 ++++++++++-- archaeological_finds/ishtar_menu.py | 36 +++++++++++++++---- archaeological_finds/models.py | 15 ++++++-- archaeological_finds/tests.py | 54 +++++++++++++++++++++++++++- archaeological_finds/urls.py | 14 ++++++-- archaeological_finds/views.py | 15 ++++++-- archaeological_finds/wizards.py | 25 +++++++++++-- archaeological_operations/tests.py | 71 ++++++++++++++++++++----------------- ishtar_common/tests.py | 31 +++++++++++++++- ishtar_common/views.py | 2 ++ ishtar_common/widgets.py | 2 ++ ishtar_common/wizards.py | 9 ++++- 12 files changed, 243 insertions(+), 54 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 800fba34f..e25d52805 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -460,6 +460,8 @@ class UpstreamFindFormSelection(FindFormSelection): def __init__(self, *args, **kwargs): super(UpstreamFindFormSelection, self).__init__(*args, **kwargs) self.fields['pk'].required = True + self.fields['resulting_pk'] = self.fields.pop('pk') + ############################################## # Source management for archaeological finds # @@ -576,6 +578,18 @@ class FindBasketAddItemForm(forms.Form): return basket +class TreatmentFormSelection(forms.Form): + form_label = _("Treatment search") + associated_models = {'pk': models.Treatment} + currents = {'pk': models.Treatment} + pk = forms.IntegerField( + label="", required=False, + widget=widgets.JQueryJqGrid( + reverse_lazy('get-treatment'), + FindSelect, models.Treatment), + validators=[valid_id(models.Treatment)]) + + class BaseTreatmentForm(ManageOldType, SelectFindBasketForm): form_label = _(u"Base treatment") associated_models = {'treatment_type': models.TreatmentType, @@ -606,12 +620,17 @@ class BaseTreatmentForm(ManageOldType, SelectFindBasketForm): super(BaseTreatmentForm, self).__init__(*args, **kwargs) self.fields['treatment_type'].choices = models.TreatmentType.get_types( initial=self.init_data.get('treatment_type'), - exclude=['packaging']) + dct={'upstream_is_many': False, 'downstream_is_many': False} + ) self.fields['treatment_type'].help_text = \ - models.TreatmentType.get_help(exclude=['packaging']) + models.TreatmentType.get_help( + dct={'upstream_is_many': False, 'downstream_is_many': False}) self.fields['basket'].required = False self.fields['basket'].help_text = \ _(u"Leave it blank if you want to select a single item") + self.fields.keyOrder.pop(self.fields.keyOrder.index('basket')) + self.fields.keyOrder.insert(self.fields.keyOrder.index('description'), + 'basket') def clean(self, *args, **kwargs): try: diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py index f638a60b2..1ab0cb575 100644 --- a/archaeological_finds/ishtar_menu.py +++ b/archaeological_finds/ishtar_menu.py @@ -46,11 +46,6 @@ MENU_SECTIONS = [ model=models.Find, access_controls=['change_find', 'change_own_find']), - # MenuItem( - # 'treatment_creation', _(u"Add a treatment"), - # model=models.Treatment, - # access_controls=['change_find', - # 'change_own_find']), MenuItem( 'find_deletion', _(u"Deletion"), model=models.Find, @@ -99,6 +94,35 @@ MENU_SECTIONS = [ model=models.FindSource, access_controls=['change_find', 'change_own_find']), - ]) + ]), + # MenuItem( + # 'treatment_creation', _(u"Add a treatment"), + # model=models.Treatment, + # access_controls=['change_find', + # 'change_own_find']), + SectionItem( + 'find_treatments', _(u"Treatments"), + childs=[ + MenuItem('treatment_search', + _(u"Search"), + model=models.Treatment, + access_controls=['view_find', + 'view_own_find']), + MenuItem('treatment_creation', + _(u"Creation"), + model=models.Treatment, + access_controls=['change_find', + 'change_own_find']), + MenuItem('treatment_modification', + _(u"Modification"), + model=models.Treatment, + access_controls=['change_find', + 'change_own_find']), + MenuItem('treatment_deletion', + _(u"Deletion"), + model=models.Treatment, + access_controls=['change_find', + 'change_own_find']), + ]), ])) ] diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index b7637ba3b..a886485b5 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -793,6 +793,7 @@ post_delete.connect(post_save_cache, sender=TreatmentType) class Treatment(BaseHistorizedItem, OwnPerms): + SHOW_URL = 'show-treatment' external_id = models.CharField(_(u"External ID"), blank=True, null=True, max_length=120) container = models.ForeignKey(Container, verbose_name=_(u"Container"), @@ -814,6 +815,16 @@ class Treatment(BaseHistorizedItem, OwnPerms): start_date = models.DateField(_(u"Start date"), blank=True, null=True) end_date = models.DateField(_(u"End date"), blank=True, null=True) history = HistoricalRecords() + TABLE_COLS = ('treatment_type__label', 'person', 'start_date', + 'downstream_cached_label', 'upstream_cached_label') + EXTRA_REQUEST_KEYS = { + "downstream_cached_label": "downstream__cached_label", + "upstream_cached_label": "upstream__cached_label", + } + TABLE_COLS_LBL = { + "downstream_cached_label": _(u"Downstream find"), + "upstream_cached_label": _(u"Upstream find"), + } class Meta: verbose_name = _(u"Treatment") @@ -844,10 +855,8 @@ class Treatment(BaseHistorizedItem, OwnPerms): super(Treatment, self).save(*args, **kwargs) if not is_new or not items: return - basket = None if hasattr(items, "items"): - basket = items - items = basket.items.all() + items = items.items.all() for item in items: new = item.duplicate(user) item.downstream_treatment = self diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index a0a9f0a8a..fdced4bd4 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -23,12 +23,14 @@ from django.test import TestCase from ishtar_common.models import ImporterType, IshtarUser, ImporterColumn,\ FormaterType, ImportTarget -from archaeological_finds import models +from archaeological_finds import models, views +from archaeological_warehouse.models import Warehouse, WarehouseType from archaeological_context_records.tests import ImportContextRecordTest, \ ContextRecordInit from ishtar_common import forms_common +from ishtar_common.tests import WizardTest, WizardTestFormData as FormData class ImportFindTest(ImportContextRecordTest): @@ -216,3 +218,53 @@ class PackagingTest(FindInit, TestCase): self.assertNotIn( item, self.finds, msg="Other basket have not been upgraded after packaging") + + +class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase): + fixtures = [settings.ROOT_PATH + + '../fixtures/initial_data.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_files/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_operations/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../archaeological_finds/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../archaeological_warehouse/fixtures/initial_data-fr.json', + ] + url_name = 'treatment_creation' + wizard_name = 'treatment_wizard' + steps = views.treatment_wizard_steps + form_datas = [ + FormData( + 'Move treament', + form_datas={ + 'basetreatment-treatment_creation': { + 'treatment_type': 4, # move + 'person': 1, # doer + 'location': 1, # associated warehouse + }, + 'selecfind-treatment_creation': { + 'pk': 1 + } + }, + ignored=('resultfind-treatment_creation', + 'resultfinds-treatment_creation')) + ] + + def pre_wizard(self): + q = Warehouse.objects.filter(pk=1) + if not q.count(): + warehouse = Warehouse.objects.create( + name="default", warehouse_type=WarehouseType.objects.all()[0]) + warehouse.id = 1 + warehouse.save() + self.treatment_number = models.Treatment.objects.count() + super(TreatmentWizardCreationTest, self).pre_wizard() + + def post_wizard(self): + self.assertEqual(models.Treatment.objects.count(), + self.treatment_number + 1) + pass diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 17cc4028f..bbb123d09 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -17,7 +17,7 @@ # See the file COPYING for details. -from django.conf.urls.defaults import * +from django.conf.urls import * from ishtar_common.wizards import check_rights import views @@ -89,7 +89,11 @@ urlpatterns = patterns( check_rights(['change_find', 'change_own_find'])( views.DeleteFindBasketView.as_view()), name='delete_findbasket'), url(r'treatment_creation/(?P.+)?$', - views.treatment_creation_wizard, name='treatment_creation'), + check_rights(['change_find', 'change_own_find'])( + views.treatment_creation_wizard), name='treatment_creation'), + url(r'treatment_search/(?P.+)?$', + check_rights(['view_find', 'view_own_find'])( + views.treatment_search_wizard), name='treatment_search'), url(r'get-upstreamtreatment/(?P.+)?$', views.get_upstreamtreatment, name='get-upstreamtreatment'), url(r'get-downstreamtreatment/(?P.+)?$', @@ -137,4 +141,10 @@ urlpatterns += patterns( 'show_find', name='show-historized-find'), url(r'revert-find/(?P.+)/(?P.+)$', 'revert_find', name='revert-find'), + url(r'get-treatment/(?P.+)?$', + 'get_treatment', name='get-treatment'), + url(r'show-treatment(?:/(?P.+))?/(?P.+)?$', 'show_treatment', + name=models.Treatment.SHOW_URL), + # url(r'get-treatment/(?P.+)?$', 'get_treatment', + # name='get-treatment'), ) diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 89babe9b7..f0c67c231 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -45,6 +45,9 @@ get_find = get_item(models.Find, 'get_find', 'find') get_find_for_ope = get_item(models.Find, 'get_find', 'find', own_table_cols=models.Find.TABLE_COLS_FOR_OPE) +show_treatment = show_item(models.Treatment, 'treatment') +get_treatment = get_item(models.Treatment, 'get_treatement', 'treatment') + show_findsource = show_item(models.FindSource, 'findsource') get_findsource = get_item(models.FindSource, 'get_findsource', 'findsource') @@ -282,12 +285,20 @@ get_downstreamtreatment = get_item( models.FindDownstreamTreatments, 'get_downstreamtreatment', 'downtreatment') -treatment_creation_wizard = TreatmentWizard.as_view([ +treatment_wizard_steps = [ ('basetreatment-treatment_creation', BaseTreatmentForm), ('selecfind-treatment_creation', UpstreamFindFormSelection), ('resultfind-treatment_creation', ResultFindForm), ('resultfinds-treatment_creation', ResultFindFormSet), - ('final-treatment_creation', FinalForm)], + ('final-treatment_creation', FinalForm)] + +treatment_search_wizard = SearchWizard.as_view([ + ('general-treatment_search', TreatmentFormSelection)], + label=_(u"Treatment search"), + url_name='treatment_search',) + +treatment_creation_wizard = TreatmentWizard.as_view( + treatment_wizard_steps, condition_dict={ 'selecfind-treatment_creation': check_not_exist('basetreatment-treatment_creation', diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index f897969c4..e97c4518e 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -17,7 +17,7 @@ # See the file COPYING for details. -from django.core.exceptions import ObjectDoesNotExist +from django.core.exceptions import ObjectDoesNotExist, PermissionDenied from django.utils.translation import ugettext_lazy as _ from ishtar_common.forms import reverse_lazy @@ -85,14 +85,33 @@ class FindDeletionWizard(DeletionWizard): class TreatmentWizard(Wizard): model = models.Treatment basket_step = 'basetreatment-treatment_creation' + saved_args = {"items": []} - def get_form_kwargs(self, step): - kwargs = super(TreatmentWizard, self).get_form_kwargs(step) + def get_form_kwargs(self, step, **kwargs): + kwargs = super(TreatmentWizard, self).get_form_kwargs(step, **kwargs) if self.basket_step not in step: return kwargs kwargs['user'] = self.request.user return kwargs + def get_extra_model(self, dct, form_list): + """ + Remove basket ID to the result dict + """ + dct = super(TreatmentWizard, self).get_extra_model(dct, form_list) + if 'resulting_pk' in dct: + try: + find = models.Find.objects.get(pk=dct.pop('resulting_pk')) + if 'own' in self.current_right \ + and not find.is_own(dct['history_modifier']): + raise PermissionDenied + dct['items'] = [find] + except (models.Find.DoesNotExist): + raise PermissionDenied + if 'basket' in dct: + dct.pop('basket') + return dct + class FindSourceWizard(SourceWizard): wizard_done_window = reverse_lazy('show-findsource') diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index dd294550e..80569fb1b 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -38,7 +38,8 @@ from ishtar_common.models import OrganizationType, Organization, \ ImporterType, IshtarUser, TargetKey, IshtarSiteProfile from ishtar_common import forms_common -from ishtar_common.tests import WizardTest, create_superuser, create_user +from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \ + create_superuser, create_user class ImportOperationTest(TestCase): @@ -668,20 +669,20 @@ class OperationWizardCreationTest(WizardTest, OperationInitTest, TestCase): url_name = 'operation_creation' wizard_name = 'operation_wizard' steps = views.wizard_steps - form_datas = [( - # data - { + form_datas = [ + FormData( + "Create a preventive diag", + form_datas={ 'general-operation_creation': { 'operation_type': 1, # preventive diag 'year': 2016} - }, - # ignored - ('filechoice-operation_creation', - 'preventive-operation_creation', - 'towns-operation_creation', - 'parcels-operation_creation', - ) - )] + }, + ignored=('filechoice-operation_creation', + 'preventive-operation_creation', + 'towns-operation_creation', + 'parcels-operation_creation', ) + ) + ] def pre_wizard(self): self.operation_number = models.Operation.objects.count() @@ -697,15 +698,20 @@ class OperationWizardClosingTest(OperationWizardCreationTest): url_name = 'operation_closing' wizard_name = 'operation_closing_wizard' steps = views.operation_closing_steps - form_datas = [[ - { - 'selec-operation_closing': {'pk': None}, - 'date-operation_closing': {'end_date': '2016-01-01'}, - }, []]] + form_datas = [ + FormData( + "Wizard closing test", + form_datas={ + 'selec-operation_closing': {'pk': None}, + 'date-operation_closing': {'end_date': '2016-01-01'}, + } + ) + ] def pre_wizard(self): self.ope = self.get_default_operation() - self.form_datas[0][0]['selec-operation_closing']['pk'] = self.ope.pk + self.form_datas[0].form_datas['selec-operation_closing']['pk'] = \ + self.ope.pk self.assertTrue(self.ope.is_active()) super(OperationWizardClosingTest, self).pre_wizard() @@ -714,7 +720,7 @@ class OperationWizardClosingTest(OperationWizardCreationTest): self.assertFalse(ope.is_active()) self.assertEqual( ope.closing()['date'].strftime('%Y-%d-%m'), - self.form_datas[0][0]['date-operation_closing']['end_date']) + self.form_datas[0].form_datas['date-operation_closing']['end_date']) class OperationAdminActWizardCreationTest(WizardTest, OperationInitTest, @@ -730,25 +736,24 @@ class OperationAdminActWizardCreationTest(WizardTest, OperationInitTest, url_name = 'operation_administrativeactop' wizard_name = 'operation_administrative_act_wizard' steps = views.administrativeactop_steps - form_datas = [[ - # data - { - 'selec-operation_administrativeactop': { - }, - 'administrativeact-operation_administrativeactop': { - 'signature_date': str(datetime.date.today()) - } - }, - # ignored - [] - ]] + form_datas = [ + FormData( + "Admin act creation", + form_datas={ + 'selec-operation_administrativeactop': { + }, + 'administrativeact-operation_administrativeactop': { + 'signature_date': str(datetime.date.today()) + } + }, + ) + ] def pre_wizard(self): ope = self.get_default_operation() - self.number = models.AdministrativeAct.objects.count() - data = self.form_datas[0][0] + data = self.form_datas[0].form_datas data['selec-operation_administrativeactop']['pk'] = ope.pk act = models.ActType.objects.filter(intented_to='O').all()[0].pk diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 0c4bbda08..dbe3df4a5 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -75,6 +75,32 @@ def create_user(): return username, password, user +class WizardTestFormData(object): + """ + Test set to simulate wizard steps + """ + def __init__(self, name, form_datas, ignored=[], extra_tests=[]): + """ + :param name: explicit name of the test + :param form_datas: dict with data for each step - dict key are wizard + step name + :param ignored: steps to be ignored in wizard processing + :param extra_tests: list of extra tests. Theses tests must be functions + accepting two parameters: the current test object and the final step + response + """ + self.form_datas = form_datas + self.ignored = ignored[:] + self.extra_tests = extra_tests + + def tests(self, test_object, final_step_response): + """ + Specific tests for theses datas. Raise Exception if not OK. + """ + for test in self.extra_tests: + test(test_object, final_step_response) + + class WizardTest(object): url_name = None wizard_name = '' @@ -95,7 +121,9 @@ class WizardTest(object): def test_wizard(self): url = reverse(self.url_name) self.pre_wizard() - for form_data, ignored in self.form_datas: + for test_form_data in self.form_datas: + form_data = test_form_data.form_datas + ignored = test_form_data.ignored for idx, step in enumerate(self.steps): current_step, current_form = step if current_step in ignored: @@ -138,6 +166,7 @@ class WizardTest(object): '/{}/{}'.format(self.url_name, next_form)) else: response = self.client.post(url, data, follow=True) + test_form_data.tests(self, response) self.post_wizard() diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 8634125cd..cb6afe8c4 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -910,6 +910,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], keys = [keys] my_vals = [] for k in keys: + if k in model.EXTRA_REQUEST_KEYS: + k = model.EXTRA_REQUEST_KEYS[k] vals = [item] # foreign key may be divided by "." or "__" splitted_k = [] diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 1183836bc..be22bd3cb 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -581,6 +581,8 @@ class JQueryJqGrid(forms.RadioSelect): field_name += "__" field_name += f_name field_verbose_names.append(unicode(field_verbose_name)) + if not field_name: + field_name = "__".join(col_names) if field_name in col_labels: jq_col_names.append(unicode(col_labels[field_name])) elif col_names and col_names[0] in col_labels: diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index c065459f6..b9fba83b4 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -126,6 +126,8 @@ class Wizard(NamedUrlWizardView): current_obj_slug = '' file_storage = default_storage + saved_args = {} # argument to pass on object save + ''' # buggy and unecessary... def __init__(self, *args, **kwargs): @@ -543,12 +545,16 @@ class Wizard(NamedUrlWizardView): dct[dependant_item] = c_item if 'pk' in dct: dct.pop('pk') + saved_args = self.saved_args.copy() + for k in saved_args: + if k in dct: + saved_args[k] = dct.pop(k) obj = self.get_saved_model()(**dct) try: obj.full_clean() except ValidationError: return self.render(form_list[-1]) - obj.save() + obj.save(**saved_args) for k in adds: getattr(obj, k).add(adds[k]) # necessary to manage interaction between models like @@ -626,6 +632,7 @@ class Wizard(NamedUrlWizardView): self.request.session[self.current_obj_slug] = unicode(obj.pk) self.request.session[self.get_object_name(obj)] = unicode(obj.pk) dct = {'item': obj} + self.current_object = obj # force evaluation of lazy urls wizard_done_window = unicode(self.wizard_done_window) if wizard_done_window: -- cgit v1.2.3 From e5291ad557e97c1aa2d516494d25fd72ea33ae91 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 30 Nov 2016 17:49:39 +0100 Subject: Treatment searches and sheet --- archaeological_finds/models.py | 4 +-- .../templates/ishtar/sheet_treatment.html | 34 ++++++++++++++++++++++ .../templates/ishtar/sheet_treatment_pdf.html | 18 ++++++++++++ .../templates/ishtar/sheet_treatment_window.html | 3 ++ archaeological_finds/urls.py | 4 +++ archaeological_finds/views.py | 4 +++ ishtar_common/templatetags/window_tables.py | 2 ++ ishtar_common/views.py | 22 +++++++++----- 8 files changed, 81 insertions(+), 10 deletions(-) create mode 100644 archaeological_finds/templates/ishtar/sheet_treatment.html create mode 100644 archaeological_finds/templates/ishtar/sheet_treatment_pdf.html create mode 100644 archaeological_finds/templates/ishtar/sheet_treatment_window.html (limited to 'ishtar_common') diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index a886485b5..2957c656d 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -807,8 +807,8 @@ class Treatment(BaseHistorizedItem, OwnPerms): help_text=_( u"Location where the treatment is done. Target warehouse for " u"a move.")) - other_location = models.CharField(_(u"Other location"), max_length=200, - blank=True, null=True) + other_location = models.CharField(_(u"Location (not referenced)"), + max_length=200, blank=True, null=True) person = models.ForeignKey( Person, verbose_name=_(u"Doer"), blank=True, null=True, on_delete=models.SET_NULL, related_name='treatments') diff --git a/archaeological_finds/templates/ishtar/sheet_treatment.html b/archaeological_finds/templates/ishtar/sheet_treatment.html new file mode 100644 index 000000000..20ea9e3c4 --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_treatment.html @@ -0,0 +1,34 @@ +{% extends "ishtar/sheet.html" %} +{% load i18n window_field from_dict link_to_window window_tables window_header humanize %} +{% load url from future %} + +{% block head_title %}{% trans "Treatment" %}{% endblock %} +{% block content %} +{% window_nav item window_id 'show-treatment' %} + +

        + {% field_li "Treatment type" item.treatment_type %} + {% field_li "Container" item.container %} + {% field_li "Location" item.location %} + {% field_li "Location (not referenced)" item.other_location %} + {% field_li "Doer" item.person %} + {% field_li "Start date" item.start_date %} + {% field_li "End date" item.end_date %} +
      +{% if item.description or item.comment %} +{% field "Description" item.description "
      " "
      " %} +{% field "Comment" item.comment "
      " "
      " %} +{% endif %} + +{% trans "Upstream finds" as finds %} +{% if item.upstream.count %} +{% dynamic_table_document finds 'finds_for_treatment' 'downstream_treatment' item.pk 'TABLE_COLS_FOR_OPE' output %} +{% endif %} + +{% trans "Downstream finds" as finds %} +{% if item.downstream.count %} +{% dynamic_table_document finds 'finds_for_treatment' 'upstream_treatment' item.pk 'TABLE_COLS_FOR_OPE' output %} +{% endif %} + + +{% endblock %} diff --git a/archaeological_finds/templates/ishtar/sheet_treatment_pdf.html b/archaeological_finds/templates/ishtar/sheet_treatment_pdf.html new file mode 100644 index 000000000..08df52e97 --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_treatment_pdf.html @@ -0,0 +1,18 @@ +{% extends "ishtar/sheet_treatment.html" %} +{% block header %} + +{% endblock %} +{% block main_head %} +{{ block.super }} +
      + Ishtar – {{APP_NAME}} – {{item}} +
      +{% endblock %} +{%block head_sheet%}{%endblock%} +{%block main_foot%} +
      + – – +
      + + +{%endblock%} diff --git a/archaeological_finds/templates/ishtar/sheet_treatment_window.html b/archaeological_finds/templates/ishtar/sheet_treatment_window.html new file mode 100644 index 000000000..fb0757d10 --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_treatment_window.html @@ -0,0 +1,3 @@ +{% extends "ishtar/sheet_treatment.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index bbb123d09..220087d33 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -119,6 +119,10 @@ urlpatterns += patterns( name='get-own-find-for-ope', kwargs={'force_own': True}), url(r'get-find-for-ope/(?P.+)?$', 'get_find_for_ope', name='get-find-for-ope'), + url(r'get-find-for-treatment/own/(?P.+)?$', 'get_find_for_treatment', + name='get-own-find-for-treatment', kwargs={'force_own': True}), + url(r'get-find-for-treatment/(?P.+)?$', 'get_find_for_treatment', + name='get-find-for-treatment'), url(r'get-find-full/own/(?P.+)?$', 'get_find', name='get-own-find-full', kwargs={'full': True, 'force_own': True}), url(r'get-find-full/(?P.+)?$', 'get_find', diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index f0c67c231..1f3213504 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -45,6 +45,10 @@ get_find = get_item(models.Find, 'get_find', 'find') get_find_for_ope = get_item(models.Find, 'get_find', 'find', own_table_cols=models.Find.TABLE_COLS_FOR_OPE) +get_find_for_treatment = get_item( + models.Find, 'get_find', 'find', + own_table_cols=models.Find.TABLE_COLS_FOR_OPE, base_request={}) + show_treatment = show_item(models.Treatment, 'treatment') get_treatment = get_item(models.Treatment, 'get_treatement', 'treatment') diff --git a/ishtar_common/templatetags/window_tables.py b/ishtar_common/templatetags/window_tables.py index acb3d4a0a..566d1dfbc 100644 --- a/ishtar_common/templatetags/window_tables.py +++ b/ishtar_common/templatetags/window_tables.py @@ -45,6 +45,8 @@ ASSOCIATED_MODELS['context_records_relations'] = ( ASSOCIATED_MODELS['finds'] = (Find, 'get-find', 'get-find-full') ASSOCIATED_MODELS['finds_for_ope'] = ( Find, 'get-find-for-ope', 'get-find-full') +ASSOCIATED_MODELS['finds_for_treatment'] = ( + Find, 'get-find-for-treatment', 'get-find-full') ASSOCIATED_MODELS['finds_docs'] = ( FindSource, 'get-findsource', 'get-findsource-full') ASSOCIATED_MODELS['finds_upstreamtreatments'] = ( diff --git a/ishtar_common/views.py b/ishtar_common/views.py index cb6afe8c4..4a7c7e2e8 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -528,7 +528,7 @@ HIERARCHIC_FIELDS = ['periods', 'period', 'unit', 'material_types', def get_item(model, func_name, default_name, extra_request_keys=[], - base_request={}, bool_fields=[], reversed_bool_fields=[], + base_request=None, bool_fields=[], reversed_bool_fields=[], dated_fields=[], associated_models=[], relative_session_names=[], specific_perms=[], own_table_cols=None, relation_types_prefix={}): """ @@ -577,10 +577,12 @@ def get_item(model, func_name, default_name, extra_request_keys=[], my_extra_request_keys = copy(model.EXTRA_REQUEST_KEYS) else: my_extra_request_keys = copy(extra_request_keys) - if not base_request and hasattr(model, 'BASE_REQUEST'): + if base_request is None and hasattr(model, 'BASE_REQUEST'): my_base_request = copy(model.BASE_REQUEST) - else: + elif base_request is not None: my_base_request = copy(base_request) + else: + my_base_request = {} if not bool_fields and hasattr(model, 'BOOL_FIELDS'): my_bool_fields = model.BOOL_FIELDS[:] else: @@ -677,7 +679,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], request.session[default_name].split('-')[-1]} else: dct = {"pk": request.session[default_name]} - elif dct == base_request: + elif dct == (base_request or {}): # a parent item may be selected in the default menu for name, key in my_relative_session_names: if name in request.session and request.session[name]: @@ -931,10 +933,14 @@ def get_item(model, func_name, default_name, extra_request_keys=[], v = v() new_vals.append(v) elif val: - val = getattr(val, ky) - if callable(val): - val = val() - new_vals.append(val) + try: + val = getattr(val, ky) + if callable(val): + val = val() + new_vals.append(val) + except AttributeError: + # must be a query key such as "contains" + pass vals = new_vals # manage last related objects if vals and hasattr(vals[0], 'all'): -- cgit v1.2.3 From 7e060ac1a352ec2c290732988d8e3bacbb204c86 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sat, 3 Dec 2016 23:25:12 +0100 Subject: Adapt fields/forms/wizard for treatments --- archaeological_finds/admin.py | 1 - archaeological_finds/forms.py | 133 ++- ...treatment_treatment_type_id__add_field_histo.py | 1187 ++++++++++++++++++++ ...treatment_external_id__chg_field_treatment_e.py | 1038 +++++++++++++++++ ...treatment_target_is_basket__add_field_treatm.py | 1044 +++++++++++++++++ archaeological_finds/models.py | 95 +- .../templates/ishtar/sheet_treatment.html | 23 +- archaeological_finds/wizards.py | 1 + archaeological_operations/forms.py | 4 +- ishtar_common/models.py | 1 - .../templates/ishtar/wizard/default_wizard.html | 6 +- ishtar_common/views.py | 5 + ishtar_common/wizards.py | 24 +- 13 files changed, 3503 insertions(+), 59 deletions(-) create mode 100644 archaeological_finds/migrations/0062_auto__del_field_historicaltreatment_treatment_type_id__add_field_histo.py create mode 100644 archaeological_finds/migrations/0063_auto__chg_field_historicaltreatment_external_id__chg_field_treatment_e.py create mode 100644 archaeological_finds/migrations/0064_auto__add_field_historicaltreatment_target_is_basket__add_field_treatm.py (limited to 'ishtar_common') diff --git a/archaeological_finds/admin.py b/archaeological_finds/admin.py index 764f63ad3..95fff4b73 100644 --- a/archaeological_finds/admin.py +++ b/archaeological_finds/admin.py @@ -60,7 +60,6 @@ admin.site.register(models.Property, PropertyAdmin) class TreatmentAdmin(HistorizedObjectAdmin): list_display = ('location', 'treatment_type', 'container', 'person') - list_filter = ('treatment_type',) model = models.Treatment admin.site.register(models.Treatment, TreatmentAdmin) diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index e25d52805..271ee0c9d 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -21,6 +21,9 @@ Finds forms definitions """ +import datetime +import logging + from django import forms from django.conf import settings from django.core import validators @@ -30,7 +33,7 @@ from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ from ishtar_common.models import Person, valid_id, valid_ids, \ - get_current_profile + get_current_profile, Organization from archaeological_operations.models import Period, ArchaeologicalSite, \ RelationType as OpeRelationType from archaeological_context_records.models import DatingType, DatingQuality, \ @@ -45,6 +48,8 @@ from ishtar_common.forms import FormSet, FloatField, \ ManageOldType from ishtar_common.forms_common import get_town_field, SourceSelect +logger = logging.getLogger(__name__) + class RecordFormSelection(forms.Form): form_label = _("Context record") @@ -592,57 +597,155 @@ class TreatmentFormSelection(forms.Form): class BaseTreatmentForm(ManageOldType, SelectFindBasketForm): form_label = _(u"Base treatment") + base_models = ['treatment_type'] associated_models = {'treatment_type': models.TreatmentType, 'person': Person, 'location': Warehouse, + 'organization': Organization, + 'container': models.Container, 'basket': models.FindBasket} - treatment_type = forms.ChoiceField(label=_(u"Treatment type"), choices=[]) + need_user_for_initialization = True + + label = forms.CharField(label=_(u"Label"), + max_length=200, required=False) + other_reference = forms.CharField( + label=_(u"Other ref."), max_length=200, required=False) + year = forms.IntegerField(label=_("Year"), + initial=lambda: datetime.datetime.now().year, + validators=[validators.MinValueValidator(1900), + validators.MaxValueValidator(2100)]) + treatment_type = forms.MultipleChoiceField( + label=_(u"Treatment type"), choices=[], + widget=forms.CheckboxSelectMultiple) + target_is_basket = forms.NullBooleanField(label=_(u"Target")) person = forms.IntegerField( - label=_(u"Doer"), + label=_(u"Responsible"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person'), associated_model=Person, new=True), - validators=[valid_id(Person)]) + validators=[valid_id(Person)], required=False) + organization = forms.IntegerField( + label=_(u"Organization"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-organization'), + associated_model=Organization, new=True), + validators=[valid_id(Organization)], required=False) location = forms.IntegerField( label=_(u"Location"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse, new=True), validators=[valid_id(Warehouse)]) + container = forms.IntegerField( + label=_(u"Container (relevant for packaging)"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-container'), + associated_model=models.Container, new=True), + validators=[valid_id(models.Container)], required=False) + external_id = forms.CharField( + label=_(u"External ref."), max_length=200, required=False) + comment = forms.CharField(label=_(u"Comment"), + widget=forms.Textarea, required=False) description = forms.CharField(label=_(u"Description"), widget=forms.Textarea, required=False) + goal = forms.CharField(label=_(u"Goal"), + widget=forms.Textarea, required=False) start_date = forms.DateField(label=_(u"Start date"), required=False, widget=widgets.JQueryDate) end_date = forms.DateField(label=_(u"End date"), required=False, widget=widgets.JQueryDate) + image = forms.ImageField( + label=_(u"Image"), help_text=mark_safe( + _(u"

      Heavy images are resized to: %(width)dx%(height)d " + u"(ratio is preserved).

      ") % { + 'width': settings.IMAGE_MAX_SIZE[0], + 'height': settings.IMAGE_MAX_SIZE[1]}), + max_length=255, required=False, widget=widgets.ImageFileInput()) def __init__(self, *args, **kwargs): + user = kwargs.pop('user') super(BaseTreatmentForm, self).__init__(*args, **kwargs) + q = Person.objects.filter(ishtaruser__pk=user.pk) + if q.count(): + person = q.all()[0] + self.fields['person'].initial = person.pk + if person.attached_to: + self.fields['organization'].initial = person.attached_to.pk + self.fields['target_is_basket'].widget.choices = \ + ((False, _(u"Single find")), (True, _(u"Basket"))) self.fields['treatment_type'].choices = models.TreatmentType.get_types( initial=self.init_data.get('treatment_type'), - dct={'upstream_is_many': False, 'downstream_is_many': False} + dct={'upstream_is_many': False, 'downstream_is_many': False}, + empty_first=False ) self.fields['treatment_type'].help_text = \ models.TreatmentType.get_help( dct={'upstream_is_many': False, 'downstream_is_many': False}) + # TODO + self.fields.pop('basket') + """ self.fields['basket'].required = False self.fields['basket'].help_text = \ _(u"Leave it blank if you want to select a single item") self.fields.keyOrder.pop(self.fields.keyOrder.index('basket')) self.fields.keyOrder.insert(self.fields.keyOrder.index('description'), 'basket') + """ def clean(self, *args, **kwargs): - try: - treatment = models.TreatmentType.objects.get( - pk=self.cleaned_data['treatment_type'], available=True) - except models.TreatmentType.DoesNotExist: - raise forms.ValidationError(_(u"This treatment type is not " - u"available.")) - if treatment.upstream_is_many and \ - not self.cleaned_data.get('basket'): - raise forms.ValidationError(_(u"This treatment needs a basket.")) - return self.cleaned_data + data = self.cleaned_data + packaging = models.TreatmentType.get_cache('packaging') + if not packaging: + logger.warning("No 'packaging' treatment type defined") + return + if data.get('container', None) \ + and str(packaging.pk) not in data.get('treatment_type', []): + raise forms.ValidationError( + _(u"The container field is attached to the treatment. If " + u"no packaging treatment is done it is not relevant.")) + if not data.get('container', None) \ + and str(packaging.pk) in data.get('treatment_type', []): + raise forms.ValidationError( + _(u"If a packaging treatment is done, the container field " + u"must be filled.")) + if not data.get('person', None) and not data.get('organization', None): + raise forms.ValidationError( + _(u"A responsible or an organization must be defined.")) + return data + # TODO + """ + for treatment_type in self.cleaned_data.get('treatment_type', []): + try: + treatment = models.TreatmentType.objects.get( + pk=treatment_type, available=True) + except models.TreatmentType.DoesNotExist: + raise forms.ValidationError(_(u"This treatment type is not " + u"available.")) + if treatment.upstream_is_many and \ + not self.cleaned_data.get('basket'): + raise forms.ValidationError(_(u"This treatment needs a " + u"basket.")) + """ + + +class ModifyTreatmentForm(BaseTreatmentForm): + index = forms.IntegerField(_(u"Index")) + id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False) + + def clean(self, *args, **kwargs): + super(ModifyTreatmentForm, self).clean(*args, **kwargs) + cleaned_data = self.cleaned_data + year = cleaned_data.get('year') + pk = cleaned_data.get('id') + index = cleaned_data.get('index') + q = models.Treatment.objects\ + .filter(year=year, index=index).exclude(pk=pk) + if index and q.count(): + raise forms.ValidationError( + _(u"Another treatment with this index exists for {}." + ).format(year)) + return cleaned_data + """ #################################### diff --git a/archaeological_finds/migrations/0062_auto__del_field_historicaltreatment_treatment_type_id__add_field_histo.py b/archaeological_finds/migrations/0062_auto__del_field_historicaltreatment_treatment_type_id__add_field_histo.py new file mode 100644 index 000000000..a6f68acf1 --- /dev/null +++ b/archaeological_finds/migrations/0062_auto__del_field_historicaltreatment_treatment_type_id__add_field_histo.py @@ -0,0 +1,1187 @@ +# -*- 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): + # Deleting field 'HistoricalTreatment.treatment_type_id' + db.delete_column('archaeological_finds_historicaltreatment', 'treatment_type_id') + + # Adding field 'HistoricalTreatment.image' + db.add_column('archaeological_finds_historicaltreatment', 'image', + self.gf('django.db.models.fields.files.ImageField')(max_length=255, null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalTreatment.thumbnail' + db.add_column('archaeological_finds_historicaltreatment', 'thumbnail', + self.gf('django.db.models.fields.files.ImageField')(max_length=255, null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalTreatment.label' + db.add_column('archaeological_finds_historicaltreatment', 'label', + self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalTreatment.other_reference' + db.add_column('archaeological_finds_historicaltreatment', 'other_reference', + self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalTreatment.year' + db.add_column('archaeological_finds_historicaltreatment', 'year', + self.gf('django.db.models.fields.IntegerField')(default=2016), + keep_default=False) + + # Adding field 'HistoricalTreatment.index' + db.add_column('archaeological_finds_historicaltreatment', 'index', + self.gf('django.db.models.fields.IntegerField')(default=1), + keep_default=False) + + # Adding field 'HistoricalTreatment.organization_id' + db.add_column('archaeological_finds_historicaltreatment', 'organization_id', + self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalTreatment.goal' + db.add_column('archaeological_finds_historicaltreatment', 'goal', + self.gf('django.db.models.fields.TextField')(null=True, blank=True), + keep_default=False) + + # Deleting field 'Treatment.treatment_type' + db.delete_column('archaeological_finds_treatment', 'treatment_type_id') + + # Adding field 'Treatment.image' + db.add_column('archaeological_finds_treatment', 'image', + self.gf('django.db.models.fields.files.ImageField')(max_length=255, null=True, blank=True), + keep_default=False) + + # Adding field 'Treatment.thumbnail' + db.add_column('archaeological_finds_treatment', 'thumbnail', + self.gf('django.db.models.fields.files.ImageField')(max_length=255, null=True, blank=True), + keep_default=False) + + # Adding field 'Treatment.label' + db.add_column('archaeological_finds_treatment', 'label', + self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), + keep_default=False) + + # Adding field 'Treatment.other_reference' + db.add_column('archaeological_finds_treatment', 'other_reference', + self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), + keep_default=False) + + # Adding field 'Treatment.year' + db.add_column('archaeological_finds_treatment', 'year', + self.gf('django.db.models.fields.IntegerField')(default=2016), + keep_default=False) + + # Adding field 'Treatment.index' + db.add_column('archaeological_finds_treatment', 'index', + self.gf('django.db.models.fields.IntegerField')(default=1), + keep_default=False) + + # Adding field 'Treatment.organization' + db.add_column('archaeological_finds_treatment', 'organization', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='treatments', null=True, on_delete=models.SET_NULL, to=orm['ishtar_common.Organization']), + keep_default=False) + + # Adding field 'Treatment.goal' + db.add_column('archaeological_finds_treatment', 'goal', + self.gf('django.db.models.fields.TextField')(null=True, blank=True), + keep_default=False) + + # Adding M2M table for field treatment_types on 'Treatment' + db.create_table('archaeological_finds_treatment_treatment_types', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('treatment', models.ForeignKey(orm['archaeological_finds.treatment'], null=False)), + ('treatmenttype', models.ForeignKey(orm['archaeological_finds.treatmenttype'], null=False)) + )) + db.create_unique('archaeological_finds_treatment_treatment_types', ['treatment_id', 'treatmenttype_id']) + + # Adding unique constraint on 'Treatment', fields ['index', 'year'] + db.create_unique('archaeological_finds_treatment', ['index', 'year']) + + + def backwards(self, orm): + # Removing unique constraint on 'Treatment', fields ['index', 'year'] + db.delete_unique('archaeological_finds_treatment', ['index', 'year']) + + # Adding field 'HistoricalTreatment.treatment_type_id' + db.add_column('archaeological_finds_historicaltreatment', 'treatment_type_id', + self.gf('django.db.models.fields.IntegerField')(blank=True, null=True, db_index=True), + keep_default=False) + + # Deleting field 'HistoricalTreatment.image' + db.delete_column('archaeological_finds_historicaltreatment', 'image') + + # Deleting field 'HistoricalTreatment.thumbnail' + db.delete_column('archaeological_finds_historicaltreatment', 'thumbnail') + + # Deleting field 'HistoricalTreatment.label' + db.delete_column('archaeological_finds_historicaltreatment', 'label') + + # Deleting field 'HistoricalTreatment.other_reference' + db.delete_column('archaeological_finds_historicaltreatment', 'other_reference') + + # Deleting field 'HistoricalTreatment.year' + db.delete_column('archaeological_finds_historicaltreatment', 'year') + + # Deleting field 'HistoricalTreatment.index' + db.delete_column('archaeological_finds_historicaltreatment', 'index') + + # Deleting field 'HistoricalTreatment.organization_id' + db.delete_column('archaeological_finds_historicaltreatment', 'organization_id') + + # Deleting field 'HistoricalTreatment.goal' + db.delete_column('archaeological_finds_historicaltreatment', 'goal') + + # Adding field 'Treatment.treatment_type' + db.add_column('archaeological_finds_treatment', 'treatment_type', + self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['archaeological_finds.TreatmentType']), + keep_default=False) + + # Deleting field 'Treatment.image' + db.delete_column('archaeological_finds_treatment', 'image') + + # Deleting field 'Treatment.thumbnail' + db.delete_column('archaeological_finds_treatment', 'thumbnail') + + # Deleting field 'Treatment.label' + db.delete_column('archaeological_finds_treatment', 'label') + + # Deleting field 'Treatment.other_reference' + db.delete_column('archaeological_finds_treatment', 'other_reference') + + # Deleting field 'Treatment.year' + db.delete_column('archaeological_finds_treatment', 'year') + + # Deleting field 'Treatment.index' + db.delete_column('archaeological_finds_treatment', 'index') + + # Deleting field 'Treatment.organization' + db.delete_column('archaeological_finds_treatment', 'organization_id') + + # Deleting field 'Treatment.goal' + db.delete_column('archaeological_finds_treatment', 'goal') + + # Removing M2M table for field treatment_types on 'Treatment' + db.delete_table('archaeological_finds_treatment_treatment_types') + + + models = { + 'archaeological_context_records.activitytype': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.contextrecord': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + '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': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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': '255', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.dating': { + 'Meta': {'object_name': 'Dating'}, + 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}), + 'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.datingquality': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingQuality'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.datingtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.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_finds.basefind': { + 'Meta': {'object_name': 'BaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'base_finds'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_basefind'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.conservatorystate': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ConservatoryState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.find': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Find'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'to': "orm['archaeological_warehouse.Container']"}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_context_records.Dating']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_find'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'integrities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.IntegrityType']"}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'material_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.MaterialType']"}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'object_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.ObjectType']"}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preservation_to_considers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.PreservationType']"}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'remarkabilities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.RemarkabilityType']"}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.findbasket': { + 'Meta': {'unique_together': "(('label', 'user'),)", 'object_name': 'FindBasket'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'basket'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['archaeological_finds.Find']"}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.finddownstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindDownstreamTreatments', 'db_table': "'find_downtreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'finddownstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.findsource': { + 'Meta': {'object_name': 'FindSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'findsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Find']"}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_finds.findtreatments': { + 'Meta': {'ordering': "('find', 'upstream', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindTreatments', 'db_table': "'find_treatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}), + 'upstream': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_finds.findupstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindUpstreamTreatments', 'db_table': "'find_uptreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findupstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.historicalbasefind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicalfind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicaltreatment': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'organization_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'other_location': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.integritytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'IntegrityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.materialtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'MaterialType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.MaterialType']", 'null': 'True', 'blank': 'True'}), + 'recommendation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.objecttype': { + 'Meta': {'ordering': "('parent__label', 'label')", 'object_name': 'ObjectType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ObjectType']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.preservationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PreservationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.property': { + 'Meta': {'object_name': 'Property'}, + 'administrative_act': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.AdministrativeAct']"}), + 'end_date': ('django.db.models.fields.DateField', [], {}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Find']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_property'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {}) + }, + 'archaeological_finds.remarkabilitytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemarkabilityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.treatment': { + 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'other_location': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentsource': { + 'Meta': {'object_name': 'TreatmentSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'treatmentsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"}) + }, + 'archaeological_finds.treatmenttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_operations.acttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, + 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.administrativeact': { + 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + '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'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.parcel': { + 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'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_finds'] \ No newline at end of file diff --git a/archaeological_finds/migrations/0063_auto__chg_field_historicaltreatment_external_id__chg_field_treatment_e.py b/archaeological_finds/migrations/0063_auto__chg_field_historicaltreatment_external_id__chg_field_treatment_e.py new file mode 100644 index 000000000..e45906f2e --- /dev/null +++ b/archaeological_finds/migrations/0063_auto__chg_field_historicaltreatment_external_id__chg_field_treatment_e.py @@ -0,0 +1,1038 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Changing field 'HistoricalTreatment.external_id' + db.alter_column('archaeological_finds_historicaltreatment', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=200, null=True)) + + # Changing field 'Treatment.external_id' + db.alter_column('archaeological_finds_treatment', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=200, null=True)) + + def backwards(self, orm): + + # Changing field 'HistoricalTreatment.external_id' + db.alter_column('archaeological_finds_historicaltreatment', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=120, null=True)) + + # Changing field 'Treatment.external_id' + db.alter_column('archaeological_finds_treatment', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=120, null=True)) + + models = { + 'archaeological_context_records.activitytype': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.contextrecord': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + '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': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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': '255', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.dating': { + 'Meta': {'object_name': 'Dating'}, + 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}), + 'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.datingquality': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingQuality'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.datingtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.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_finds.basefind': { + 'Meta': {'object_name': 'BaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'base_finds'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_basefind'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.conservatorystate': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ConservatoryState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.find': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Find'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'to': "orm['archaeological_warehouse.Container']"}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_context_records.Dating']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_find'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'integrities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.IntegrityType']"}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'material_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.MaterialType']"}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'object_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.ObjectType']"}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preservation_to_considers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.PreservationType']"}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'remarkabilities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.RemarkabilityType']"}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.findbasket': { + 'Meta': {'unique_together': "(('label', 'user'),)", 'object_name': 'FindBasket'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'basket'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['archaeological_finds.Find']"}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.finddownstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindDownstreamTreatments', 'db_table': "'find_downtreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'finddownstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.findsource': { + 'Meta': {'object_name': 'FindSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'findsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Find']"}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_finds.findtreatments': { + 'Meta': {'ordering': "('find', 'upstream', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindTreatments', 'db_table': "'find_treatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}), + 'upstream': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_finds.findupstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindUpstreamTreatments', 'db_table': "'find_uptreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findupstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.historicalbasefind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicalfind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicaltreatment': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'organization_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'other_location': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.integritytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'IntegrityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.materialtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'MaterialType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.MaterialType']", 'null': 'True', 'blank': 'True'}), + 'recommendation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.objecttype': { + 'Meta': {'ordering': "('parent__label', 'label')", 'object_name': 'ObjectType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ObjectType']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.preservationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PreservationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.property': { + 'Meta': {'object_name': 'Property'}, + 'administrative_act': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.AdministrativeAct']"}), + 'end_date': ('django.db.models.fields.DateField', [], {}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Find']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_property'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {}) + }, + 'archaeological_finds.remarkabilitytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemarkabilityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.treatment': { + 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'other_location': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentsource': { + 'Meta': {'object_name': 'TreatmentSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'treatmentsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"}) + }, + 'archaeological_finds.treatmenttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_operations.acttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, + 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.administrativeact': { + 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + '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'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.parcel': { + 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'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_finds'] \ No newline at end of file diff --git a/archaeological_finds/migrations/0064_auto__add_field_historicaltreatment_target_is_basket__add_field_treatm.py b/archaeological_finds/migrations/0064_auto__add_field_historicaltreatment_target_is_basket__add_field_treatm.py new file mode 100644 index 000000000..138a3077c --- /dev/null +++ b/archaeological_finds/migrations/0064_auto__add_field_historicaltreatment_target_is_basket__add_field_treatm.py @@ -0,0 +1,1044 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'HistoricalTreatment.target_is_basket' + db.add_column('archaeological_finds_historicaltreatment', 'target_is_basket', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + # Adding field 'Treatment.target_is_basket' + db.add_column('archaeological_finds_treatment', 'target_is_basket', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'HistoricalTreatment.target_is_basket' + db.delete_column('archaeological_finds_historicaltreatment', 'target_is_basket') + + # Deleting field 'Treatment.target_is_basket' + db.delete_column('archaeological_finds_treatment', 'target_is_basket') + + + models = { + 'archaeological_context_records.activitytype': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.contextrecord': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + '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': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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': '255', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.dating': { + 'Meta': {'object_name': 'Dating'}, + 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}), + 'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.datingquality': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingQuality'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.datingtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.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_finds.basefind': { + 'Meta': {'object_name': 'BaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'base_finds'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_basefind'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.conservatorystate': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ConservatoryState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.find': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Find'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'to': "orm['archaeological_warehouse.Container']"}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_context_records.Dating']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_find'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'integrities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.IntegrityType']"}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'material_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.MaterialType']"}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'object_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.ObjectType']"}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preservation_to_considers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.PreservationType']"}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'remarkabilities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.RemarkabilityType']"}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.findbasket': { + 'Meta': {'unique_together': "(('label', 'user'),)", 'object_name': 'FindBasket'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'basket'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['archaeological_finds.Find']"}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.finddownstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindDownstreamTreatments', 'db_table': "'find_downtreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'finddownstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.findsource': { + 'Meta': {'object_name': 'FindSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'findsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Find']"}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_finds.findtreatments': { + 'Meta': {'ordering': "('find', 'upstream', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindTreatments', 'db_table': "'find_treatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}), + 'upstream': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_finds.findupstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindUpstreamTreatments', 'db_table': "'find_uptreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findupstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.historicalbasefind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicalfind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicaltreatment': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'organization_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'other_location': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.integritytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'IntegrityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.materialtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'MaterialType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.MaterialType']", 'null': 'True', 'blank': 'True'}), + 'recommendation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.objecttype': { + 'Meta': {'ordering': "('parent__label', 'label')", 'object_name': 'ObjectType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ObjectType']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.preservationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PreservationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.property': { + 'Meta': {'object_name': 'Property'}, + 'administrative_act': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.AdministrativeAct']"}), + 'end_date': ('django.db.models.fields.DateField', [], {}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Find']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_property'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {}) + }, + 'archaeological_finds.remarkabilitytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemarkabilityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.treatment': { + 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'other_location': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentsource': { + 'Meta': {'object_name': 'TreatmentSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'treatmentsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"}) + }, + 'archaeological_finds.treatmenttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_operations.acttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, + 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.administrativeact': { + 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + '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'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.parcel': { + 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'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_finds'] \ No newline at end of file diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index 2957c656d..01c904cc8 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -30,7 +30,7 @@ from ishtar_common.utils import cached_label_changed from ishtar_common.models import GeneralType, ImageModel, BaseHistorizedItem, \ ShortMenuItem, LightHistorizedItem, HistoricalRecords, OwnPerms, Source, \ - Person, Basket, get_external_id, post_save_cache + Organization, Person, Basket, get_external_id, post_save_cache from archaeological_operations.models import AdministrativeAct from archaeological_context_records.models import ContextRecord, Dating @@ -792,16 +792,16 @@ post_save.connect(post_save_cache, sender=TreatmentType) post_delete.connect(post_save_cache, sender=TreatmentType) -class Treatment(BaseHistorizedItem, OwnPerms): +class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): SHOW_URL = 'show-treatment' - external_id = models.CharField(_(u"External ID"), blank=True, null=True, - max_length=120) - container = models.ForeignKey(Container, verbose_name=_(u"Container"), - blank=True, null=True) - description = models.TextField(_(u"Description"), blank=True, null=True) - comment = models.TextField(_(u"Comment"), blank=True, null=True) - treatment_type = models.ForeignKey(TreatmentType, - verbose_name=_(u"Treatment type")) + label = models.CharField(_(u"Label"), blank=True, null=True, + max_length=200) + other_reference = models.CharField(_(u"Other ref."), blank=True, null=True, + max_length=200) + year = models.IntegerField(_(u"Year"), default=2016) + index = models.IntegerField(_(u"Index"), default=1) + treatment_types = models.ManyToManyField( + TreatmentType, verbose_name=_(u"Treatment type")) location = models.ForeignKey( Warehouse, verbose_name=_(u"Location"), blank=True, null=True, help_text=_( @@ -810,12 +810,23 @@ class Treatment(BaseHistorizedItem, OwnPerms): other_location = models.CharField(_(u"Location (not referenced)"), max_length=200, blank=True, null=True) person = models.ForeignKey( - Person, verbose_name=_(u"Doer"), blank=True, null=True, + Person, verbose_name=_(u"Responsible"), blank=True, null=True, + on_delete=models.SET_NULL, related_name='treatments') + organization = models.ForeignKey( + Organization, verbose_name=_(u"Organization"), blank=True, null=True, on_delete=models.SET_NULL, related_name='treatments') + external_id = models.CharField(_(u"External ID"), blank=True, null=True, + max_length=200) + comment = models.TextField(_(u"Comment"), blank=True, null=True) + description = models.TextField(_(u"Description"), blank=True, null=True) + goal = models.TextField(_(u"Goal"), blank=True, null=True) start_date = models.DateField(_(u"Start date"), blank=True, null=True) end_date = models.DateField(_(u"End date"), blank=True, null=True) + container = models.ForeignKey(Container, verbose_name=_(u"Container"), + blank=True, null=True) + target_is_basket = models.BooleanField(_("Target a basket"), default=False) history = HistoricalRecords() - TABLE_COLS = ('treatment_type__label', 'person', 'start_date', + TABLE_COLS = ('treatment_type', 'person', 'start_date', 'downstream_cached_label', 'upstream_cached_label') EXTRA_REQUEST_KEYS = { "downstream_cached_label": "downstream__cached_label", @@ -829,6 +840,7 @@ class Treatment(BaseHistorizedItem, OwnPerms): class Meta: verbose_name = _(u"Treatment") verbose_name_plural = _(u"Treatments") + unique_together = ('year', 'index') permissions = ( ("view_treatment", ugettext(u"Can view all Treatments")), ("view_own_treatment", ugettext(u"Can view own Treatment")), @@ -843,6 +855,22 @@ class Treatment(BaseHistorizedItem, OwnPerms): lbl += u" %s %s" % (_(u"by"), unicode(self.person)) return lbl + def treatment_type(self): + """ + Treatment types label + :return: string + """ + return u" ; ".join([unicode(t) for t in self.treatment_types.all()]) + + def pre_save(self): + # is not new + if self.pk is not None: + return + self.index = 1 + q = Treatment.objects.filter(year=self.year) + if q.count(): + self.index = q.all().aggregate(Max('index'))['index__max'] + 1 + def save(self, *args, **kwargs): items, user, extra_args_for_new = [], None, [] if "items" in kwargs: @@ -852,23 +880,34 @@ class Treatment(BaseHistorizedItem, OwnPerms): if "extra_args_for_new" in kwargs: extra_args_for_new = kwargs.pop('extra_args_for_new') is_new = self.pk is None + self.pre_save() super(Treatment, self).save(*args, **kwargs) - if not is_new or not items: - return - if hasattr(items, "items"): - items = items.items.all() - for item in items: - new = item.duplicate(user) - item.downstream_treatment = self - item.save() - new.upstream_treatment = self - for k in extra_args_for_new: - setattr(new, k, extra_args_for_new[k]) - new.save() - # update baskets - for basket in FindBasket.objects.filter(items__pk=item.pk).all(): - basket.items.remove(item) - basket.items.add(new) + updated = [] + if is_new: + if hasattr(items, "items"): + items = items.items.all() + for item in items: + new = item.duplicate(user) + item.downstream_treatment = self + item.save() + new.upstream_treatment = self + for k in extra_args_for_new: + setattr(new, k, extra_args_for_new[k]) + new.save() + updated.append(new.pk) + # update baskets + for basket in \ + FindBasket.objects.filter(items__pk=item.pk).all(): + basket.items.remove(item) + basket.items.add(new) + # manage containers + for find in Find.objects.filter(upstream_treatment=self).all(): + if find.container != self.container: + find.container = self.container + if find.pk in updated: + # don't record twice history + find.skip_history_when_saving = True + find.save() class AbsFindTreatments(models.Model): diff --git a/archaeological_finds/templates/ishtar/sheet_treatment.html b/archaeological_finds/templates/ishtar/sheet_treatment.html index 20ea9e3c4..1dfe19844 100644 --- a/archaeological_finds/templates/ishtar/sheet_treatment.html +++ b/archaeological_finds/templates/ishtar/sheet_treatment.html @@ -6,18 +6,31 @@ {% block content %} {% window_nav item window_id 'show-treatment' %} +{% if item.image %} +
      +{% endif%} + +

      {{ item.label|default:"" }}

      +{% if item.other_reference %} +

      {{ item.other_reference }}

      {% endif %} +

      {{ item.year }} - {{ item.index }}

      +{% if item.external_id %} +

      {{ item.external_id }}

      {% endif %} +
        - {% field_li "Treatment type" item.treatment_type %} - {% field_li "Container" item.container %} + {% field_li_multiple "Treatment type" item.treatment_types %} {% field_li "Location" item.location %} {% field_li "Location (not referenced)" item.other_location %} - {% field_li "Doer" item.person %} + {% field_li "Container" item.container %} + {% field_li "Responsible" item.person %} + {% field_li "Organization" item.organization %} {% field_li "Start date" item.start_date %} {% field_li "End date" item.end_date %}
      -{% if item.description or item.comment %} -{% field "Description" item.description "
      " "
      " %} +{% if item.description or item.comment or item.goal %} {% field "Comment" item.comment "
      " "
      " %} +{% field "Description" item.description "
      " "
      " %} +{% field "Goal" item.goal "
      " "
      " %} {% endif %} {% trans "Upstream finds" as finds %} diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index e97c4518e..9c91ac516 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -84,6 +84,7 @@ class FindDeletionWizard(DeletionWizard): class TreatmentWizard(Wizard): model = models.Treatment + wizard_done_window = reverse_lazy('show-treatment') basket_step = 'basetreatment-treatment_creation' saved_args = {"items": []} diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 8d900036d..b3f203e53 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -33,8 +33,8 @@ from django.forms.formsets import formset_factory, DELETION_FIELD_NAME, \ from django.utils.translation import ugettext_lazy as _, pgettext_lazy from django.utils.safestring import mark_safe -from ishtar_common.models import valid_id, PersonType, Person, Town, \ - DocumentTemplate, Organization, OrganizationType, get_current_profile, \ +from ishtar_common.models import valid_id, Person, Town, \ + DocumentTemplate, Organization, get_current_profile, \ person_type_pks_lazy, person_type_pk_lazy, organization_type_pks_lazy, \ organization_type_pk_lazy diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 5b822c7dd..ebb9c9588 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2639,7 +2639,6 @@ class IshtarUser(User): surname = user.first_name or default name = user.last_name or default email = user.email - person_type = None if user.is_superuser: ADMINISTRATOR, created = PersonType.objects.get_or_create( txt_idx='administrator') diff --git a/ishtar_common/templates/ishtar/wizard/default_wizard.html b/ishtar_common/templates/ishtar/wizard/default_wizard.html index c52d71536..d886396b3 100644 --- a/ishtar_common/templates/ishtar/wizard/default_wizard.html +++ b/ishtar_common/templates/ishtar/wizard/default_wizard.html @@ -10,11 +10,11 @@
      {% csrf_token %}
      diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 4a7c7e2e8..16201b1a2 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -914,6 +914,11 @@ def get_item(model, func_name, default_name, extra_request_keys=[], for k in keys: if k in model.EXTRA_REQUEST_KEYS: k = model.EXTRA_REQUEST_KEYS[k] + if type(k) in (list, tuple): + k = k[0] + for filtr in ('__icontains', '__contains'): + if k.endswith(filtr): + k = k[:len(k) - len(filtr)] vals = [item] # foreign key may be divided by "." or "__" splitted_k = [] diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index b9fba83b4..d207286ab 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -18,6 +18,7 @@ # See the file COPYING for details. import datetime +import logging # from functools import wraps from django.conf import settings @@ -38,6 +39,8 @@ from django.utils.datastructures import MultiValueDict as BaseMultiValueDict from django.utils.translation import ugettext_lazy as _ import models +logger = logging.getLogger(__name__) + class MultiValueDict(BaseMultiValueDict): def get(self, *args, **kwargs): @@ -167,6 +170,13 @@ class Wizard(NamedUrlWizardView): return super(Wizard, self).dispatch(request, *args, **kwargs) + def get_form_kwargs(self, step=None): + kwargs = super(Wizard, self).get_form_kwargs(step) + if hasattr(self.form_list[step], 'need_user_for_initialization') and\ + self.form_list[step].need_user_for_initialization: + kwargs['user'] = self.request.user + return kwargs + def get_prefix(self, *args, **kwargs): """As the class name can interfere when reused prefix with the url_name """ @@ -196,7 +206,7 @@ class Wizard(NamedUrlWizardView): self.request.session['CURRENT_ACTION'] = self.get_wizard_name() step = self.steps.first current_step = self.steps.current - dct = {'current_step': self.form_list[current_step], + dct = {'current_step_label': self.form_list[current_step].form_label, 'wizard_label': self.label, 'current_object': self.get_current_object(), 'is_search': current_step.startswith('selec-') @@ -211,7 +221,7 @@ class Wizard(NamedUrlWizardView): or (previous_steps and previous_steps[-1] == self.form_list[step]): break - previous_steps.append(self.form_list[step]) + previous_steps.append(self.form_list[step].form_label) previous_step_counter += 1 if previous_step_counter >= len(self.steps): break @@ -252,7 +262,7 @@ class Wizard(NamedUrlWizardView): if step == next_step: current_step_passed = True elif current_step_passed: - next_steps.append(self.form_list[next_step]) + next_steps.append(self.form_list[next_step].form_label) next_step = self.get_next_step(next_step) context.update({'next_steps': next_steps}) # not last step: validation @@ -485,9 +495,12 @@ class Wizard(NamedUrlWizardView): elif type(dct[k]) not in (list, tuple): dct[k] = [dct[k]] setattr(obj, k, dct[k]) + if hasattr(obj, 'pre_save'): + obj.pre_save() try: obj.full_clean() except ValidationError: + logger.warning(unicode(e)) return self.render(form_list[-1]) for dependant_item in other_objs: c_item = getattr(obj, dependant_item) @@ -550,9 +563,12 @@ class Wizard(NamedUrlWizardView): if k in dct: saved_args[k] = dct.pop(k) obj = self.get_saved_model()(**dct) + if hasattr(obj, 'pre_save'): + obj.pre_save() try: obj.full_clean() - except ValidationError: + except ValidationError as e: + logger.warning(unicode(e)) return self.render(form_list[-1]) obj.save(**saved_args) for k in adds: -- cgit v1.2.3 From 60c4a6a718dd56083953395059c0239b84a5179a Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 4 Dec 2016 03:29:37 +0100 Subject: Treatment modifications --- archaeological_finds/admin.py | 2 +- archaeological_finds/forms.py | 18 +++++++++++++++++- archaeological_finds/models.py | 28 +++++++++++++++++----------- archaeological_finds/urls.py | 4 ++++ archaeological_finds/views.py | 8 ++++++++ archaeological_finds/wizards.py | 4 ++++ ishtar_common/models.py | 2 +- 7 files changed, 52 insertions(+), 14 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/admin.py b/archaeological_finds/admin.py index 95fff4b73..867245194 100644 --- a/archaeological_finds/admin.py +++ b/archaeological_finds/admin.py @@ -59,7 +59,7 @@ admin.site.register(models.Property, PropertyAdmin) class TreatmentAdmin(HistorizedObjectAdmin): - list_display = ('location', 'treatment_type', 'container', 'person') + list_display = ('location', 'treatment_types_lbl', 'container', 'person') model = models.Treatment admin.site.register(models.Treatment, TreatmentAdmin) diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index f03583598..98017f7e2 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -604,6 +604,22 @@ class FindBasketAddItemForm(forms.Form): return basket +class TreatmentSelect(TableSelect): + label = forms.CharField(label=_(u"Label")) + other_reference = forms.CharField(label=_(u"Other ref.")) + year = forms.IntegerField(label=_(u"Year")) + index = forms.IntegerField(label=_(u"Index")) + treatment_types = forms.ChoiceField(label=_(u"Treatment type"), choices=[]) + image = forms.NullBooleanField(label=_(u"Has an image?")) + + def __init__(self, *args, **kwargs): + super(TreatmentSelect, self).__init__(*args, **kwargs) + self.fields['treatment_types'].choices = \ + models.TreatmentType.get_types() + self.fields['treatment_types'].help_text = \ + models.TreatmentType.get_help() + + class TreatmentFormSelection(forms.Form): form_label = _("Treatment search") associated_models = {'pk': models.Treatment} @@ -612,7 +628,7 @@ class TreatmentFormSelection(forms.Form): label="", required=False, widget=widgets.JQueryJqGrid( reverse_lazy('get-treatment'), - FindSelect, models.Treatment), + TreatmentSelect, models.Treatment), validators=[valid_id(models.Treatment)]) diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index 3e0d09ef8..a563a8404 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -794,6 +794,22 @@ post_delete.connect(post_save_cache, sender=TreatmentType) class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): SHOW_URL = 'show-treatment' + TABLE_COLS = ('treatment_types_lbl', 'person', 'start_date', + 'downstream_cached_label', 'upstream_cached_label') + REVERSED_BOOL_FIELDS = ['image__isnull'] + EXTRA_REQUEST_KEYS = { + "label": 'label__icontains', + "other_reference": 'other_reference__icontains', + "treatment_types": "treatment_types__pk", + "downstream_cached_label": "downstream__cached_label", + "upstream_cached_label": "upstream__cached_label", + 'image': 'image__isnull', + } + TABLE_COLS_LBL = { + "downstream_cached_label": _(u"Downstream find"), + "upstream_cached_label": _(u"Upstream find"), + } + IMAGE_PREFIX = 'treatment' label = models.CharField(_(u"Label"), blank=True, null=True, max_length=200) other_reference = models.CharField(_(u"Other ref."), blank=True, null=True, @@ -826,16 +842,6 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): blank=True, null=True) target_is_basket = models.BooleanField(_("Target a basket"), default=False) history = HistoricalRecords() - TABLE_COLS = ('treatment_type', 'person', 'start_date', - 'downstream_cached_label', 'upstream_cached_label') - EXTRA_REQUEST_KEYS = { - "downstream_cached_label": "downstream__cached_label", - "upstream_cached_label": "upstream__cached_label", - } - TABLE_COLS_LBL = { - "downstream_cached_label": _(u"Downstream find"), - "upstream_cached_label": _(u"Upstream find"), - } class Meta: verbose_name = _(u"Treatment") @@ -855,7 +861,7 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): lbl += u" %s %s" % (_(u"by"), unicode(self.person)) return lbl - def treatment_type(self): + def treatment_types_lbl(self): """ Treatment types label :return: string diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 220087d33..add258ed5 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -91,6 +91,10 @@ urlpatterns = patterns( url(r'treatment_creation/(?P.+)?$', check_rights(['change_find', 'change_own_find'])( views.treatment_creation_wizard), name='treatment_creation'), + url(r'treatment_modification/(?P.+)?$', + check_rights(['change_find', 'change_own_find'])( + views.treatment_modification_wizard), + name='treatment_modification'), url(r'treatment_search/(?P.+)?$', check_rights(['view_find', 'view_own_find'])( views.treatment_search_wizard), name='treatment_search'), diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 29d4f7da9..1be9a9ae7 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -323,6 +323,14 @@ treatment_creation_wizard = TreatmentWizard.as_view( label=_(u"New treatment"), url_name='treatment_creation',) +treatment_modification_wizard = TreatmentModificationWizard.as_view( + [('selec-treatment_modification', TreatmentFormSelection), + ('basetreatment-treatment_modification', BaseTreatmentForm), + ('final-treatment_modification', FinalForm)], + label=_(u"Modify"), + url_name='treatment_modification', +) + """ treatment_source_creation_wizard = TreatmentSourceWizard.as_view([ ('selec-treatment_source_creation', SourceTreatmentFormSelection), diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index 962f21e69..42d734526 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -117,6 +117,10 @@ class TreatmentWizard(Wizard): return dct +class TreatmentModificationWizard(TreatmentWizard): + modification = True + + class FindSourceWizard(SourceWizard): wizard_done_window = reverse_lazy('show-findsource') model = models.FindSource diff --git a/ishtar_common/models.py b/ishtar_common/models.py index ebb9c9588..2bb96d11d 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -664,7 +664,7 @@ class ImageModel(models.Model): null=True, max_length=255) IMAGE_MAX_SIZE = settings.IMAGE_MAX_SIZE THUMB_MAX_SIZE = settings.THUMB_MAX_SIZE - IMAGE_PREFIX = '/' + IMAGE_PREFIX = '' class Meta: abstract = True -- cgit v1.2.3 From 8ffa7fb1c29f0c74d23daeb6a81de5df91c1f401 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 4 Dec 2016 22:21:11 +0100 Subject: Treatments: fix pdf and odt exports --- archaeological_finds/models.py | 9 ++++++++- ishtar_common/views.py | 1 - 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index a563a8404..fc231a16a 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -24,6 +24,7 @@ from django.contrib.gis.db import models from django.core.urlresolvers import reverse from django.db.models import Max, Q from django.db.models.signals import m2m_changed, post_save, post_delete +from django.template.defaultfilters import slugify from django.utils.translation import ugettext_lazy as _, ugettext from ishtar_common.utils import cached_label_changed @@ -856,7 +857,7 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): ) def __unicode__(self): - lbl = unicode(self.treatment_type) + lbl = unicode(self.treatment_types_lbl()) if self.person: lbl += u" %s %s" % (_(u"by"), unicode(self.person)) return lbl @@ -913,6 +914,12 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): find.skip_history_when_saving = True find.save() + @property + def associated_filename(self): + return "-".join([ + str(slugify(getattr(self, attr))) + for attr in ('year', 'index', 'label')]) + class AbsFindTreatments(models.Model): find = models.ForeignKey(Find, verbose_name=_(u"Find"), diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 16201b1a2..d1faef9c0 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1131,7 +1131,6 @@ def show_item(model, name, extra_dct=None): context_instance = RequestContext(request) context_instance.update(dct) context_instance['output'] = 'html' - filename = "" if hasattr(item, 'history_object'): filename = item.history_object.associated_filename else: -- cgit v1.2.3 From e7d4d95a64a3f80941197b8eb015ebdd1ecc8245 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 4 Dec 2016 22:44:58 +0100 Subject: Find table: force label for associated periods --- archaeological_finds/models.py | 5 ++++- ishtar_common/widgets.py | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index fc231a16a..d142a22b3 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -307,10 +307,13 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): 'base_finds__cache_short_id', 'base_finds__cache_complete_id', 'previous_id', 'label', 'material_types', - 'datings__period', 'find_number', 'object_types', + 'datings__period__label', 'find_number', 'object_types', 'description', 'base_finds__context_record__parcel__town', 'base_finds__context_record__parcel', ] + TABLE_COLS_FOR_OPE_LBL = { + 'datings__period__label': _(u"Periods"), + } EXTRA_FULL_FIELDS = [ 'base_finds__cache_short_id', 'base_finds__cache_complete_id', diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index be22bd3cb..e21ce7a2a 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -322,7 +322,6 @@ class JQueryTown(forms.TextInput): @classmethod def encode_source(cls, source): - encoded_src = '' if isinstance(source, list): encoded_src = JSONEncoder().encode(source) elif isinstance(source, str) \ -- cgit v1.2.3 From 83369bf5d40df2c3da07053545197a923ce9c7ac Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 5 Dec 2016 01:57:07 +0100 Subject: Update french translation --- archaeological_files/locale/django.pot | 8 +- archaeological_finds/locale/django.pot | 500 +++++++++++++++---------- archaeological_warehouse/locale/django.pot | 2 +- ishtar_common/locale/django.pot | 126 +++---- translations/de/ishtar_common.po | 126 +++---- translations/fr/archaeological_files.po | 8 +- translations/fr/archaeological_finds.po | 524 ++++++++++++++++----------- translations/fr/archaeological_operations.po | 12 +- translations/fr/archaeological_warehouse.po | 9 +- translations/fr/ishtar_common.po | 126 +++---- 10 files changed, 826 insertions(+), 615 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot index 97541ac1e..89451ec1b 100644 --- a/archaeological_files/locale/django.pot +++ b/archaeological_files/locale/django.pot @@ -25,7 +25,7 @@ msgstr "" msgid "Parcel (section/number/public domain)" msgstr "" -#: forms.py:55 forms.py:407 forms.py:434 models.py:544 +#: forms.py:55 forms.py:407 forms.py:434 models.py:546 msgid "Department" msgstr "" @@ -406,15 +406,15 @@ msgstr "" msgid "FILE" msgstr "" -#: models.py:404 +#: models.py:406 msgid "Multi-town" msgstr "" -#: models.py:410 +#: models.py:412 msgid "No town" msgstr "" -#: models.py:543 +#: models.py:545 msgid "File" msgstr "" diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 7cbf00077..6fdf890fd 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -7,750 +7,848 @@ msgid "" msgstr "" -#: forms.py:50 forms.py:54 wizards.py:60 +#: forms.py:55 forms.py:59 wizards.py:60 msgid "Context record" msgstr "" -#: forms.py:83 ishtar_menu.py:31 models.py:440 models.py:754 models.py:854 -#: models.py:1004 templates/ishtar/sheet_find.html:5 +#: forms.py:88 ishtar_menu.py:31 models.py:451 models.py:771 models.py:942 +#: models.py:1104 templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "" -#: forms.py:94 forms.py:218 forms.py:425 models.py:127 models.py:377 +#: forms.py:99 forms.py:230 forms.py:454 models.py:129 models.py:382 msgid "Free ID" msgstr "" -#: forms.py:96 models.py:426 +#: forms.py:101 models.py:437 msgid "Previous ID" msgstr "" -#: forms.py:97 forms.py:250 forms.py:591 models.py:131 models.py:378 -#: models.py:788 +#: forms.py:102 forms.py:262 forms.py:687 models.py:133 models.py:383 +#: models.py:841 msgid "Description" msgstr "" -#: forms.py:100 forms.py:252 models.py:142 +#: forms.py:105 forms.py:264 models.py:144 msgid "Batch/object" msgstr "" -#: forms.py:102 models.py:406 +#: forms.py:107 models.py:411 msgid "Is complete?" msgstr "" -#: forms.py:105 forms.py:240 forms.py:429 models.py:50 +#: forms.py:110 forms.py:252 forms.py:458 models.py:52 msgid "Material type" msgstr "" -#: forms.py:106 forms.py:244 models.py:62 models.py:382 +#: forms.py:111 forms.py:256 models.py:64 models.py:387 msgid "Conservatory state" msgstr "" -#: forms.py:109 models.py:384 +#: forms.py:114 models.py:389 msgid "Conservatory comment" msgstr "" -#: forms.py:112 models.py:102 models.py:409 +#: forms.py:117 models.py:104 models.py:414 msgid "Object types" msgstr "" -#: forms.py:114 forms.py:243 models.py:71 +#: forms.py:119 forms.py:255 models.py:73 msgid "Preservation type" msgstr "" -#: forms.py:117 forms.py:246 models.py:411 +#: forms.py:122 forms.py:258 models.py:416 msgid "Integrity / interest" msgstr "" -#: forms.py:120 forms.py:248 models.py:414 +#: forms.py:125 forms.py:260 models.py:419 msgid "Remarkability" msgstr "" -#: forms.py:122 models.py:416 +#: forms.py:128 models.py:429 +msgid "Point of topographic reference" +msgstr "" + +#: forms.py:131 models.py:423 msgid "Length (cm)" msgstr "" -#: forms.py:123 models.py:417 +#: forms.py:132 models.py:424 msgid "Width (cm)" msgstr "" -#: forms.py:124 models.py:418 +#: forms.py:133 models.py:425 msgid "Height (cm)" msgstr "" -#: forms.py:125 models.py:419 +#: forms.py:134 models.py:426 msgid "Diameter (cm)" msgstr "" -#: forms.py:126 forms.py:430 models.py:389 +#: forms.py:135 models.py:427 +msgid "Thickness (cm)" +msgstr "" + +#: forms.py:136 forms.py:459 models.py:394 msgid "Volume (l)" msgstr "" -#: forms.py:127 forms.py:431 models.py:390 +#: forms.py:137 forms.py:460 models.py:395 msgid "Weight (g)" msgstr "" -#: forms.py:129 models.py:420 +#: forms.py:139 models.py:431 msgid "Dimensions comment" msgstr "" -#: forms.py:130 forms.py:432 models.py:393 +#: forms.py:140 forms.py:461 models.py:398 msgid "Find number" msgstr "" -#: forms.py:131 models.py:422 +#: forms.py:142 models.py:422 +msgid "Minimum number of individuals (MNI)" +msgstr "" + +#: forms.py:143 models.py:433 msgid "Mark" msgstr "" -#: forms.py:132 forms.py:254 models.py:428 +#: forms.py:144 forms.py:266 models.py:439 msgid "Check" msgstr "" -#: forms.py:134 models.py:430 +#: forms.py:146 models.py:441 msgid "Check date" msgstr "" -#: forms.py:135 models.py:132 models.py:423 models.py:789 +#: forms.py:147 forms.py:685 models.py:134 models.py:434 models.py:840 msgid "Comment" msgstr "" -#: forms.py:138 models.py:424 +#: forms.py:150 models.py:435 msgid "Comment on dating" msgstr "" -#: forms.py:139 models.py:432 +#: forms.py:151 models.py:443 msgid "Estimated value" msgstr "" -#: forms.py:141 +#: forms.py:153 forms.py:696 msgid "Image" msgstr "" -#: forms.py:142 +#: forms.py:154 forms.py:697 #, python-format msgid "" "

      Heavy images are resized to: %(width)dx%(height)d (ratio is preserved)." msgstr "" -#: forms.py:181 forms.py:212 models.py:401 +#: forms.py:193 forms.py:224 models.py:406 msgid "Dating" msgstr "" -#: forms.py:186 forms.py:238 +#: forms.py:198 forms.py:250 msgid "Period" msgstr "" -#: forms.py:187 forms.py:593 models.py:802 models.py:867 models.py:1009 -#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:121 +#: forms.py:199 forms.py:691 models.py:843 models.py:955 models.py:1109 +#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 msgid "Start date" msgstr "" -#: forms.py:189 forms.py:595 models.py:803 models.py:868 models.py:1010 -#: templates/ishtar/sheet_find.html:93 templates/ishtar/sheet_find.html:122 +#: forms.py:201 forms.py:693 models.py:844 models.py:956 models.py:1110 +#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 msgid "End date" msgstr "" -#: forms.py:190 +#: forms.py:202 msgid "Quality" msgstr "" -#: forms.py:192 +#: forms.py:204 msgid "Dating type" msgstr "" -#: forms.py:194 +#: forms.py:206 msgid "Precise dating" msgstr "" -#: forms.py:216 models.py:150 +#: forms.py:228 models.py:152 msgid "Short ID" msgstr "" -#: forms.py:217 models.py:153 +#: forms.py:229 models.py:155 msgid "Complete ID" msgstr "" -#: forms.py:221 +#: forms.py:233 forms.py:610 forms.py:651 models.py:823 msgid "Year" msgstr "" -#: forms.py:223 +#: forms.py:235 msgid "Operation's number (index by year)" msgstr "" -#: forms.py:226 +#: forms.py:238 msgid "Code PATRIARCHE" msgstr "" -#: forms.py:230 +#: forms.py:242 msgid "Archaeological site" msgstr "" -#: forms.py:236 +#: forms.py:248 msgid "Search within related operations" msgstr "" -#: forms.py:241 models.py:101 +#: forms.py:253 models.py:103 msgid "Object type" msgstr "" -#: forms.py:255 +#: forms.py:267 forms.py:613 msgid "Has an image?" msgstr "" -#: forms.py:297 forms.py:310 views.py:66 +#: forms.py:309 forms.py:322 views.py:73 msgid "Find search" msgstr "" -#: forms.py:324 +#: forms.py:336 templates/ishtar/sheet_treatment.html:36 msgid "Upstream finds" msgstr "" -#: forms.py:326 models.py:441 +#: forms.py:338 models.py:452 msgid "Finds" msgstr "" -#: forms.py:336 +#: forms.py:348 msgid "You should at least select one archaeological find." msgstr "" -#: forms.py:422 +#: forms.py:451 msgid "Resulting find" msgstr "" -#: forms.py:427 +#: forms.py:456 msgid "Precise description" msgstr "" -#: forms.py:442 +#: forms.py:471 msgid "Resulting finds" msgstr "" -#: forms.py:447 +#: forms.py:476 msgid "Would you like to delete this find?" msgstr "" -#: forms.py:451 +#: forms.py:480 models.py:816 msgid "Upstream find" msgstr "" -#: forms.py:462 +#: forms.py:493 msgid "Archaeological find search" msgstr "" -#: forms.py:464 +#: forms.py:495 msgid "You should select an archaeological find." msgstr "" -#: forms.py:469 +#: forms.py:500 msgid "Year of the operation" msgstr "" -#: forms.py:471 +#: forms.py:502 msgid "Numeric reference" msgstr "" -#: forms.py:478 +#: forms.py:509 msgid "Period of the archaeological find" msgstr "" -#: forms.py:480 +#: forms.py:511 msgid "Material type of the archaeological find" msgstr "" -#: forms.py:482 +#: forms.py:513 msgid "Description of the archaeological find" msgstr "" -#: forms.py:494 +#: forms.py:525 msgid "Documentation search" msgstr "" -#: forms.py:496 +#: forms.py:527 msgid "You should select a document." msgstr "" -#: forms.py:513 +#: forms.py:544 msgid "Another basket already exists with this name." msgstr "" -#: forms.py:523 ishtar_menu.py:60 +#: forms.py:554 forms.py:558 forms.py:713 ishtar_menu.py:55 msgid "Basket" msgstr "" -#: forms.py:573 -msgid "Base treatment" +#: forms.py:608 forms.py:647 models.py:819 templates/ishtar/sheet_find.html:90 +#: templates/ishtar/sheet_find.html:130 +msgid "Label" +msgstr "" + +#: forms.py:609 forms.py:650 models.py:821 +msgid "Other ref." msgstr "" -#: forms.py:578 models.py:776 models.py:791 models.py:866 +#: forms.py:611 forms.py:769 models.py:824 +msgid "Index" +msgstr "" + +#: forms.py:612 forms.py:656 models.py:793 models.py:826 models.py:954 msgid "Treatment type" msgstr "" -#: forms.py:580 models.py:800 models.py:871 -#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:119 -msgid "Doer" +#: forms.py:624 views.py:302 +msgid "Treatment search" +msgstr "" + +#: forms.py:636 +msgid "Base treatment" +msgstr "" + +#: forms.py:658 +msgid "Target" msgstr "" -#: forms.py:586 models.py:793 models.py:869 +#: forms.py:660 models.py:833 +msgid "Responsible" +msgstr "" + +#: forms.py:666 models.py:836 +msgid "Organization" +msgstr "" + +#: forms.py:672 models.py:828 models.py:957 msgid "Location" msgstr "" -#: forms.py:607 -msgid "Leave it blank if you want to select a single item" +#: forms.py:678 +msgid "Container (relevant for packaging)" +msgstr "" + +#: forms.py:684 +msgid "External ref." +msgstr "" + +#: forms.py:689 models.py:842 +msgid "Goal" +msgstr "" + +#: forms.py:713 +msgid "Single find" +msgstr "" + +#: forms.py:741 +msgid "" +"The container field is attached to the treatment. If no packaging treatment " +"is done it is not relevant." +msgstr "" + +#: forms.py:746 +msgid "If a packaging treatment is done, the container field must be filled." msgstr "" -#: forms.py:614 -msgid "This treatment type is not available." +#: forms.py:750 +msgid "A responsible or an organization must be defined." msgstr "" -#: forms.py:618 -msgid "This treatment needs a basket." +#: forms.py:782 +msgid "Another treatment with this index exists for {}." msgstr "" -#: ishtar_menu.py:35 ishtar_menu.py:83 +#: forms.py:789 +msgid "" +"Are you sure you want to delete this treatment? All modification made to the " +"associated finds since this treatment record will be lost!" +msgstr "" + +#: forms.py:792 +msgid "Would you like to delete this treatment?" +msgstr "" + +#: ishtar_menu.py:35 ishtar_menu.py:78 ishtar_menu.py:113 msgid "Search" msgstr "" -#: ishtar_menu.py:40 ishtar_menu.py:63 ishtar_menu.py:88 +#: ishtar_menu.py:40 ishtar_menu.py:58 ishtar_menu.py:83 ishtar_menu.py:118 msgid "Creation" msgstr "" -#: ishtar_menu.py:45 ishtar_menu.py:93 +#: ishtar_menu.py:45 ishtar_menu.py:88 ishtar_menu.py:123 msgid "Modification" msgstr "" -#: ishtar_menu.py:55 ishtar_menu.py:74 ishtar_menu.py:98 +#: ishtar_menu.py:50 ishtar_menu.py:69 ishtar_menu.py:93 ishtar_menu.py:128 msgid "Deletion" msgstr "" -#: ishtar_menu.py:68 +#: ishtar_menu.py:63 msgid "Manage items" msgstr "" -#: ishtar_menu.py:80 +#: ishtar_menu.py:75 msgid "Documentation" msgstr "" -#: models.py:43 +#: ishtar_menu.py:106 models.py:851 models.py:944 models.py:1096 +#: templates/ishtar/sheet_treatment.html:5 +msgid "Treatment" +msgstr "" + +#: ishtar_menu.py:110 +msgid "Simple treatments" +msgstr "" + +#: models.py:45 msgid "Code" msgstr "" -#: models.py:44 +#: models.py:46 msgid "Recommendation" msgstr "" -#: models.py:47 +#: models.py:49 msgid "Parent material" msgstr "" -#: models.py:51 models.py:380 +#: models.py:53 models.py:385 msgid "Material types" msgstr "" -#: models.py:59 +#: models.py:61 msgid "Parent conservatory state" msgstr "" -#: models.py:63 +#: models.py:65 msgid "Conservatory states" msgstr "" -#: models.py:72 +#: models.py:74 msgid "Preservation types" msgstr "" -#: models.py:80 +#: models.py:82 msgid "Integrity / interest type" msgstr "" -#: models.py:81 +#: models.py:83 msgid "Integrity / interest types" msgstr "" -#: models.py:89 +#: models.py:91 msgid "Remarkability type" msgstr "" -#: models.py:90 +#: models.py:92 msgid "Remarkability types" msgstr "" -#: models.py:98 +#: models.py:100 msgid "Parent" msgstr "" -#: models.py:119 +#: models.py:121 msgid "Unknow" msgstr "" -#: models.py:120 +#: models.py:122 msgid "Object" msgstr "" -#: models.py:121 +#: models.py:123 msgid "Batch" msgstr "" -#: models.py:128 models.py:373 models.py:784 +#: models.py:130 models.py:378 models.py:838 msgid "External ID" msgstr "" -#: models.py:130 models.py:375 +#: models.py:132 models.py:380 msgid "External ID is set automatically" msgstr "" -#: models.py:134 +#: models.py:136 msgid "Topographic localisation" msgstr "" -#: models.py:135 +#: models.py:137 msgid "Special interest" msgstr "" -#: models.py:139 +#: models.py:141 msgid "Context Record" msgstr "" -#: models.py:140 +#: models.py:142 msgid "Discovery date" msgstr "" -#: models.py:145 +#: models.py:147 msgid "Material index" msgstr "" -#: models.py:146 +#: models.py:148 msgid "Point" msgstr "" -#: models.py:147 +#: models.py:149 msgid "Line" msgstr "" -#: models.py:148 +#: models.py:150 msgid "Polygon" msgstr "" -#: models.py:151 models.py:154 +#: models.py:153 models.py:156 msgid "Cached value - do not edit" msgstr "" -#: models.py:159 models.py:371 +#: models.py:161 models.py:376 msgid "Base find" msgstr "" -#: models.py:160 +#: models.py:162 msgid "Base finds" msgstr "" -#: models.py:162 +#: models.py:164 msgid "Can view all Base finds" msgstr "" -#: models.py:163 +#: models.py:165 msgid "Can view own Base find" msgstr "" -#: models.py:164 +#: models.py:166 msgid "Can add own Base find" msgstr "" -#: models.py:165 +#: models.py:167 msgid "Can change own Base find" msgstr "" -#: models.py:166 +#: models.py:168 msgid "Can delete own Base find" msgstr "" -#: models.py:276 +#: models.py:278 msgid "g" msgstr "" -#: models.py:277 +#: models.py:279 msgid "kg" msgstr "" -#: models.py:279 +#: models.py:281 msgid "Not checked" msgstr "" -#: models.py:280 +#: models.py:282 msgid "Checked but incorrect" msgstr "" -#: models.py:281 +#: models.py:283 msgid "Checked and correct" msgstr "" -#: models.py:321 +#: models.py:316 +msgid "Periods" +msgstr "" + +#: models.py:326 msgid "Base find - Short ID" msgstr "" -#: models.py:322 +#: models.py:327 msgid "Base find - Complete ID" msgstr "" -#: models.py:323 +#: models.py:328 msgid "Base find - Comment" msgstr "" -#: models.py:324 +#: models.py:329 msgid "Base find - Description" msgstr "" -#: models.py:325 +#: models.py:330 msgid "Base find - Topographic localisation" msgstr "" -#: models.py:327 +#: models.py:332 msgid "Base find - Special interest" msgstr "" -#: models.py:328 +#: models.py:333 msgid "Base find - Discovery date" msgstr "" -#: models.py:376 models.py:860 +#: models.py:381 models.py:948 msgid "Order" msgstr "" -#: models.py:387 +#: models.py:392 msgid "Type of preservation to consider" msgstr "" -#: models.py:391 +#: models.py:396 msgid "Weight unit" msgstr "" -#: models.py:397 templates/ishtar/sheet_find.html:83 +#: models.py:402 templates/ishtar/sheet_find.html:83 msgid "Upstream treatment" msgstr "" -#: models.py:400 templates/ishtar/sheet_find.html:112 +#: models.py:405 templates/ishtar/sheet_find.html:123 msgid "Downstream treatment" msgstr "" -#: models.py:404 models.py:786 models.py:870 -#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:120 +#: models.py:409 models.py:845 models.py:958 +#: templates/ishtar/sheet_find.html:94 templates/ishtar/sheet_find.html:134 msgid "Container" msgstr "" -#: models.py:434 +#: models.py:445 msgid "Cached name" msgstr "" -#: models.py:443 +#: models.py:454 msgid "Can view all Finds" msgstr "" -#: models.py:444 +#: models.py:455 msgid "Can view own Find" msgstr "" -#: models.py:445 +#: models.py:456 msgid "Can add own Find" msgstr "" -#: models.py:446 +#: models.py:457 msgid "Can change own Find" msgstr "" -#: models.py:447 +#: models.py:458 msgid "Can delete own Find" msgstr "" -#: models.py:453 +#: models.py:464 msgid "FIND" msgstr "" -#: models.py:752 +#: models.py:769 msgid "Find documentation" msgstr "" -#: models.py:753 +#: models.py:770 msgid "Find documentations" msgstr "" -#: models.py:763 +#: models.py:780 msgid "Virtual" msgstr "" -#: models.py:765 +#: models.py:782 msgid "Upstream is many" msgstr "" -#: models.py:767 +#: models.py:784 msgid "Check this if for this treatment from many finds you'll get one." msgstr "" -#: models.py:770 +#: models.py:787 msgid "Downstream is many" msgstr "" -#: models.py:772 +#: models.py:789 msgid "Check this if for this treatment from one find you'll get many." msgstr "" -#: models.py:777 +#: models.py:794 msgid "Treatment types" msgstr "" -#: models.py:795 -msgid "Location where the treatment is done. Target warehouse for a move." +#: models.py:815 +msgid "Downstream find" msgstr "" -#: models.py:797 -msgid "Other location" +#: models.py:830 +msgid "Location where the treatment is done. Target warehouse for a move." msgstr "" -#: models.py:807 models.py:856 models.py:996 -msgid "Treatment" +#: models.py:847 +msgid "Target a basket" msgstr "" -#: models.py:808 templates/ishtar/sheet_find.html:80 +#: models.py:852 templates/ishtar/sheet_find.html:80 msgid "Treatments" msgstr "" -#: models.py:810 +#: models.py:855 msgid "Can view all Treatments" msgstr "" -#: models.py:811 +#: models.py:856 msgid "Can view own Treatment" msgstr "" -#: models.py:812 +#: models.py:857 msgid "Can add own Treatment" msgstr "" -#: models.py:813 +#: models.py:858 msgid "Can change own Treatment" msgstr "" -#: models.py:814 +#: models.py:859 msgid "Can delete own Treatment" msgstr "" -#: models.py:820 +#: models.py:865 msgid "by" msgstr "" -#: models.py:872 models.py:873 templates/ishtar/sheet_find.html:89 -#: templates/ishtar/sheet_find.html:118 +#: models.py:959 templates/ishtar/sheet_find.html:93 +#: templates/ishtar/sheet_find.html:133 +msgid "Doer" +msgstr "" + +#: models.py:960 models.py:961 templates/ishtar/sheet_find.html:92 +#: templates/ishtar/sheet_find.html:132 msgid "Related finds" msgstr "" -#: models.py:982 +#: models.py:1082 msgid "Is upstream" msgstr "" -#: models.py:993 +#: models.py:1093 msgid "Treatment documentation" msgstr "" -#: models.py:994 +#: models.py:1094 msgid "Treament documentations" msgstr "" -#: models.py:1006 +#: models.py:1106 msgid "Administrative act" msgstr "" -#: models.py:1007 +#: models.py:1107 msgid "Person" msgstr "" -#: models.py:1013 +#: models.py:1113 msgid "Property" msgstr "" -#: models.py:1014 +#: models.py:1114 msgid "Properties" msgstr "" -#: views.py:61 +#: views.py:68 msgid "New find" msgstr "" -#: views.py:75 +#: views.py:82 msgid "Find modification" msgstr "" -#: views.py:90 +#: views.py:97 msgid "Find deletion" msgstr "" -#: views.py:95 +#: views.py:102 msgid "Find: source search" msgstr "" -#: views.py:103 +#: views.py:110 msgid "Find: new source" msgstr "" -#: views.py:111 +#: views.py:118 msgid "Find: source modification" msgstr "" -#: views.py:126 +#: views.py:133 msgid "Find: source deletion" msgstr "" -#: views.py:140 +#: views.py:147 msgid "New basket" msgstr "" -#: views.py:159 +#: views.py:166 msgid "Manage items in basket" msgstr "" -#: views.py:179 +#: views.py:186 msgid "Manage basket" msgstr "" -#: views.py:267 +#: views.py:274 msgid "Delete basket" msgstr "" -#: views.py:303 +#: views.py:323 msgid "New treatment" msgstr "" +#: views.py:330 +msgid "Modify" +msgstr "" + +#: views.py:337 +msgid "Treatment deletion" +msgstr "" + #: wizards.py:59 msgid "Operation" msgstr "" -#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:117 -#: templates/ishtar/sheet_find.html:187 +#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:129 +msgid "Year - index" +msgstr "" + +#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:131 +#: templates/ishtar/sheet_find.html:209 msgid "Type" msgstr "" -#: templates/ishtar/sheet_find.html:108 +#: templates/ishtar/sheet_find.html:119 msgid "Export as CSV" msgstr "" -#: templates/ishtar/sheet_find.html:108 templates/ishtar/sheet_find.html:138 +#: templates/ishtar/sheet_find.html:119 templates/ishtar/sheet_find.html:160 msgid "CSV" msgstr "" -#: templates/ishtar/sheet_find.html:143 +#: templates/ishtar/sheet_find.html:165 msgid "Associated base finds" msgstr "" -#: templates/ishtar/sheet_find.html:182 templates/ishtar/sheet_find.html:184 +#: templates/ishtar/sheet_find.html:204 templates/ishtar/sheet_find.html:206 msgid "Documents" msgstr "" -#: templates/ishtar/sheet_find.html:186 +#: templates/ishtar/sheet_find.html:208 msgid "Title" msgstr "" -#: templates/ishtar/sheet_find.html:188 +#: templates/ishtar/sheet_find.html:210 msgid "Authors" msgstr "" -#: templates/ishtar/sheet_find.html:189 +#: templates/ishtar/sheet_find.html:211 msgid "Link" msgstr "" @@ -761,3 +859,7 @@ msgstr "" #: templates/ishtar/sheet_findsource.html:4 msgid "Find source" msgstr "" + +#: templates/ishtar/sheet_treatment.html:41 +msgid "Downstream finds" +msgstr "" diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index 7155bb63e..109cfbf76 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -91,7 +91,7 @@ msgid "Packaged finds" msgstr "" #: ishtar_menu.py:30 -msgid "Find" +msgid "Treatment" msgstr "" #: models.py:31 diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index e08650308..813f31a3c 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -160,7 +160,7 @@ msgid "Template" msgstr "" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1426 models.py:2819 +#: forms_common.py:406 models.py:1426 models.py:2818 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -177,7 +177,7 @@ msgid "" msgstr "" #: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1599 -#: models.py:2445 models.py:2627 models.py:2689 +#: models.py:2445 models.py:2627 models.py:2688 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" @@ -196,7 +196,7 @@ msgstr "" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 #: forms_common.py:376 forms_common.py:446 models.py:1027 models.py:1359 -#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2805 +#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2804 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" @@ -245,7 +245,7 @@ msgid "Mobile phone" msgstr "" #: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2025 -#: models.py:2327 models.py:2740 templates/sheet_ope.html:85 +#: models.py:2327 models.py:2739 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -288,7 +288,7 @@ msgid "Identity" msgstr "" #: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1996 -#: models.py:2423 models.py:2425 models.py:2737 templates/sheet_ope.html:104 +#: models.py:2423 models.py:2425 models.py:2736 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" @@ -365,7 +365,7 @@ msgstr "" msgid "Account" msgstr "" -#: forms_common.py:575 wizards.py:1194 +#: forms_common.py:575 wizards.py:1217 msgid "New password" msgstr "" @@ -389,7 +389,7 @@ msgstr "" msgid "Send the new password by email?" msgstr "" -#: forms_common.py:628 forms_common.py:641 models.py:2820 +#: forms_common.py:628 forms_common.py:641 models.py:2819 msgid "Towns" msgstr "" @@ -405,7 +405,7 @@ msgstr "" msgid "Documentation informations" msgstr "" -#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2714 +#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2713 msgid "Source type" msgstr "" @@ -417,37 +417,37 @@ msgstr "" msgid "Internal reference" msgstr "" -#: forms_common.py:783 models.py:2751 +#: forms_common.py:783 models.py:2750 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:784 models.py:2753 +#: forms_common.py:784 models.py:2752 msgid "Receipt date" msgstr "" -#: forms_common.py:786 models.py:2154 models.py:2755 +#: forms_common.py:786 models.py:2154 models.py:2754 msgid "Creation date" msgstr "" -#: forms_common.py:789 models.py:2758 +#: forms_common.py:789 models.py:2757 msgid "Receipt date in documentation" msgstr "" #: forms_common.py:791 forms_common.py:827 models.py:322 models.py:627 -#: models.py:1891 models.py:2437 models.py:2765 +#: models.py:1891 models.py:2437 models.py:2764 msgid "Comment" msgstr "" #: forms_common.py:793 forms_common.py:826 models.py:1029 models.py:1649 -#: models.py:1823 models.py:1865 models.py:2764 templates/sheet_ope.html:128 +#: models.py:1823 models.py:1865 models.py:2763 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:796 models.py:2766 +#: forms_common.py:796 models.py:2765 msgid "Additional information" msgstr "" -#: forms_common.py:798 forms_common.py:830 models.py:2768 +#: forms_common.py:798 forms_common.py:830 models.py:2767 msgid "Has a duplicate" msgstr "" @@ -462,7 +462,7 @@ msgid "" "p>" msgstr "" -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2694 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2693 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" @@ -475,7 +475,7 @@ msgstr "" msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:856 models.py:1998 models.py:2682 models.py:2691 +#: forms_common.py:856 models.py:1998 models.py:2681 models.py:2690 msgid "Author type" msgstr "" @@ -487,7 +487,7 @@ msgstr "" msgid "There are identical authors." msgstr "" -#: forms_common.py:893 models.py:2695 models.py:2747 +#: forms_common.py:893 models.py:2694 models.py:2746 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -505,7 +505,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1155 views.py:1501 +#: ishtar_menu.py:39 models.py:1155 views.py:1513 msgid "Global variables" msgstr "" @@ -537,11 +537,11 @@ msgstr "" msgid "Imports" msgstr "" -#: ishtar_menu.py:112 views.py:1509 +#: ishtar_menu.py:112 views.py:1521 msgid "New import" msgstr "" -#: ishtar_menu.py:116 views.py:1523 +#: ishtar_menu.py:116 views.py:1535 msgid "Current imports" msgstr "" @@ -589,7 +589,7 @@ msgstr "" msgid "Creator" msgstr "" -#: models.py:891 models.py:2831 +#: models.py:891 models.py:2830 msgid "Order" msgstr "" @@ -834,11 +834,11 @@ msgstr "" msgid "Operation source" msgstr "" -#: models.py:1609 views.py:1317 views.py:1367 +#: models.py:1609 views.py:1329 views.py:1379 msgid "Archaeological files" msgstr "" -#: models.py:1611 views.py:1320 views.py:1375 +#: models.py:1611 views.py:1332 views.py:1387 msgid "Context records" msgstr "" @@ -970,11 +970,11 @@ msgstr "" msgid "Importer - Targets keys" msgstr "" -#: models.py:1999 models.py:2730 models.py:2743 +#: models.py:1999 models.py:2729 models.py:2742 msgid "Format" msgstr "" -#: models.py:2000 models.py:2835 +#: models.py:2000 models.py:2834 msgid "Operation type" msgstr "" @@ -1022,7 +1022,7 @@ msgstr "" msgid "Context record relation type" msgstr "" -#: models.py:2015 models.py:2722 +#: models.py:2015 models.py:2721 msgid "Support type" msgstr "" @@ -1300,71 +1300,71 @@ msgstr "" msgid "Ishtar users" msgstr "" -#: models.py:2677 +#: models.py:2676 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2683 +#: models.py:2682 msgid "Author types" msgstr "" -#: models.py:2715 +#: models.py:2714 msgid "Source types" msgstr "" -#: models.py:2723 +#: models.py:2722 msgid "Support types" msgstr "" -#: models.py:2731 +#: models.py:2730 msgid "Formats" msgstr "" -#: models.py:2738 +#: models.py:2737 msgid "External ID" msgstr "" -#: models.py:2741 +#: models.py:2740 msgid "Support" msgstr "" -#: models.py:2745 +#: models.py:2744 msgid "Scale" msgstr "" -#: models.py:2759 +#: models.py:2758 msgid "Item number" msgstr "" -#: models.py:2760 +#: models.py:2759 msgid "Ref." msgstr "" -#: models.py:2763 +#: models.py:2762 msgid "Internal ref." msgstr "" -#: models.py:2806 +#: models.py:2805 msgid "Surface (m2)" msgstr "" -#: models.py:2807 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2806 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2832 +#: models.py:2831 msgid "Is preventive" msgstr "" -#: models.py:2836 +#: models.py:2835 msgid "Operation types" msgstr "" -#: models.py:2865 +#: models.py:2864 msgid "Preventive" msgstr "" -#: models.py:2866 +#: models.py:2865 msgid "Research" msgstr "" @@ -1420,76 +1420,76 @@ msgstr "" msgid "Find" msgstr "" -#: views.py:1256 views.py:1299 +#: views.py:1268 views.py:1311 msgid "Operation not permitted." msgstr "" -#: views.py:1258 +#: views.py:1270 #, python-format msgid "New %s" msgstr "" -#: views.py:1318 views.py:1371 +#: views.py:1330 views.py:1383 msgid "Operations" msgstr "" -#: views.py:1322 views.py:1378 +#: views.py:1334 views.py:1390 msgid "Finds" msgstr "" -#: views.py:1570 templates/ishtar/import_list.html:43 +#: views.py:1582 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "" -#: views.py:1585 +#: views.py:1597 msgid "Delete import" msgstr "" -#: views.py:1624 +#: views.py:1636 msgid "Merge persons" msgstr "" -#: views.py:1648 +#: views.py:1660 msgid "Select the main person" msgstr "" -#: views.py:1657 +#: views.py:1669 msgid "Merge organization" msgstr "" -#: views.py:1667 +#: views.py:1679 msgid "Select the main organization" msgstr "" -#: views.py:1707 views.py:1723 +#: views.py:1719 views.py:1735 msgid "Corporation manager" msgstr "" -#: widgets.py:239 widgets.py:347 widgets.py:462 +#: widgets.py:239 widgets.py:346 widgets.py:461 msgid "Search..." msgstr "" -#: widgets.py:642 templatetags/window_tables.py:79 +#: widgets.py:643 templatetags/window_tables.py:81 msgid "No results" msgstr "" -#: widgets.py:643 templatetags/window_tables.py:80 +#: widgets.py:644 templatetags/window_tables.py:82 msgid "Loading..." msgstr "" -#: widgets.py:644 +#: widgets.py:645 msgid "Remove" msgstr "" -#: wizards.py:323 templates/ishtar/import_delete.html:20 +#: wizards.py:335 templates/ishtar/import_delete.html:20 msgid "Yes" msgstr "" -#: wizards.py:325 +#: wizards.py:337 msgid "No" msgstr "" -#: wizards.py:1251 +#: wizards.py:1274 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" diff --git a/translations/de/ishtar_common.po b/translations/de/ishtar_common.po index eecb5750e..42a4962c0 100644 --- a/translations/de/ishtar_common.po +++ b/translations/de/ishtar_common.po @@ -163,7 +163,7 @@ msgid "Template" msgstr "" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1426 models.py:2819 +#: forms_common.py:406 models.py:1426 models.py:2818 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -180,7 +180,7 @@ msgid "" msgstr "" #: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1599 -#: models.py:2445 models.py:2627 models.py:2689 +#: models.py:2445 models.py:2627 models.py:2688 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" @@ -199,7 +199,7 @@ msgstr "" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 #: forms_common.py:376 forms_common.py:446 models.py:1027 models.py:1359 -#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2805 +#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2804 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" @@ -248,7 +248,7 @@ msgid "Mobile phone" msgstr "" #: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2025 -#: models.py:2327 models.py:2740 templates/sheet_ope.html:85 +#: models.py:2327 models.py:2739 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -291,7 +291,7 @@ msgid "Identity" msgstr "" #: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1996 -#: models.py:2423 models.py:2425 models.py:2737 templates/sheet_ope.html:104 +#: models.py:2423 models.py:2425 models.py:2736 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" @@ -368,7 +368,7 @@ msgstr "" msgid "Account" msgstr "" -#: forms_common.py:575 wizards.py:1194 +#: forms_common.py:575 wizards.py:1217 msgid "New password" msgstr "" @@ -392,7 +392,7 @@ msgstr "" msgid "Send the new password by email?" msgstr "" -#: forms_common.py:628 forms_common.py:641 models.py:2820 +#: forms_common.py:628 forms_common.py:641 models.py:2819 msgid "Towns" msgstr "" @@ -408,7 +408,7 @@ msgstr "" msgid "Documentation informations" msgstr "" -#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2714 +#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2713 msgid "Source type" msgstr "" @@ -420,37 +420,37 @@ msgstr "" msgid "Internal reference" msgstr "" -#: forms_common.py:783 models.py:2751 +#: forms_common.py:783 models.py:2750 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:784 models.py:2753 +#: forms_common.py:784 models.py:2752 msgid "Receipt date" msgstr "" -#: forms_common.py:786 models.py:2154 models.py:2755 +#: forms_common.py:786 models.py:2154 models.py:2754 msgid "Creation date" msgstr "" -#: forms_common.py:789 models.py:2758 +#: forms_common.py:789 models.py:2757 msgid "Receipt date in documentation" msgstr "" #: forms_common.py:791 forms_common.py:827 models.py:322 models.py:627 -#: models.py:1891 models.py:2437 models.py:2765 +#: models.py:1891 models.py:2437 models.py:2764 msgid "Comment" msgstr "" #: forms_common.py:793 forms_common.py:826 models.py:1029 models.py:1649 -#: models.py:1823 models.py:1865 models.py:2764 templates/sheet_ope.html:128 +#: models.py:1823 models.py:1865 models.py:2763 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:796 models.py:2766 +#: forms_common.py:796 models.py:2765 msgid "Additional information" msgstr "" -#: forms_common.py:798 forms_common.py:830 models.py:2768 +#: forms_common.py:798 forms_common.py:830 models.py:2767 msgid "Has a duplicate" msgstr "" @@ -465,7 +465,7 @@ msgid "" "p>" msgstr "" -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2694 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2693 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" @@ -478,7 +478,7 @@ msgstr "" msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:856 models.py:1998 models.py:2682 models.py:2691 +#: forms_common.py:856 models.py:1998 models.py:2681 models.py:2690 msgid "Author type" msgstr "" @@ -490,7 +490,7 @@ msgstr "" msgid "There are identical authors." msgstr "" -#: forms_common.py:893 models.py:2695 models.py:2747 +#: forms_common.py:893 models.py:2694 models.py:2746 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -508,7 +508,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1155 views.py:1501 +#: ishtar_menu.py:39 models.py:1155 views.py:1513 msgid "Global variables" msgstr "" @@ -540,11 +540,11 @@ msgstr "" msgid "Imports" msgstr "" -#: ishtar_menu.py:112 views.py:1509 +#: ishtar_menu.py:112 views.py:1521 msgid "New import" msgstr "" -#: ishtar_menu.py:116 views.py:1523 +#: ishtar_menu.py:116 views.py:1535 msgid "Current imports" msgstr "" @@ -592,7 +592,7 @@ msgstr "" msgid "Creator" msgstr "" -#: models.py:891 models.py:2831 +#: models.py:891 models.py:2830 msgid "Order" msgstr "" @@ -837,11 +837,11 @@ msgstr "" msgid "Operation source" msgstr "" -#: models.py:1609 views.py:1317 views.py:1367 +#: models.py:1609 views.py:1329 views.py:1379 msgid "Archaeological files" msgstr "" -#: models.py:1611 views.py:1320 views.py:1375 +#: models.py:1611 views.py:1332 views.py:1387 msgid "Context records" msgstr "" @@ -973,11 +973,11 @@ msgstr "" msgid "Importer - Targets keys" msgstr "" -#: models.py:1999 models.py:2730 models.py:2743 +#: models.py:1999 models.py:2729 models.py:2742 msgid "Format" msgstr "" -#: models.py:2000 models.py:2835 +#: models.py:2000 models.py:2834 msgid "Operation type" msgstr "" @@ -1025,7 +1025,7 @@ msgstr "" msgid "Context record relation type" msgstr "" -#: models.py:2015 models.py:2722 +#: models.py:2015 models.py:2721 msgid "Support type" msgstr "" @@ -1303,71 +1303,71 @@ msgstr "" msgid "Ishtar users" msgstr "" -#: models.py:2677 +#: models.py:2676 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2683 +#: models.py:2682 msgid "Author types" msgstr "" -#: models.py:2715 +#: models.py:2714 msgid "Source types" msgstr "" -#: models.py:2723 +#: models.py:2722 msgid "Support types" msgstr "" -#: models.py:2731 +#: models.py:2730 msgid "Formats" msgstr "" -#: models.py:2738 +#: models.py:2737 msgid "External ID" msgstr "" -#: models.py:2741 +#: models.py:2740 msgid "Support" msgstr "" -#: models.py:2745 +#: models.py:2744 msgid "Scale" msgstr "" -#: models.py:2759 +#: models.py:2758 msgid "Item number" msgstr "" -#: models.py:2760 +#: models.py:2759 msgid "Ref." msgstr "" -#: models.py:2763 +#: models.py:2762 msgid "Internal ref." msgstr "" -#: models.py:2806 +#: models.py:2805 msgid "Surface (m2)" msgstr "" -#: models.py:2807 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2806 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2832 +#: models.py:2831 msgid "Is preventive" msgstr "" -#: models.py:2836 +#: models.py:2835 msgid "Operation types" msgstr "" -#: models.py:2865 +#: models.py:2864 msgid "Preventive" msgstr "" -#: models.py:2866 +#: models.py:2865 msgid "Research" msgstr "" @@ -1423,76 +1423,76 @@ msgstr "" msgid "Find" msgstr "" -#: views.py:1256 views.py:1299 +#: views.py:1268 views.py:1311 msgid "Operation not permitted." msgstr "" -#: views.py:1258 +#: views.py:1270 #, python-format msgid "New %s" msgstr "" -#: views.py:1318 views.py:1371 +#: views.py:1330 views.py:1383 msgid "Operations" msgstr "" -#: views.py:1322 views.py:1378 +#: views.py:1334 views.py:1390 msgid "Finds" msgstr "" -#: views.py:1570 templates/ishtar/import_list.html:43 +#: views.py:1582 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "" -#: views.py:1585 +#: views.py:1597 msgid "Delete import" msgstr "" -#: views.py:1624 +#: views.py:1636 msgid "Merge persons" msgstr "" -#: views.py:1648 +#: views.py:1660 msgid "Select the main person" msgstr "" -#: views.py:1657 +#: views.py:1669 msgid "Merge organization" msgstr "" -#: views.py:1667 +#: views.py:1679 msgid "Select the main organization" msgstr "" -#: views.py:1707 views.py:1723 +#: views.py:1719 views.py:1735 msgid "Corporation manager" msgstr "" -#: widgets.py:239 widgets.py:347 widgets.py:462 +#: widgets.py:239 widgets.py:346 widgets.py:461 msgid "Search..." msgstr "" -#: widgets.py:642 templatetags/window_tables.py:79 +#: widgets.py:643 templatetags/window_tables.py:81 msgid "No results" msgstr "" -#: widgets.py:643 templatetags/window_tables.py:80 +#: widgets.py:644 templatetags/window_tables.py:82 msgid "Loading..." msgstr "" -#: widgets.py:644 +#: widgets.py:645 msgid "Remove" msgstr "" -#: wizards.py:323 templates/ishtar/import_delete.html:20 +#: wizards.py:335 templates/ishtar/import_delete.html:20 msgid "Yes" msgstr "" -#: wizards.py:325 +#: wizards.py:337 msgid "No" msgstr "" -#: wizards.py:1251 +#: wizards.py:1274 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index fb7cb2540..2a2c1bdcb 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -34,7 +34,7 @@ msgstr "Autre référence" msgid "Parcel (section/number/public domain)" msgstr "Parcelle (section/numéro/domaine public)" -#: forms.py:55 forms.py:407 forms.py:434 models.py:544 +#: forms.py:55 forms.py:407 forms.py:434 models.py:546 msgid "Department" msgstr "Département" @@ -415,15 +415,15 @@ msgstr "Peut fermer un Dossier" msgid "FILE" msgstr "DOSSIER" -#: models.py:404 +#: models.py:406 msgid "Multi-town" msgstr "Intercommunal" -#: models.py:410 +#: models.py:412 msgid "No town" msgstr "Pas de commune" -#: models.py:543 +#: models.py:545 msgid "File" msgstr "Dossier" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index bf5455145..6d0d5bf5d 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -9,132 +9,144 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-11-14 05:46-0500\n" -"Last-Translator: Valérie-Emma Leroux \n" +"PO-Revision-Date: 2016-12-04 07:51-0500\n" +"Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" -#: forms.py:50 forms.py:54 wizards.py:60 +#: forms.py:55 forms.py:59 wizards.py:60 msgid "Context record" msgstr "Unité d'Enregistrement" -#: forms.py:83 ishtar_menu.py:31 models.py:440 models.py:754 models.py:854 -#: models.py:1004 templates/ishtar/sheet_find.html:5 +#: forms.py:88 ishtar_menu.py:31 models.py:451 models.py:771 models.py:942 +#: models.py:1104 templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "Mobilier" -#: forms.py:94 forms.py:218 forms.py:425 models.py:127 models.py:377 +#: forms.py:99 forms.py:230 forms.py:454 models.py:129 models.py:382 msgid "Free ID" msgstr "ID libre" -#: forms.py:96 models.py:426 +#: forms.py:101 models.py:437 msgid "Previous ID" msgstr "Identifiant précédent" -#: forms.py:97 forms.py:250 forms.py:591 models.py:131 models.py:378 -#: models.py:788 +#: forms.py:102 forms.py:262 forms.py:687 models.py:133 models.py:383 +#: models.py:841 msgid "Description" msgstr "Description" -#: forms.py:100 forms.py:252 models.py:142 +#: forms.py:105 forms.py:264 models.py:144 msgid "Batch/object" msgstr "Lot/objet" -#: forms.py:102 models.py:406 +#: forms.py:107 models.py:411 msgid "Is complete?" msgstr "Est complet ?" -#: forms.py:105 forms.py:240 forms.py:429 models.py:50 +#: forms.py:110 forms.py:252 forms.py:458 models.py:52 msgid "Material type" msgstr "Type de matériau" -#: forms.py:106 forms.py:244 models.py:62 models.py:382 +#: forms.py:111 forms.py:256 models.py:64 models.py:387 msgid "Conservatory state" msgstr "État sanitaire" -#: forms.py:109 models.py:384 +#: forms.py:114 models.py:389 msgid "Conservatory comment" msgstr "Commentaire relatif à la conservation" -#: forms.py:112 models.py:102 models.py:409 +#: forms.py:117 models.py:104 models.py:414 msgid "Object types" msgstr "Types d'objet" -#: forms.py:114 forms.py:243 models.py:71 +#: forms.py:119 forms.py:255 models.py:73 msgid "Preservation type" msgstr "Type de conservation" -#: forms.py:117 forms.py:246 models.py:411 +#: forms.py:122 forms.py:258 models.py:416 msgid "Integrity / interest" msgstr "Intégrité / intérêt" -#: forms.py:120 forms.py:248 models.py:414 +#: forms.py:125 forms.py:260 models.py:419 msgid "Remarkability" msgstr "Remarquabilité" -#: forms.py:122 models.py:416 +#: forms.py:128 models.py:429 +msgid "Point of topographic reference" +msgstr "Point de référence topographique" + +#: forms.py:131 models.py:423 msgid "Length (cm)" msgstr "Longueur (cm)" -#: forms.py:123 models.py:417 +#: forms.py:132 models.py:424 msgid "Width (cm)" msgstr "Largeur (cm)" -#: forms.py:124 models.py:418 +#: forms.py:133 models.py:425 msgid "Height (cm)" msgstr "Hauteur (cm)" -#: forms.py:125 models.py:419 +#: forms.py:134 models.py:426 msgid "Diameter (cm)" msgstr "Diamètre (cm)" -#: forms.py:126 forms.py:430 models.py:389 +#: forms.py:135 models.py:427 +msgid "Thickness (cm)" +msgstr "Épaisseur (cm)" + +#: forms.py:136 forms.py:459 models.py:394 msgid "Volume (l)" msgstr "Volume (l)" -#: forms.py:127 forms.py:431 models.py:390 +#: forms.py:137 forms.py:460 models.py:395 msgid "Weight (g)" msgstr "Poids (g)" -#: forms.py:129 models.py:420 +#: forms.py:139 models.py:431 msgid "Dimensions comment" msgstr "Commentaire concernant les dimensions" -#: forms.py:130 forms.py:432 models.py:393 +#: forms.py:140 forms.py:461 models.py:398 msgid "Find number" msgstr "Mobilier (en nombre)" -#: forms.py:131 models.py:422 +#: forms.py:142 models.py:422 +msgid "Minimum number of individuals (MNI)" +msgstr "Nombre minimum d'individus (NMI)" + +#: forms.py:143 models.py:433 msgid "Mark" msgstr "Marque" -#: forms.py:132 forms.py:254 models.py:428 +#: forms.py:144 forms.py:266 models.py:439 msgid "Check" msgstr "Vérification" -#: forms.py:134 models.py:430 +#: forms.py:146 models.py:441 msgid "Check date" msgstr "Date de vérification" -#: forms.py:135 models.py:132 models.py:423 models.py:789 +#: forms.py:147 forms.py:685 models.py:134 models.py:434 models.py:840 msgid "Comment" msgstr "Commentaires" -#: forms.py:138 models.py:424 +#: forms.py:150 models.py:435 msgid "Comment on dating" msgstr "Commentaire général sur les datations" -#: forms.py:139 models.py:432 +#: forms.py:151 models.py:443 msgid "Estimated value" msgstr "Valeur estimée" -#: forms.py:141 +#: forms.py:153 forms.py:696 msgid "Image" msgstr "Image" -#: forms.py:142 +#: forms.py:154 forms.py:697 #, python-format msgid "" "

      Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

      " -#: forms.py:181 forms.py:212 models.py:401 +#: forms.py:193 forms.py:224 models.py:406 msgid "Dating" msgstr "Datation" -#: forms.py:186 forms.py:238 +#: forms.py:198 forms.py:250 msgid "Period" msgstr "Période" -#: forms.py:187 forms.py:593 models.py:802 models.py:867 models.py:1009 -#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:121 +#: forms.py:199 forms.py:691 models.py:843 models.py:955 models.py:1109 +#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 msgid "Start date" msgstr "Date de début" -#: forms.py:189 forms.py:595 models.py:803 models.py:868 models.py:1010 -#: templates/ishtar/sheet_find.html:93 templates/ishtar/sheet_find.html:122 +#: forms.py:201 forms.py:693 models.py:844 models.py:956 models.py:1110 +#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 msgid "End date" msgstr "Date de fin" -#: forms.py:190 +#: forms.py:202 msgid "Quality" msgstr "Qualité" -#: forms.py:192 +#: forms.py:204 msgid "Dating type" msgstr "Type de datation" -#: forms.py:194 +#: forms.py:206 msgid "Precise dating" msgstr "Datation précise" -#: forms.py:216 models.py:150 +#: forms.py:228 models.py:152 msgid "Short ID" msgstr "ID court" -#: forms.py:217 models.py:153 +#: forms.py:229 models.py:155 msgid "Complete ID" msgstr "ID complet" -#: forms.py:221 +#: forms.py:233 forms.py:610 forms.py:651 models.py:823 msgid "Year" msgstr "Année" -#: forms.py:223 +#: forms.py:235 msgid "Operation's number (index by year)" msgstr "Numéro de l'opération (index par année)" -#: forms.py:226 +#: forms.py:238 msgid "Code PATRIARCHE" msgstr "Code PATRIARCHE" -#: forms.py:230 +#: forms.py:242 msgid "Archaeological site" msgstr "Entité archéologique" -#: forms.py:236 +#: forms.py:248 msgid "Search within related operations" msgstr "Rechercher parmi les opérations liées" -#: forms.py:241 models.py:101 +#: forms.py:253 models.py:103 msgid "Object type" msgstr "Type d'objet" -#: forms.py:255 +#: forms.py:267 forms.py:613 msgid "Has an image?" msgstr "Dispose d'une image ?" -#: forms.py:297 forms.py:310 views.py:66 +#: forms.py:309 forms.py:322 views.py:73 msgid "Find search" msgstr "Rechercher un mobilier" -#: forms.py:324 +#: forms.py:336 templates/ishtar/sheet_treatment.html:36 msgid "Upstream finds" msgstr "Mobilier amont" -#: forms.py:326 models.py:441 +#: forms.py:338 models.py:452 msgid "Finds" msgstr "Mobilier" -#: forms.py:336 +#: forms.py:348 msgid "You should at least select one archaeological find." msgstr "Vous devez sélectionner au moins un mobilier archéologique." -#: forms.py:422 +#: forms.py:451 msgid "Resulting find" msgstr "Mobilier résultant" -#: forms.py:427 +#: forms.py:456 msgid "Precise description" msgstr "Description précise" -#: forms.py:442 +#: forms.py:471 msgid "Resulting finds" msgstr "Mobiliers résultants" -#: forms.py:447 +#: forms.py:476 msgid "Would you like to delete this find?" msgstr "Voulez-vous supprimer ce mobilier ?" -#: forms.py:451 +#: forms.py:480 models.py:816 msgid "Upstream find" msgstr "Mobilier amont" -#: forms.py:462 +#: forms.py:493 msgid "Archaeological find search" msgstr "Rechercher un mobilier" -#: forms.py:464 +#: forms.py:495 msgid "You should select an archaeological find." msgstr "Vous devez sélectionner du mobilier." -#: forms.py:469 +#: forms.py:500 msgid "Year of the operation" msgstr "Année de l'opération" -#: forms.py:471 +#: forms.py:502 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:478 +#: forms.py:509 msgid "Period of the archaeological find" msgstr "Période du mobilier" -#: forms.py:480 +#: forms.py:511 msgid "Material type of the archaeological find" msgstr "Type de matériau du mobilier" -#: forms.py:482 +#: forms.py:513 msgid "Description of the archaeological find" msgstr "Description du mobilier" -#: forms.py:494 +#: forms.py:525 msgid "Documentation search" msgstr "Rechercher une documentation" -#: forms.py:496 +#: forms.py:527 msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: forms.py:513 +#: forms.py:544 msgid "Another basket already exists with this name." msgstr "Un autre panier existant utilise déjà ce nom." -#: forms.py:523 ishtar_menu.py:60 +#: forms.py:554 forms.py:558 forms.py:713 ishtar_menu.py:55 msgid "Basket" msgstr "Panier" -#: forms.py:573 -msgid "Base treatment" -msgstr "Traitement de base" +#: forms.py:608 forms.py:647 models.py:819 templates/ishtar/sheet_find.html:90 +#: templates/ishtar/sheet_find.html:130 +msgid "Label" +msgstr "Intitulé" + +#: forms.py:609 forms.py:650 models.py:821 +msgid "Other ref." +msgstr "Autre réf." + +#: forms.py:611 forms.py:769 models.py:824 +msgid "Index" +msgstr "Index" -#: forms.py:578 models.py:776 models.py:791 models.py:866 +#: forms.py:612 forms.py:656 models.py:793 models.py:826 models.py:954 msgid "Treatment type" msgstr "Type de traitement" -#: forms.py:580 models.py:800 models.py:871 -#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:119 -msgid "Doer" -msgstr "Opérateur" +#: forms.py:624 views.py:302 +msgid "Treatment search" +msgstr "Recherche de traitements" + +#: forms.py:636 +msgid "Base treatment" +msgstr "Traitement de base" + +#: forms.py:658 +msgid "Target" +msgstr "Destination" -#: forms.py:586 models.py:793 models.py:869 +#: forms.py:660 models.py:833 +msgid "Responsible" +msgstr "Responsable" + +#: forms.py:666 models.py:836 +msgid "Organization" +msgstr "Organisation" + +#: forms.py:672 models.py:828 models.py:957 msgid "Location" msgstr "Lieu" -#: forms.py:607 -msgid "Leave it blank if you want to select a single item" -msgstr "Ne pas modifier si vous voulez sélectionner un seul élément" +#: forms.py:678 +msgid "Container (relevant for packaging)" +msgstr "Conteneur (pertinent dans le cadre du conditionnement)" + +#: forms.py:684 +msgid "External ref." +msgstr "Réf. externe" + +#: forms.py:689 models.py:842 +msgid "Goal" +msgstr "But" + +#: forms.py:713 +msgid "Single find" +msgstr "Mobilier isolé" + +#: forms.py:741 +msgid "" +"The container field is attached to the treatment. If no packaging treatment " +"is done it is not relevant." +msgstr "" +"Le champ concernant le conteneur est rattaché au traitement. Si aucun " +"conditionnement n'est réalisé, il n'est pas pertinent." + +#: forms.py:746 +msgid "If a packaging treatment is done, the container field must be filled." +msgstr "" +"Si un conditionnement est fait, le champ du conteneur doit être rempli." -#: forms.py:614 -msgid "This treatment type is not available." -msgstr "Ce type de traitement n'est pas disponible." +#: forms.py:750 +msgid "A responsible or an organization must be defined." +msgstr "Un responsable ou une organisation doit être défini." -#: forms.py:618 -msgid "This treatment needs a basket." -msgstr "Ce traitement nécessite de sélectionner un panier." +#: forms.py:782 +msgid "Another treatment with this index exists for {}." +msgstr "Un autre traitement avec cet index existe pour {}." -#: ishtar_menu.py:35 ishtar_menu.py:83 +#: forms.py:789 +msgid "" +"Are you sure you want to delete this treatment? All modification made to the " +"associated finds since this treatment record will be lost!" +msgstr "" +"Êtes-vous sûr de vouloir supprimer ce traitement ? Toutes les modifications " +"sur le mobilier associé réalisées depuis l'enregistrement de ce traitement " +"seront perdues !" + +#: forms.py:792 +msgid "Would you like to delete this treatment?" +msgstr "Voulez-vous supprimer ce traitement ?" + +#: ishtar_menu.py:35 ishtar_menu.py:78 ishtar_menu.py:113 msgid "Search" msgstr "Recherche" -#: ishtar_menu.py:40 ishtar_menu.py:63 ishtar_menu.py:88 +#: ishtar_menu.py:40 ishtar_menu.py:58 ishtar_menu.py:83 ishtar_menu.py:118 msgid "Creation" msgstr "Ajout" -#: ishtar_menu.py:45 ishtar_menu.py:93 +#: ishtar_menu.py:45 ishtar_menu.py:88 ishtar_menu.py:123 msgid "Modification" msgstr "Modification" -#: ishtar_menu.py:55 ishtar_menu.py:74 ishtar_menu.py:98 +#: ishtar_menu.py:50 ishtar_menu.py:69 ishtar_menu.py:93 ishtar_menu.py:128 msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:68 +#: ishtar_menu.py:63 msgid "Manage items" msgstr "Gérer les éléments" -#: ishtar_menu.py:80 +#: ishtar_menu.py:75 msgid "Documentation" msgstr "Documentation" -#: models.py:43 +#: ishtar_menu.py:106 models.py:851 models.py:944 models.py:1096 +#: templates/ishtar/sheet_treatment.html:5 +msgid "Treatment" +msgstr "Traitement" + +#: ishtar_menu.py:110 +msgid "Simple treatments" +msgstr "Traitements simples" + +#: models.py:45 msgid "Code" msgstr "Code" -#: models.py:44 +#: models.py:46 msgid "Recommendation" msgstr "Recommandation" -#: models.py:47 +#: models.py:49 msgid "Parent material" msgstr "Matériau parent" -#: models.py:51 models.py:380 +#: models.py:53 models.py:385 msgid "Material types" msgstr "Types de matériau" -#: models.py:59 +#: models.py:61 msgid "Parent conservatory state" msgstr "État sanitaire - parent" -#: models.py:63 +#: models.py:65 msgid "Conservatory states" msgstr "États sanitaires" -#: models.py:72 +#: models.py:74 msgid "Preservation types" msgstr "Types de conservation" -#: models.py:80 +#: models.py:82 msgid "Integrity / interest type" msgstr "Type d'intégrité / intérêt" -#: models.py:81 +#: models.py:83 msgid "Integrity / interest types" msgstr "Types d'intégrité / intérêt" -#: models.py:89 +#: models.py:91 msgid "Remarkability type" msgstr "Type de remarquabilité" -#: models.py:90 +#: models.py:92 msgid "Remarkability types" msgstr "Types de remarquabilité" -#: models.py:98 +#: models.py:100 msgid "Parent" msgstr "Parent" -#: models.py:119 +#: models.py:121 msgid "Unknow" msgstr "Inconnu" -#: models.py:120 +#: models.py:122 msgid "Object" msgstr "Objet" -#: models.py:121 +#: models.py:123 msgid "Batch" msgstr "Lot" -#: models.py:128 models.py:373 models.py:784 +#: models.py:130 models.py:378 models.py:838 msgid "External ID" msgstr "ID externe" -#: models.py:130 models.py:375 +#: models.py:132 models.py:380 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:134 +#: models.py:136 msgid "Topographic localisation" msgstr "Localisation topogaphique" -#: models.py:135 +#: models.py:137 msgid "Special interest" msgstr "Intérêt spécifique" -#: models.py:139 +#: models.py:141 msgid "Context Record" msgstr "Unité d'Enregistrement" -#: models.py:140 +#: models.py:142 msgid "Discovery date" msgstr "Date de découverte" -#: models.py:145 +#: models.py:147 msgid "Material index" msgstr "Index matériel" -#: models.py:146 +#: models.py:148 msgid "Point" msgstr "Point" -#: models.py:147 +#: models.py:149 msgid "Line" msgstr "Ligne" -#: models.py:148 +#: models.py:150 msgid "Polygon" msgstr "Polygon" -#: models.py:151 models.py:154 +#: models.py:153 models.py:156 msgid "Cached value - do not edit" msgstr "Valeur en cache - ne pas éditer" -#: models.py:159 models.py:371 +#: models.py:161 models.py:376 msgid "Base find" msgstr "Mobilier de base" -#: models.py:160 +#: models.py:162 msgid "Base finds" msgstr "Mobilier de base" -#: models.py:162 +#: models.py:164 msgid "Can view all Base finds" msgstr "Peut voir tout le Mobilier de base" -#: models.py:163 +#: models.py:165 msgid "Can view own Base find" msgstr "Peut voir son propre Mobilier de base" -#: models.py:164 +#: models.py:166 msgid "Can add own Base find" msgstr "Peut ajouter son propre Mobilier de base" -#: models.py:165 +#: models.py:167 msgid "Can change own Base find" msgstr "Peut modifier son propre Mobilier de base" -#: models.py:166 +#: models.py:168 msgid "Can delete own Base find" msgstr "Peut supprimer son propre Mobilier de base" -#: models.py:276 +#: models.py:278 msgid "g" msgstr "g" -#: models.py:277 +#: models.py:279 msgid "kg" msgstr "kg" -#: models.py:279 +#: models.py:281 msgid "Not checked" msgstr "Non vérifié" -#: models.py:280 +#: models.py:282 msgid "Checked but incorrect" msgstr "Vérifié mais incorrect" -#: models.py:281 +#: models.py:283 msgid "Checked and correct" msgstr "Vérifié et correct" -#: models.py:321 +#: models.py:316 +msgid "Periods" +msgstr "Périodes" + +#: models.py:326 msgid "Base find - Short ID" msgstr "Mobilier de base - ID court" -#: models.py:322 +#: models.py:327 msgid "Base find - Complete ID" msgstr "Mobilier de base - ID complet" -#: models.py:323 +#: models.py:328 msgid "Base find - Comment" msgstr "Mobilier de base - Commentaires" -#: models.py:324 +#: models.py:329 msgid "Base find - Description" msgstr "Mobilier de base - Description" -#: models.py:325 +#: models.py:330 msgid "Base find - Topographic localisation" msgstr "Mobilier de base - Localisation topographique" -#: models.py:327 +#: models.py:332 msgid "Base find - Special interest" msgstr "Mobilier de base - Intérêt spécifique" -#: models.py:328 +#: models.py:333 msgid "Base find - Discovery date" msgstr "Mobilier de base - Date de découverte" -#: models.py:376 models.py:860 +#: models.py:381 models.py:948 msgid "Order" msgstr "Ordre" -#: models.py:387 +#: models.py:392 msgid "Type of preservation to consider" msgstr "Mesures de conservation à envisager" -#: models.py:391 +#: models.py:396 msgid "Weight unit" msgstr "Unité de poids" -#: models.py:397 templates/ishtar/sheet_find.html:83 +#: models.py:402 templates/ishtar/sheet_find.html:83 msgid "Upstream treatment" msgstr "Traitement amont" -#: models.py:400 templates/ishtar/sheet_find.html:112 +#: models.py:405 templates/ishtar/sheet_find.html:123 msgid "Downstream treatment" msgstr "Traitement aval" -#: models.py:404 models.py:786 models.py:870 -#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:120 +#: models.py:409 models.py:845 models.py:958 +#: templates/ishtar/sheet_find.html:94 templates/ishtar/sheet_find.html:134 msgid "Container" msgstr "Contenant" -#: models.py:434 +#: models.py:445 msgid "Cached name" msgstr "Nom en cache" -#: models.py:443 +#: models.py:454 msgid "Can view all Finds" msgstr "Peut voir tout le Mobilier" -#: models.py:444 +#: models.py:455 msgid "Can view own Find" msgstr "Peut voir son propre Mobilier" -#: models.py:445 +#: models.py:456 msgid "Can add own Find" msgstr "Peut ajouter son propre Mobilier" -#: models.py:446 +#: models.py:457 msgid "Can change own Find" msgstr "Peut modifier son propre Mobilier" -#: models.py:447 +#: models.py:458 msgid "Can delete own Find" msgstr "Peut supprimer son propre Mobilier" -#: models.py:453 +#: models.py:464 msgid "FIND" msgstr "MOBILIER" -#: models.py:752 +#: models.py:769 msgid "Find documentation" msgstr "Documentation de mobilier" -#: models.py:753 +#: models.py:770 msgid "Find documentations" msgstr "Documentations de mobilier" -#: models.py:763 +#: models.py:780 msgid "Virtual" msgstr "Virtuel" -#: models.py:765 +#: models.py:782 msgid "Upstream is many" msgstr "Les éléments amont sont multiples" -#: models.py:767 +#: models.py:784 msgid "Check this if for this treatment from many finds you'll get one." msgstr "" "Cochez cela si, pour ce traitement, à partir de plusieurs éléments vous en " "obtenez un seul." -#: models.py:770 +#: models.py:787 msgid "Downstream is many" msgstr "Les éléments aval sont multiples" -#: models.py:772 +#: models.py:789 msgid "Check this if for this treatment from one find you'll get many." msgstr "" "Cochez cela si, pour ce traitement, à partir d'un seul élément vous en " "obtenez plusieurs." -#: models.py:777 +#: models.py:794 msgid "Treatment types" msgstr "Types de traitement" -#: models.py:795 +#: models.py:815 +msgid "Downstream find" +msgstr "Mobilier aval" + +#: models.py:830 msgid "Location where the treatment is done. Target warehouse for a move." msgstr "" "Endroit où le traitement est réalisé. Renseignez le dépôt de destination " "pour un déplacement." -#: models.py:797 -msgid "Other location" -msgstr "Autre lieu" - -#: models.py:807 models.py:856 models.py:996 -msgid "Treatment" -msgstr "Traitement" +#: models.py:847 +msgid "Target a basket" +msgstr "Cible un panier" -#: models.py:808 templates/ishtar/sheet_find.html:80 +#: models.py:852 templates/ishtar/sheet_find.html:80 msgid "Treatments" msgstr "Traitements" -#: models.py:810 +#: models.py:855 msgid "Can view all Treatments" msgstr "Peut voir tous les Traitements" -#: models.py:811 +#: models.py:856 msgid "Can view own Treatment" msgstr "Peut voir son propre Traitement" -#: models.py:812 +#: models.py:857 msgid "Can add own Treatment" msgstr "Peut ajouter son propre Traitement" -#: models.py:813 +#: models.py:858 msgid "Can change own Treatment" msgstr "Peut modifier son propre Traitement" -#: models.py:814 +#: models.py:859 msgid "Can delete own Treatment" msgstr "Peut supprimer son propre Traitement" -#: models.py:820 +#: models.py:865 msgid "by" msgstr "par" -#: models.py:872 models.py:873 templates/ishtar/sheet_find.html:89 -#: templates/ishtar/sheet_find.html:118 +#: models.py:959 templates/ishtar/sheet_find.html:93 +#: templates/ishtar/sheet_find.html:133 +msgid "Doer" +msgstr "Opérateur" + +#: models.py:960 models.py:961 templates/ishtar/sheet_find.html:92 +#: templates/ishtar/sheet_find.html:132 msgid "Related finds" msgstr "Mobilier associé" -#: models.py:982 +#: models.py:1082 msgid "Is upstream" msgstr "Est en amont" -#: models.py:993 +#: models.py:1093 msgid "Treatment documentation" msgstr "Documentation d'un traitement" -#: models.py:994 +#: models.py:1094 msgid "Treament documentations" msgstr "Documentations des traitements" -#: models.py:1006 +#: models.py:1106 msgid "Administrative act" msgstr "Acte administratif" -#: models.py:1007 +#: models.py:1107 msgid "Person" msgstr "Individu" -#: models.py:1013 +#: models.py:1113 msgid "Property" msgstr "Propriété" -#: models.py:1014 +#: models.py:1114 msgid "Properties" msgstr "Propriétés" -#: views.py:61 +#: views.py:68 msgid "New find" msgstr "Ajouter un mobilier" -#: views.py:75 +#: views.py:82 msgid "Find modification" msgstr "Modifier un mobilier" -#: views.py:90 +#: views.py:97 msgid "Find deletion" msgstr "Supprimer un mobilier" -#: views.py:95 +#: views.py:102 msgid "Find: source search" msgstr "Mobilier : rechercher une documentation associée" -#: views.py:103 +#: views.py:110 msgid "Find: new source" msgstr "Mobilier : ajouter une documentation associée" -#: views.py:111 +#: views.py:118 msgid "Find: source modification" msgstr "Mobilier : modifier une documentation associée" -#: views.py:126 +#: views.py:133 msgid "Find: source deletion" msgstr "Mobilier : supprimer un mobilier associé" -#: views.py:140 +#: views.py:147 msgid "New basket" msgstr "Ajouter un panier" -#: views.py:159 +#: views.py:166 msgid "Manage items in basket" msgstr "Gérer les éléments dans un panier" -#: views.py:179 +#: views.py:186 msgid "Manage basket" msgstr "Gérer un panier" -#: views.py:267 +#: views.py:274 msgid "Delete basket" msgstr "Supprimer un panier" -#: views.py:303 +#: views.py:323 msgid "New treatment" msgstr "Ajouter un traitement" +#: views.py:330 +msgid "Modify" +msgstr "Modifier" + +#: views.py:337 +msgid "Treatment deletion" +msgstr "Suppression d'un traitement" + #: wizards.py:59 msgid "Operation" msgstr "Opération" -#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:117 -#: templates/ishtar/sheet_find.html:187 +#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:129 +msgid "Year - index" +msgstr "Année - index" + +#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:131 +#: templates/ishtar/sheet_find.html:209 msgid "Type" msgstr "Type" -#: templates/ishtar/sheet_find.html:108 +#: templates/ishtar/sheet_find.html:119 msgid "Export as CSV" msgstr "Export en CSV" -#: templates/ishtar/sheet_find.html:108 templates/ishtar/sheet_find.html:138 +#: templates/ishtar/sheet_find.html:119 templates/ishtar/sheet_find.html:160 msgid "CSV" msgstr "CSV" -#: templates/ishtar/sheet_find.html:143 +#: templates/ishtar/sheet_find.html:165 msgid "Associated base finds" msgstr "Mobilier de base associé" -#: templates/ishtar/sheet_find.html:182 templates/ishtar/sheet_find.html:184 +#: templates/ishtar/sheet_find.html:204 templates/ishtar/sheet_find.html:206 msgid "Documents" msgstr "Documents" -#: templates/ishtar/sheet_find.html:186 +#: templates/ishtar/sheet_find.html:208 msgid "Title" msgstr "Titre" -#: templates/ishtar/sheet_find.html:188 +#: templates/ishtar/sheet_find.html:210 msgid "Authors" msgstr "Auteurs" -#: templates/ishtar/sheet_find.html:189 +#: templates/ishtar/sheet_find.html:211 msgid "Link" msgstr "Lien" @@ -778,3 +882,7 @@ msgstr "Panier de mobilier" #: templates/ishtar/sheet_findsource.html:4 msgid "Find source" msgstr "Documentation associée au mobilier" + +#: templates/ishtar/sheet_treatment.html:41 +msgid "Downstream finds" +msgstr "Traitements avals" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index 5e66f451e..9fdd9d373 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -10,7 +10,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-11-16 03:16-0500\n" +"PO-Revision-Date: 2016-12-04 07:53-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" @@ -724,23 +724,23 @@ msgstr "Responsable scientifique (nom)" #: models.py:237 msgid "Scientist (name)" -msgstr "" +msgstr "Scientifique (nom)" #: models.py:238 msgid "Scientist - Organization (name)" -msgstr "" +msgstr "Scientifique - Organisation (nom)" #: models.py:239 msgid "In charge (title)" -msgstr "" +msgstr "Responsable (titre)" #: models.py:240 msgid "In charge (surname)" -msgstr "" +msgstr "Responsable (prénom)" #: models.py:241 msgid "In charge (name)" -msgstr "" +msgstr "Responsable (nom)" #: models.py:242 msgid "In charge - Organization (name)" diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index c97ae6a4f..0537f91a9 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2011. # Valérie-Emma Leroux , 2016. #zanata +# Étienne Loks , 2016. #zanata msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-11-14 03:41-0500\n" -"Last-Translator: Copied by Zanata \n" +"PO-Revision-Date: 2016-12-04 07:54-0500\n" +"Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" @@ -100,8 +101,8 @@ msgid "Packaged finds" msgstr "Mobilier conditionné" #: ishtar_menu.py:30 -msgid "Find" -msgstr "Mobilier" +msgid "Treatment" +msgstr "Traitement" #: models.py:31 msgid "Warehouse types" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index e71cf2d36..532fb09ce 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -174,7 +174,7 @@ msgid "Template" msgstr "Patron" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1426 models.py:2819 +#: forms_common.py:406 models.py:1426 models.py:2818 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -198,7 +198,7 @@ msgstr "" "commune Saint-Denis dans le département français de Seine-Saint-Denis.

      " #: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1599 -#: models.py:2445 models.py:2627 models.py:2689 +#: models.py:2445 models.py:2627 models.py:2688 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "Personne" @@ -219,7 +219,7 @@ msgstr "Organisation" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 #: forms_common.py:376 forms_common.py:446 models.py:1027 models.py:1359 -#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2805 +#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2804 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" @@ -268,7 +268,7 @@ msgid "Mobile phone" msgstr "Téléphone portable" #: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2025 -#: models.py:2327 models.py:2740 templates/sheet_ope.html:85 +#: models.py:2327 models.py:2739 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -311,7 +311,7 @@ msgid "Identity" msgstr "Identité" #: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1996 -#: models.py:2423 models.py:2425 models.py:2737 templates/sheet_ope.html:104 +#: models.py:2423 models.py:2425 models.py:2736 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "Titre" @@ -388,7 +388,7 @@ msgstr "Type de personne" msgid "Account" msgstr "Compte" -#: forms_common.py:575 wizards.py:1194 +#: forms_common.py:575 wizards.py:1217 msgid "New password" msgstr "Nouveau mot de passe" @@ -412,7 +412,7 @@ msgstr "Ce nom d'utilisateur existe déjà." msgid "Send the new password by email?" msgstr "Envoyer le nouveau mot de passe par courriel ?" -#: forms_common.py:628 forms_common.py:641 models.py:2820 +#: forms_common.py:628 forms_common.py:641 models.py:2819 msgid "Towns" msgstr "Communes" @@ -428,7 +428,7 @@ msgstr "Seul un choix peut être coché." msgid "Documentation informations" msgstr "Information sur le document" -#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2714 +#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2713 msgid "Source type" msgstr "Type de document" @@ -440,37 +440,37 @@ msgstr "Référence" msgid "Internal reference" msgstr "Référence interne" -#: forms_common.py:783 models.py:2751 +#: forms_common.py:783 models.py:2750 msgid "Numerical ressource (web address)" msgstr "Ressource numérique (adresse web)" -#: forms_common.py:784 models.py:2753 +#: forms_common.py:784 models.py:2752 msgid "Receipt date" msgstr "Date de réception" -#: forms_common.py:786 models.py:2154 models.py:2755 +#: forms_common.py:786 models.py:2154 models.py:2754 msgid "Creation date" msgstr "Date de création" -#: forms_common.py:789 models.py:2758 +#: forms_common.py:789 models.py:2757 msgid "Receipt date in documentation" msgstr "Date de réception en documentation" #: forms_common.py:791 forms_common.py:827 models.py:322 models.py:627 -#: models.py:1891 models.py:2437 models.py:2765 +#: models.py:1891 models.py:2437 models.py:2764 msgid "Comment" msgstr "Commentaire" #: forms_common.py:793 forms_common.py:826 models.py:1029 models.py:1649 -#: models.py:1823 models.py:1865 models.py:2764 templates/sheet_ope.html:128 +#: models.py:1823 models.py:1865 models.py:2763 templates/sheet_ope.html:128 msgid "Description" msgstr "Description" -#: forms_common.py:796 models.py:2766 +#: forms_common.py:796 models.py:2765 msgid "Additional information" msgstr "Informations supplémentaires" -#: forms_common.py:798 forms_common.py:830 models.py:2768 +#: forms_common.py:798 forms_common.py:830 models.py:2767 msgid "Has a duplicate" msgstr "Existe en doublon" @@ -487,7 +487,7 @@ msgstr "" "

      Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

      " -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2694 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2693 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "Auteur" @@ -500,7 +500,7 @@ msgstr "Informations complémentaires" msgid "Would you like to delete this documentation?" msgstr "Voulez-vous supprimer ce document ?" -#: forms_common.py:856 models.py:1998 models.py:2682 models.py:2691 +#: forms_common.py:856 models.py:1998 models.py:2681 models.py:2690 msgid "Author type" msgstr "Type d'auteur" @@ -512,7 +512,7 @@ msgstr "Sélection d'auteur" msgid "There are identical authors." msgstr "Il y a des auteurs identiques." -#: forms_common.py:893 models.py:2695 models.py:2747 +#: forms_common.py:893 models.py:2694 models.py:2746 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -530,7 +530,7 @@ msgstr "Ajout/modification" msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:39 models.py:1155 views.py:1501 +#: ishtar_menu.py:39 models.py:1155 views.py:1513 msgid "Global variables" msgstr "Variables globales" @@ -562,11 +562,11 @@ msgstr "Fusion manuelle" msgid "Imports" msgstr "Imports" -#: ishtar_menu.py:112 views.py:1509 +#: ishtar_menu.py:112 views.py:1521 msgid "New import" msgstr "Nouvel import" -#: ishtar_menu.py:116 views.py:1523 +#: ishtar_menu.py:116 views.py:1535 msgid "Current imports" msgstr "Imports en cours" @@ -614,7 +614,7 @@ msgstr "Dernier éditeur" msgid "Creator" msgstr "Créateur" -#: models.py:891 models.py:2831 +#: models.py:891 models.py:2830 msgid "Order" msgstr "Ordre" @@ -880,11 +880,11 @@ msgstr "Parcelles" msgid "Operation source" msgstr "Documentation de l'opération" -#: models.py:1609 views.py:1317 views.py:1367 +#: models.py:1609 views.py:1329 views.py:1379 msgid "Archaeological files" msgstr "Dossiers" -#: models.py:1611 views.py:1320 views.py:1375 +#: models.py:1611 views.py:1332 views.py:1387 msgid "Context records" msgstr "Unités d'Enregistrement" @@ -1016,11 +1016,11 @@ msgstr "Importeur - Clé de rapprochement" msgid "Importer - Targets keys" msgstr "Importeur - Clés de rapprochement" -#: models.py:1999 models.py:2730 models.py:2743 +#: models.py:1999 models.py:2729 models.py:2742 msgid "Format" msgstr "Format" -#: models.py:2000 models.py:2835 +#: models.py:2000 models.py:2834 msgid "Operation type" msgstr "Type d'opération" @@ -1068,7 +1068,7 @@ msgstr "Type d'identification" msgid "Context record relation type" msgstr "Type de relations entre Unités d'Enregistrement" -#: models.py:2015 models.py:2722 +#: models.py:2015 models.py:2721 msgid "Support type" msgstr "Type de support" @@ -1346,73 +1346,73 @@ msgstr "Utilisateur d'Ishtar" msgid "Ishtar users" msgstr "Utilisateurs d'Ishtar" -#: models.py:2677 +#: models.py:2676 msgid "To modify the password use the form in Auth > User" msgstr "" "Pour modifier le mot de passe, utilisez le formulaire dans Authentification " "> Utilisateurs" -#: models.py:2683 +#: models.py:2682 msgid "Author types" msgstr "Types d'auteur" -#: models.py:2715 +#: models.py:2714 msgid "Source types" msgstr "Types de document" -#: models.py:2723 +#: models.py:2722 msgid "Support types" msgstr "Types de support" -#: models.py:2731 +#: models.py:2730 msgid "Formats" msgstr "Formats" -#: models.py:2738 +#: models.py:2737 msgid "External ID" msgstr "Identifiant externe" -#: models.py:2741 +#: models.py:2740 msgid "Support" msgstr "Support" -#: models.py:2745 +#: models.py:2744 msgid "Scale" msgstr "Échelle" -#: models.py:2759 +#: models.py:2758 msgid "Item number" msgstr "Numéro d'élément" -#: models.py:2760 +#: models.py:2759 msgid "Ref." msgstr "Réf." -#: models.py:2763 +#: models.py:2762 msgid "Internal ref." msgstr "Réf. interne" -#: models.py:2806 +#: models.py:2805 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:2807 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2806 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "Localisation" -#: models.py:2832 +#: models.py:2831 msgid "Is preventive" msgstr "Est du préventif" -#: models.py:2836 +#: models.py:2835 msgid "Operation types" msgstr "Types d'opération" -#: models.py:2865 +#: models.py:2864 msgid "Preventive" msgstr "Préventif" -#: models.py:2866 +#: models.py:2865 msgid "Research" msgstr "Programmé" @@ -1468,76 +1468,76 @@ msgstr "Unité d'Enregistrement" msgid "Find" msgstr "Mobilier" -#: views.py:1256 views.py:1299 +#: views.py:1268 views.py:1311 msgid "Operation not permitted." msgstr "Opération non permise." -#: views.py:1258 +#: views.py:1270 #, python-format msgid "New %s" msgstr "Nouveau %s" -#: views.py:1318 views.py:1371 +#: views.py:1330 views.py:1383 msgid "Operations" msgstr "Opérations" -#: views.py:1322 views.py:1378 +#: views.py:1334 views.py:1390 msgid "Finds" msgstr "Mobilier" -#: views.py:1570 templates/ishtar/import_list.html:43 +#: views.py:1582 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "Associer les éléments non rapprochés" -#: views.py:1585 +#: views.py:1597 msgid "Delete import" msgstr "Supprimer un import" -#: views.py:1624 +#: views.py:1636 msgid "Merge persons" msgstr "Fusionner des personnes" -#: views.py:1648 +#: views.py:1660 msgid "Select the main person" msgstr "Choisir la personne principale" -#: views.py:1657 +#: views.py:1669 msgid "Merge organization" msgstr "Fusionner des organisations" -#: views.py:1667 +#: views.py:1679 msgid "Select the main organization" msgstr "Sélectionner l'organisation principale" -#: views.py:1707 views.py:1723 +#: views.py:1719 views.py:1735 msgid "Corporation manager" msgstr "Représentant de la personne morale" -#: widgets.py:239 widgets.py:347 widgets.py:462 +#: widgets.py:239 widgets.py:346 widgets.py:461 msgid "Search..." msgstr "Recherche..." -#: widgets.py:642 templatetags/window_tables.py:79 +#: widgets.py:643 templatetags/window_tables.py:81 msgid "No results" msgstr "Pas de résultats" -#: widgets.py:643 templatetags/window_tables.py:80 +#: widgets.py:644 templatetags/window_tables.py:82 msgid "Loading..." msgstr "Chargement..." -#: widgets.py:644 +#: widgets.py:645 msgid "Remove" msgstr "Enlever" -#: wizards.py:323 templates/ishtar/import_delete.html:20 +#: wizards.py:335 templates/ishtar/import_delete.html:20 msgid "Yes" msgstr "Oui" -#: wizards.py:325 +#: wizards.py:337 msgid "No" msgstr "Non" -#: wizards.py:1251 +#: wizards.py:1274 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "[%(app_name)s] Création/modification du compte" -- cgit v1.2.3 From 9de3367a92a1f22bdd843e578b134cd39aa4c8fa Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 5 Dec 2016 15:18:57 +0100 Subject: Fix last panel tabs label --- ishtar_common/templates/ishtar/wizard/confirm_wizard.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/templates/ishtar/wizard/confirm_wizard.html b/ishtar_common/templates/ishtar/wizard/confirm_wizard.html index 9007c867c..1fbaadcd1 100644 --- a/ishtar_common/templates/ishtar/wizard/confirm_wizard.html +++ b/ishtar_common/templates/ishtar/wizard/confirm_wizard.html @@ -6,9 +6,9 @@
      {% csrf_token %}
      {% csrf_token %} -- cgit v1.2.3 From fcf63a61bdcab906aad45c69eb95167850e2c40a Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 5 Dec 2016 18:11:39 +0100 Subject: Fix bad initialization of multiple checkbox field --- archaeological_finds/forms.py | 10 +++++----- ishtar_common/forms.py | 4 ++-- ishtar_common/widgets.py | 17 ++++++++++++++++- 3 files changed, 23 insertions(+), 8 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index a37d6b5f6..3fc8d7c01 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -117,13 +117,13 @@ class FindForm(ManageOldType, forms.Form): model=models.ObjectType, label=_(u"Object types"), required=False) preservation_to_consider = forms.MultipleChoiceField( label=_(u"Preservation type"), choices=[], - widget=forms.CheckboxSelectMultiple, required=False) + widget=widgets.CheckboxSelectMultiple, required=False) integritie = forms.MultipleChoiceField( label=_(u"Integrity / interest"), choices=[], - widget=forms.CheckboxSelectMultiple, required=False) + widget=widgets.CheckboxSelectMultiple, required=False) remarkabilitie = forms.MultipleChoiceField( label=_(u"Remarkability"), choices=[], - widget=forms.CheckboxSelectMultiple, required=False) + widget=widgets.CheckboxSelectMultiple, required=False) topographic_reference_point = forms.CharField( label=_(u"Point of topographic reference"), required=False, max_length=20 @@ -246,7 +246,7 @@ class FindSelect(TableSelect): validators=[valid_id(ArchaeologicalSite)]) ope_relation_types = forms.MultipleChoiceField( label=_(u"Search within related operations"), choices=[], - widget=forms.CheckboxSelectMultiple) + widget=widgets.CheckboxSelectMultiple) datings__period = forms.ChoiceField(label=_(u"Period"), choices=[]) # TODO search by warehouse material_types = forms.ChoiceField(label=_(u"Material type"), choices=[]) @@ -654,7 +654,7 @@ class BaseTreatmentForm(ManageOldType, forms.Form): validators.MaxValueValidator(2100)]) treatment_type = forms.MultipleChoiceField( label=_(u"Treatment type"), choices=[], - widget=forms.CheckboxSelectMultiple) + widget=widgets.CheckboxSelectMultiple) target_is_basket = forms.NullBooleanField(label=_(u"Target")) person = forms.IntegerField( label=_(u"Responsible"), diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 043b03f61..42d74f9ef 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -33,6 +33,7 @@ from django.utils.translation import ugettext_lazy as _ import models import widgets +from wizards import MultiValueDict # from formwizard.forms import NamedUrlSessionFormWizard @@ -224,7 +225,6 @@ class ManageOldType(object): if prefix not in k: continue new_k = k[len(prefix) + 1:] - items = [] if hasattr(kwargs['data'], 'getlist'): items = kwargs['data'].getlist(k) else: @@ -238,7 +238,6 @@ class ManageOldType(object): if 'initial' in kwargs and kwargs['initial']: for k in kwargs['initial']: if k not in self.init_data or not self.init_data[k]: - items = [] if hasattr(kwargs['initial'], 'getlist'): items = kwargs['initial'].getlist(k) else: @@ -249,6 +248,7 @@ class ManageOldType(object): if k not in self.init_data: self.init_data[k] = [] self.init_data[k].append(val) + self.init_data = MultiValueDict(self.init_data) super(ManageOldType, self).__init__(*args, **kwargs) diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index e21ce7a2a..7696d67da 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -24,7 +24,8 @@ from django.conf import settings from django.core.urlresolvers import reverse from django.db.models import fields from django.forms import ClearableFileInput -from django.forms.widgets import flatatt +from django.forms.widgets import flatatt, \ + CheckboxSelectMultiple as CheckboxSelectMultipleBase from django.template import Context, loader from django.template.defaultfilters import slugify from django.utils.encoding import smart_unicode @@ -56,6 +57,20 @@ class Select2Multiple(forms.SelectMultiple): return super(Select2Multiple, self).render(name, value, attrs, choices) +class CheckboxSelectMultiple(CheckboxSelectMultipleBase): + """ + Fix initialization bug. + Should be corrected on recent Django version. + TODO: test and remove (test case: treatment type not keep on modif) + """ + def render(self, name, value, attrs=None, choices=()): + if type(value) in (str, unicode): + value = value.split(',') + if type(value) not in (list, tuple): + value = [value] + return super(CheckboxSelectMultiple, self).render(name, value, attrs, + choices) + class MultipleAutocompleteField(forms.MultipleChoiceField): def __init__(self, *args, **kwargs): -- cgit v1.2.3 From 86c95b458869560d97ede77579262c86597c4453 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 7 Dec 2016 20:01:09 +0100 Subject: Manage treatment files --- archaeological_finds/admin.py | 11 +- archaeological_finds/forms.py | 101 +- archaeological_finds/ishtar_menu.py | 24 + ...dd_unique_treatmentfile_year_index__add_hist.py | 1155 ++++++++++++++++++++ ...ltreatment_file_id__add_field_treatment_file.py | 1093 ++++++++++++++++++ archaeological_finds/models.py | 1132 +------------------ archaeological_finds/models_finds.py | 794 ++++++++++++++ archaeological_finds/models_treatments.py | 441 ++++++++ .../templates/ishtar/sheet_treatmentfile.html | 30 + .../templates/ishtar/sheet_treatmentfile_pdf.html | 18 + .../ishtar/sheet_treatmentfile_window.html | 3 + archaeological_finds/urls.py | 22 +- archaeological_finds/views.py | 39 +- archaeological_finds/wizards.py | 11 +- ishtar_common/views.py | 3 +- ishtar_common/wizards.py | 2 +- 16 files changed, 3746 insertions(+), 1133 deletions(-) create mode 100644 archaeological_finds/migrations/0068_auto__add_treatmentfile__add_unique_treatmentfile_year_index__add_hist.py create mode 100644 archaeological_finds/migrations/0069_auto__add_field_historicaltreatment_file_id__add_field_treatment_file.py create mode 100644 archaeological_finds/models_finds.py create mode 100644 archaeological_finds/models_treatments.py create mode 100644 archaeological_finds/templates/ishtar/sheet_treatmentfile.html create mode 100644 archaeological_finds/templates/ishtar/sheet_treatmentfile_pdf.html create mode 100644 archaeological_finds/templates/ishtar/sheet_treatmentfile_window.html (limited to 'ishtar_common') diff --git a/archaeological_finds/admin.py b/archaeological_finds/admin.py index 867245194..52939c03f 100644 --- a/archaeological_finds/admin.py +++ b/archaeological_finds/admin.py @@ -65,6 +65,14 @@ class TreatmentAdmin(HistorizedObjectAdmin): admin.site.register(models.Treatment, TreatmentAdmin) +class TreatmentFileAdmin(HistorizedObjectAdmin): + list_display = ('year', 'index', 'name', 'internal_reference') + search_fields = ('cached_label',) + model = models.TreatmentFile + +admin.site.register(models.TreatmentFile, TreatmentFileAdmin) + + class TreatmentSourceAdmin(admin.ModelAdmin): list_display = ('treatment', 'title', 'source_type',) list_filter = ('source_type',) @@ -89,6 +97,7 @@ admin.site.register(models.TreatmentType, TreatmentTypeAdmin) general_models = [ models.ConservatoryState, models.RemarkabilityType, - models.PreservationType, models.IntegrityType, ] + models.PreservationType, models.IntegrityType, + models.TreatmentFileType] for model in general_models: admin.site.register(model, GeneralTypeAdmin) diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 3fc8d7c01..fe717515e 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -38,7 +38,7 @@ from archaeological_operations.models import Period, ArchaeologicalSite, \ RelationType as OpeRelationType from archaeological_context_records.models import DatingType, DatingQuality, \ ContextRecord -from archaeological_warehouse.models import Warehouse +from archaeological_warehouse.models import Warehouse, Container import models from ishtar_common import widgets @@ -639,7 +639,7 @@ class BaseTreatmentForm(ManageOldType, forms.Form): 'person': Person, 'location': Warehouse, 'organization': Organization, - 'container': models.Container, + 'container': Container, } file_upload = True need_user_for_initialization = True @@ -678,8 +678,8 @@ class BaseTreatmentForm(ManageOldType, forms.Form): label=_(u"Container (relevant for packaging)"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-container'), - associated_model=models.Container, new=True), - validators=[valid_id(models.Container)], required=False) + associated_model=Container, new=True), + validators=[valid_id(Container)], required=False) external_id = forms.CharField( label=_(u"External ref."), max_length=200, required=False) comment = forms.CharField(label=_(u"Comment"), @@ -792,6 +792,99 @@ class TreatmentDeletionForm(FinalForm): confirm_end_msg = _(u"Would you like to delete this treatment?") +class TreatmentFileSelect(TableSelect): + name = forms.CharField(label=_(u"Name")) + internal_reference = forms.CharField(label=_(u"Internal ref.")) + year = forms.IntegerField(label=_(u"Year")) + index = forms.IntegerField(label=_(u"Index")) + type = forms.ChoiceField(label=_(u"Treatment file type"), choices=[]) + + def __init__(self, *args, **kwargs): + super(TreatmentFileSelect, self).__init__(*args, **kwargs) + self.fields['type'].choices = models.TreatmentFileType.get_types() + self.fields['type'].help_text = models.TreatmentFileType.get_help() + + +class TreatmentFileFormSelection(forms.Form): + form_label = _("Treatment file search") + associated_models = {'pk': models.TreatmentFile} + currents = {'pk': models.TreatmentFile} + pk = forms.IntegerField( + label="", required=False, + widget=widgets.JQueryJqGrid( + reverse_lazy('get-treatmentfile'), + TreatmentFileSelect, models.TreatmentFile), + validators=[valid_id(models.Treatment)]) + + +class TreatmentFileForm(ManageOldType, forms.Form): + form_label = _(u"Treatment file") + base_models = ['treatment_type_type'] + associated_models = {'type': models.TreatmentFileType, + 'in_charge': Person} + need_user_for_initialization = True + + name = forms.CharField(label=_(u"Name"), + max_length=1000, required=False) + internal_reference = forms.CharField( + label=_(u"Internal ref."), max_length=60, required=False) + year = forms.IntegerField(label=_("Year"), + initial=lambda: datetime.datetime.now().year, + validators=[validators.MinValueValidator(1900), + validators.MaxValueValidator(2100)]) + type = forms.ChoiceField( + label=_(u"Treatment file type"), choices=[]) + in_charge = forms.IntegerField( + label=_(u"Responsible"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-person'), associated_model=Person, + new=True), + validators=[valid_id(Person)]) + external_id = forms.CharField( + label=_(u"External ref."), max_length=200, required=False) + comment = forms.CharField(label=_(u"Comment"), + widget=forms.Textarea, required=False) + creation_date = forms.DateField(label=_(u"Start date"), required=False, + widget=widgets.JQueryDate, + initial=lambda: datetime.datetime.now()) + reception_date = forms.DateField(label=_(u"Reception date"), required=False, + widget=widgets.JQueryDate, + initial=lambda: datetime.datetime.now()) + end_date = forms.DateField(label=_(u"Closing date"), required=False, + widget=widgets.JQueryDate) + + def __init__(self, *args, **kwargs): + user = kwargs.pop('user') + super(TreatmentFileForm, self).__init__(*args, **kwargs) + q = Person.objects.filter(ishtaruser__pk=user.pk) + if q.count(): + person = q.all()[0] + self.fields['in_charge'].initial = person.pk + self.fields['type'].choices = models.TreatmentFileType.get_types( + initial=[self.init_data.get('type')], empty_first=False + ) + self.fields['type'].help_text = models.TreatmentFileType.get_help() + + +class ModifyTreatmentFileForm(TreatmentFileForm): + index = forms.IntegerField(_(u"Index")) + id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False) + + def clean(self, *args, **kwargs): + super(ModifyTreatmentFileForm, self).clean(*args, **kwargs) + cleaned_data = self.cleaned_data + year = cleaned_data.get('year') + pk = cleaned_data.get('id') + index = cleaned_data.get('index') + q = models.TreatmentFile.objects\ + .filter(year=year, index=index).exclude(pk=pk) + if index and q.count(): + raise forms.ValidationError( + _(u"Another treatment file with this index exists for {}." + ).format(year)) + return cleaned_data + + """ #################################### # Source management for treatments # diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py index 6f2d53f1f..7824c94fe 100644 --- a/archaeological_finds/ishtar_menu.py +++ b/archaeological_finds/ishtar_menu.py @@ -106,6 +106,30 @@ MENU_SECTIONS = [ 'treatment_management', _(u"Treatment"), profile_restriction='warehouse', childs=[ + SectionItem( + 'find_treatmentfiles', _(u"Treatment Files"), + childs=[ + MenuItem('treatmentfle_search', + _(u"Search"), + model=models.TreatmentFile, + access_controls=['view_find', + 'view_own_find']), + MenuItem('treatmentfle_creation', + _(u"Creation"), + model=models.TreatmentFile, + access_controls=['change_find', + 'change_own_find']), + MenuItem('treatmentfle_modification', + _(u"Modification"), + model=models.TreatmentFile, + access_controls=['change_find', + 'change_own_find']), + MenuItem('treatmentfle_deletion', + _(u"Deletion"), + model=models.TreatmentFile, + access_controls=['change_find', + 'change_own_find']), + ]), SectionItem( 'find_treatments', _(u"Simple treatments"), childs=[ diff --git a/archaeological_finds/migrations/0068_auto__add_treatmentfile__add_unique_treatmentfile_year_index__add_hist.py b/archaeological_finds/migrations/0068_auto__add_treatmentfile__add_unique_treatmentfile_year_index__add_hist.py new file mode 100644 index 000000000..5949fa70d --- /dev/null +++ b/archaeological_finds/migrations/0068_auto__add_treatmentfile__add_unique_treatmentfile_year_index__add_hist.py @@ -0,0 +1,1155 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'TreatmentFile' + db.create_table('archaeological_finds_treatmentfile', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('history_modifier', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])), + ('history_creator', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])), + ('year', self.gf('django.db.models.fields.IntegerField')(default=2016)), + ('index', self.gf('django.db.models.fields.IntegerField')(default=1)), + ('internal_reference', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), + ('external_id', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), + ('name', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_finds.TreatmentFileType'])), + ('in_charge', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='treatmentfile_responsability', null=True, on_delete=models.SET_NULL, to=orm['ishtar_common.Person'])), + ('end_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), + ('creation_date', self.gf('django.db.models.fields.DateField')(default=datetime.date.today, null=True, blank=True)), + ('reception_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), + ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('cached_label', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + )) + db.send_create_signal('archaeological_finds', ['TreatmentFile']) + + # Adding M2M table for field imports on 'TreatmentFile' + db.create_table('archaeological_finds_treatmentfile_imports', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('treatmentfile', models.ForeignKey(orm['archaeological_finds.treatmentfile'], null=False)), + ('import', models.ForeignKey(orm['ishtar_common.import'], null=False)) + )) + db.create_unique('archaeological_finds_treatmentfile_imports', ['treatmentfile_id', 'import_id']) + + # Adding unique constraint on 'TreatmentFile', fields ['year', 'index'] + db.create_unique('archaeological_finds_treatmentfile', ['year', 'index']) + + # Adding model 'HistoricalTreatmentFile' + db.create_table('archaeological_finds_historicaltreatmentfile', ( + ('id', self.gf('django.db.models.fields.IntegerField')(db_index=True, blank=True)), + ('history_modifier_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), + ('history_creator_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), + ('year', self.gf('django.db.models.fields.IntegerField')(default=2016)), + ('index', self.gf('django.db.models.fields.IntegerField')(default=1)), + ('internal_reference', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), + ('external_id', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), + ('name', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('type_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), + ('in_charge_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), + ('end_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), + ('creation_date', self.gf('django.db.models.fields.DateField')(default=datetime.date.today, null=True, blank=True)), + ('reception_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)), + ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('cached_label', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('history_id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('history_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('history_user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True)), + ('history_type', self.gf('django.db.models.fields.CharField')(max_length=1)), + )) + db.send_create_signal('archaeological_finds', ['HistoricalTreatmentFile']) + + # Adding model 'TreatmentFileType' + db.create_table('archaeological_finds_treatmentfiletype', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('label', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('txt_idx', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)), + ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('available', self.gf('django.db.models.fields.BooleanField')(default=True)), + )) + db.send_create_signal('archaeological_finds', ['TreatmentFileType']) + + + def backwards(self, orm): + # Removing unique constraint on 'TreatmentFile', fields ['year', 'index'] + db.delete_unique('archaeological_finds_treatmentfile', ['year', 'index']) + + # Deleting model 'TreatmentFile' + db.delete_table('archaeological_finds_treatmentfile') + + # Removing M2M table for field imports on 'TreatmentFile' + db.delete_table('archaeological_finds_treatmentfile_imports') + + # Deleting model 'HistoricalTreatmentFile' + db.delete_table('archaeological_finds_historicaltreatmentfile') + + # Deleting model 'TreatmentFileType' + db.delete_table('archaeological_finds_treatmentfiletype') + + + models = { + 'archaeological_context_records.activitytype': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.contextrecord': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + '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': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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': '255', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.dating': { + 'Meta': {'object_name': 'Dating'}, + 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}), + 'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.datingquality': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingQuality'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.datingtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.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_finds.basefind': { + 'Meta': {'object_name': 'BaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'base_finds'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_basefind'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.conservatorystate': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ConservatoryState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.find': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Find'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'to': "orm['archaeological_warehouse.Container']"}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_context_records.Dating']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_find'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'integrities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.IntegrityType']"}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'material_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.MaterialType']"}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'object_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.ObjectType']"}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preservation_to_considers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.PreservationType']"}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'remarkabilities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.RemarkabilityType']"}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.findbasket': { + 'Meta': {'unique_together': "(('label', 'user'),)", 'object_name': 'FindBasket'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'basket'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['archaeological_finds.Find']"}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.finddownstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindDownstreamTreatments', 'db_table': "'find_downtreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'finddownstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.findsource': { + 'Meta': {'object_name': 'FindSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'findsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Find']"}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_finds.findtreatments': { + 'Meta': {'ordering': "('find', 'upstream', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindTreatments', 'db_table': "'find_treatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}), + 'upstream': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_finds.findupstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindUpstreamTreatments', 'db_table': "'find_uptreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findupstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.historicalbasefind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicalfind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicaltreatment': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'organization_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.historicaltreatmentfile': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatmentFile'}, + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.integritytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'IntegrityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.materialtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'MaterialType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.MaterialType']", 'null': 'True', 'blank': 'True'}), + 'recommendation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.objecttype': { + 'Meta': {'ordering': "('parent__label', 'label')", 'object_name': 'ObjectType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ObjectType']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.preservationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PreservationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.property': { + 'Meta': {'object_name': 'Property'}, + 'administrative_act': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.AdministrativeAct']"}), + 'end_date': ('django.db.models.fields.DateField', [], {}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Find']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_property'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {}) + }, + 'archaeological_finds.remarkabilitytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemarkabilityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.treatment': { + 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentfile': { + 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'}, + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentfiletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.treatmentsource': { + 'Meta': {'object_name': 'TreatmentSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'treatmentsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"}) + }, + 'archaeological_finds.treatmenttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_operations.acttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, + 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.administrativeact': { + 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + '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'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.parcel': { + 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'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_finds'] \ No newline at end of file diff --git a/archaeological_finds/migrations/0069_auto__add_field_historicaltreatment_file_id__add_field_treatment_file.py b/archaeological_finds/migrations/0069_auto__add_field_historicaltreatment_file_id__add_field_treatment_file.py new file mode 100644 index 000000000..cba7e6c94 --- /dev/null +++ b/archaeological_finds/migrations/0069_auto__add_field_historicaltreatment_file_id__add_field_treatment_file.py @@ -0,0 +1,1093 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'HistoricalTreatment.file_id' + db.add_column('archaeological_finds_historicaltreatment', 'file_id', + self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True), + keep_default=False) + + # Adding field 'Treatment.file' + db.add_column('archaeological_finds_treatment', 'file', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='treatments', null=True, to=orm['archaeological_finds.TreatmentFile']), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'HistoricalTreatment.file_id' + db.delete_column('archaeological_finds_historicaltreatment', 'file_id') + + # Deleting field 'Treatment.file' + db.delete_column('archaeological_finds_treatment', 'file_id') + + + models = { + 'archaeological_context_records.activitytype': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.contextrecord': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + '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': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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': '255', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.dating': { + 'Meta': {'object_name': 'Dating'}, + 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}), + 'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.datingquality': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingQuality'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.datingtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.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_finds.basefind': { + 'Meta': {'object_name': 'BaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'base_finds'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_basefind'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.conservatorystate': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ConservatoryState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.find': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Find'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'to': "orm['archaeological_warehouse.Container']"}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_context_records.Dating']"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_find'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'integrities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.IntegrityType']"}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'material_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.MaterialType']"}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'object_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.ObjectType']"}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preservation_to_considers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.PreservationType']"}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'remarkabilities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.RemarkabilityType']"}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.findbasket': { + 'Meta': {'unique_together': "(('label', 'user'),)", 'object_name': 'FindBasket'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'basket'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['archaeological_finds.Find']"}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.finddownstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindDownstreamTreatments', 'db_table': "'find_downtreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'finddownstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.findsource': { + 'Meta': {'object_name': 'FindSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'findsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Find']"}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_finds.findtreatments': { + 'Meta': {'ordering': "('find', 'upstream', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindTreatments', 'db_table': "'find_treatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}), + 'upstream': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_finds.findupstreamtreatments': { + 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindUpstreamTreatments', 'db_table': "'find_uptreatments'", 'managed': 'False'}, + 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findupstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}), + 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}) + }, + 'archaeological_finds.historicalbasefind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}), + 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}), + 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}), + 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}), + 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicalfind': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'}, + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'conservatory_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'topographic_reference_point': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'upstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_finds.historicaltreatment': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'organization_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.historicaltreatmentfile': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatmentFile'}, + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.integritytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'IntegrityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.materialtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'MaterialType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.MaterialType']", 'null': 'True', 'blank': 'True'}), + 'recommendation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.objecttype': { + 'Meta': {'ordering': "('parent__label', 'label')", 'object_name': 'ObjectType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ObjectType']", 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.preservationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PreservationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.property': { + 'Meta': {'object_name': 'Property'}, + 'administrative_act': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.AdministrativeAct']"}), + 'end_date': ('django.db.models.fields.DateField', [], {}), + 'find': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Find']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_property'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {}) + }, + 'archaeological_finds.remarkabilitytype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemarkabilityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.treatment': { + 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentfile': { + 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'}, + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentfiletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.treatmentsource': { + 'Meta': {'object_name': 'TreatmentSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'treatmentsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"}) + }, + 'archaeological_finds.treatmenttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_operations.acttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, + 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.administrativeact': { + 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + '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'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.parcel': { + 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'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_finds'] \ No newline at end of file diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index 274e2d76f..40251bba0 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -1,1117 +1,15 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# Copyright (C) 2012-2016 Étienne Loks - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. - -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -# See the file COPYING for details. - -import datetime - -from django.conf import settings -from django.contrib.gis.db import models -from django.core.urlresolvers import reverse -from django.db.models import Max, Q -from django.db.models.signals import m2m_changed, post_save, post_delete, \ - pre_delete -from django.template.defaultfilters import slugify -from django.utils.translation import ugettext_lazy as _, ugettext - -from ishtar_common.utils import cached_label_changed - -from ishtar_common.models import GeneralType, ImageModel, BaseHistorizedItem, \ - ShortMenuItem, LightHistorizedItem, HistoricalRecords, OwnPerms, Source, \ - Organization, Person, Basket, get_external_id, post_save_cache - -from archaeological_operations.models import AdministrativeAct -from archaeological_context_records.models import ContextRecord, Dating - -from ishtar_common.models import PRIVATE_FIELDS -from archaeological_warehouse.models import Warehouse, Container - - -class MaterialType(GeneralType): - code = models.CharField(_(u"Code"), max_length=10, blank=True, null=True) - recommendation = models.TextField(_(u"Recommendation"), blank=True, - null=True) - parent = models.ForeignKey("MaterialType", blank=True, null=True, - verbose_name=_(u"Parent material")) - - class Meta: - verbose_name = _(u"Material type") - verbose_name_plural = _(u"Material types") - ordering = ('label',) -post_save.connect(post_save_cache, sender=MaterialType) -post_delete.connect(post_save_cache, sender=MaterialType) - - -class ConservatoryState(GeneralType): - parent = models.ForeignKey("ConservatoryState", blank=True, null=True, - verbose_name=_(u"Parent conservatory state")) - - class Meta: - verbose_name = _(u"Conservatory state") - verbose_name_plural = _(u"Conservatory states") - ordering = ('label',) -post_save.connect(post_save_cache, sender=ConservatoryState) -post_delete.connect(post_save_cache, sender=ConservatoryState) - - -class PreservationType(GeneralType): - class Meta: - verbose_name = _(u"Preservation type") - verbose_name_plural = _(u"Preservation types") - ordering = ('label',) -post_save.connect(post_save_cache, sender=PreservationType) -post_delete.connect(post_save_cache, sender=PreservationType) - - -class IntegrityType(GeneralType): - class Meta: - verbose_name = _(u"Integrity / interest type") - verbose_name_plural = _(u"Integrity / interest types") - ordering = ('label',) -post_save.connect(post_save_cache, sender=IntegrityType) -post_delete.connect(post_save_cache, sender=IntegrityType) - - -class RemarkabilityType(GeneralType): - class Meta: - verbose_name = _(u"Remarkability type") - verbose_name_plural = _(u"Remarkability types") - ordering = ('label',) -post_save.connect(post_save_cache, sender=RemarkabilityType) -post_delete.connect(post_save_cache, sender=RemarkabilityType) - - -class ObjectType(GeneralType): - parent = models.ForeignKey("ObjectType", blank=True, null=True, - verbose_name=_(u"Parent")) - - class Meta: - verbose_name = _(u"Object type") - verbose_name_plural = _(u"Object types") - ordering = ('parent__label', 'label',) - - def full_label(self): - lbls = [self.label] - item = self - while item.parent: - item = item.parent - lbls.append(item.label) - return u" > ".join(reversed(lbls)) - - def __unicode__(self): - return self.label -post_save.connect(post_save_cache, sender=ObjectType) -post_delete.connect(post_save_cache, sender=ObjectType) - -IS_ISOLATED_CHOICES = ( - ('U', _(u"Unknow")), - ('O', _(u"Object")), - ('B', _(u"Batch")) -) - - -class BaseFind(BaseHistorizedItem, OwnPerms): - IS_ISOLATED_DICT = dict(IS_ISOLATED_CHOICES) - label = models.TextField(_(u"Free ID")) - external_id = models.TextField(_(u"External ID"), blank=True, null=True) - auto_external_id = models.BooleanField( - _(u"External ID is set automatically"), default=False) - description = models.TextField(_(u"Description"), blank=True, null=True) - comment = models.TextField(_(u"Comment"), blank=True, null=True) - topographic_localisation = models.CharField( - _(u"Topographic localisation"), blank=True, null=True, max_length=120) - special_interest = models.CharField(_(u"Special interest"), blank=True, - null=True, max_length=120) - context_record = models.ForeignKey( - ContextRecord, related_name='base_finds', - verbose_name=_(u"Context Record")) - discovery_date = models.DateField(_(u"Discovery date"), - blank=True, null=True) - batch = models.CharField(_(u"Batch/object"), max_length=1, default="U", - choices=IS_ISOLATED_CHOICES) - index = models.IntegerField(u"Index", default=0) - material_index = models.IntegerField(_(u"Material index"), default=0) - point = models.PointField(_(u"Point"), blank=True, null=True, dim=3) - line = models.LineStringField(_(u"Line"), blank=True, null=True) - polygon = models.PolygonField(_(u"Polygon"), blank=True, null=True) - cache_short_id = models.TextField( - _(u"Short ID"), blank=True, null=True, - help_text=_(u"Cached value - do not edit")) - cache_complete_id = models.TextField( - _(u"Complete ID"), blank=True, null=True, - help_text=_(u"Cached value - do not edit")) - history = HistoricalRecords() - RELATED_POST_PROCESS = ['find'] - - class Meta: - verbose_name = _(u"Base find") - verbose_name_plural = _(u"Base finds") - permissions = ( - ("view_basefind", ugettext(u"Can view all Base finds")), - ("view_own_basefind", ugettext(u"Can view own Base find")), - ("add_own_basefind", ugettext(u"Can add own Base find")), - ("change_own_basefind", ugettext(u"Can change own Base find")), - ("delete_own_basefind", ugettext(u"Can delete own Base find")), - ) - - def __unicode__(self): - return self.label - - def get_last_find(self): - # TODO: manage virtuals - property(last_find) ? - finds = self.find.filter().order_by("-order").all() - return finds and finds[0] - - @classmethod - def get_max_index(cls, operation): - q = BaseFind.objects\ - .filter(context_record__operation=operation) - if q.count(): - return q.aggregate(Max('index'))['index__max'] - return 0 - - def complete_id(self): - # OPE|MAT.CODE|UE|FIND_index - if not self.context_record.operation: - return - # find = self.get_last_find() - ope = self.context_record.operation - c_id = [unicode(ope.code_patriarche) if ope.code_patriarche else - (unicode(ope.year) + "-" + unicode(ope.operation_code))] - materials = set() - for find in self.find.filter(downstream_treatment__isnull=True): - for mat in find.material_types.all(): - if mat.code: - materials.add(mat.code) - c_id.append(u'-'.join(sorted(list(materials)))) - c_id.append(self.context_record.label) - max_index = str(self.get_max_index(ope)) - c_id.append((u'{:0' + str(len(max_index)) + 'd}').format(self.index)) - return settings.JOINT.join(c_id) - - def short_id(self): - # OPE|FIND_index - if not self.context_record.operation: - return - ope = self.context_record.operation - c_id = [(ope.code_patriarche and unicode(ope.code_patriarche)) or - (unicode(ope.year) + "-" + unicode(ope.operation_code))] - max_index = str(self.get_max_index(ope)) - c_id.append((u'{:0' + str(len(max_index)) + 'd}').format(self.index)) - return settings.JOINT.join(c_id) - - def full_label(self): - return self._real_label() or self._temp_label() or u"" - - def material_type_label(self): - find = self.get_last_find() - finds = [find and find.material_type.code or ''] - ope = self.context_record.operation - finds += [unicode(ope.code_patriarche) or - (unicode(ope.year) + "-" + unicode(ope.operation_code))] - finds += [self.context_record.label, unicode(self.material_index)] - return settings.JOINT.join(finds) - - def _real_label(self): - if not self.context_record.parcel \ - or not self.context_record.operation \ - or not self.context_record.operation.code_patriarche: - return - find = self.get_last_find() - lbl = find.label or self.label - return settings.JOINT.join( - [unicode(it) for it in ( - self.context_record.operation.code_patriarche, - self.context_record.label, lbl) if it]) - - def _temp_label(self): - if not self.context_record.parcel: - return - find = self.get_last_find() - lbl = find.label or self.label - return settings.JOINT.join( - [unicode(it) for it in ( - self.context_record.parcel.year, self.index, - self.context_record.label, lbl) if it]) - - @property - def name(self): - return self.label - - @classmethod - def get_extra_fields(cls): - fields = {} - for field in Find._meta.many_to_many: - if field.name == 'base_finds': - fields['find'] = field.related.model - return fields - - def save(self, *args, **kwargs): - returned = super(BaseFind, self).save(*args, **kwargs) - - updated = False - if not self.external_id or self.auto_external_id: - external_id = get_external_id('base_find_external_id', self) - if external_id != self.external_id: - updated = True - self.auto_external_id = True - self.external_id = external_id - if updated: - self._cached_label_checked = False - self.save() - return returned - -WEIGHT_UNIT = (('g', _(u"g")), - ('kg', _(u"kg")),) - -CHECK_CHOICES = (('NC', _(u"Not checked")), - ('CI', _(u"Checked but incorrect")), - ('CC', _(u"Checked and correct")), - ) - - -class FindBasket(Basket): - items = models.ManyToManyField('Find', blank=True, null=True, - related_name='basket') - - -class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): - CHECK_DICT = dict(CHECK_CHOICES) - SHOW_URL = 'show-find' - SLUG = 'find' - TABLE_COLS = ['label', 'material_types', 'datings__period', - 'base_finds__context_record__parcel__town', - 'base_finds__context_record__operation__year', - 'base_finds__context_record__operation__operation_code', - 'container__reference', 'container__location', - 'base_finds__batch', - 'base_finds__context_record__parcel__town', - 'base_finds__context_record__parcel', ] - if settings.COUNTRY == 'fr': - TABLE_COLS.insert( - 6, 'base_finds__context_record__operation__code_patriarche') - TABLE_COLS_FOR_OPE = [ - 'base_finds__cache_short_id', - 'base_finds__cache_complete_id', - 'previous_id', 'label', 'material_types', - 'datings__period__label', 'find_number', 'object_types', - 'description', - 'base_finds__context_record__parcel__town', - 'base_finds__context_record__parcel', ] - TABLE_COLS_FOR_OPE_LBL = { - 'datings__period__label': _(u"Periods"), - } - - EXTRA_FULL_FIELDS = [ - 'base_finds__cache_short_id', 'base_finds__cache_complete_id', - 'base_finds__comment', 'base_finds__description', - 'base_finds__topographic_localisation', - 'base_finds__special_interest', - 'base_finds__discovery_date'] - EXTRA_FULL_FIELDS_LABELS = { - 'base_finds__cache_short_id': _(u"Base find - Short ID"), - 'base_finds__cache_complete_id': _(u"Base find - Complete ID"), - 'base_finds__comment': _(u"Base find - Comment"), - 'base_finds__description': _(u"Base find - Description"), - 'base_finds__topographic_localisation': _(u"Base find - " - u"Topographic localisation"), - 'base_finds__special_interest': _(u"Base find - Special interest"), - 'base_finds__discovery_date': _(u"Base find - Discovery date"), - } - ATTRS_EQUIV = {'get_first_base_find': 'base_finds'} - - # search parameters - REVERSED_BOOL_FIELDS = ['image__isnull'] - RELATION_TYPES_PREFIX = { - 'ope_relation_types': - 'base_finds__context_record__operation__'} - RELATIVE_SESSION_NAMES = [ - ('contextrecord', 'base_finds__context_record__pk'), - ('operation', 'base_finds__context_record__operation__pk'), - ('file', 'base_finds__context_record__operation__associated_file__pk') - ] - BASE_REQUEST = {'downstream_treatment__isnull': True} - EXTRA_REQUEST_KEYS = { - 'base_finds__cache_short_id': - 'base_finds__cache_short_id__icontains', - 'base_finds__cache_complete_id': - 'base_finds__cache_complete_id__icontains', - 'label': - 'label__icontains', - 'base_finds__context_record': - 'base_finds__context_record__pk', - 'base_finds__context_record__parcel__town': - 'base_finds__context_record__parcel__town', - 'base_finds__context_record__operation__year': - 'base_finds__context_record__operation__year__contains', - 'base_finds__context_record__operation': - 'base_finds__context_record__operation__pk', - 'archaeological_sites': - 'base_finds__context_record__operation__archaeological_sites__pk', - 'base_finds__context_record__operation__code_patriarche': - 'base_finds__context_record__operation__code_patriarche', - 'datings__period': 'datings__period__pk', - 'base_finds__find__description': - 'base_finds__find__description__icontains', - 'base_finds__batch': 'base_finds__batch', - 'basket': 'basket', - 'cached_label': 'cached_label__icontains', - 'image': 'image__isnull'} - - # fields - base_finds = models.ManyToManyField(BaseFind, verbose_name=_(u"Base find"), - related_name='find') - external_id = models.TextField(_(u"External ID"), blank=True, null=True) - auto_external_id = models.BooleanField( - _(u"External ID is set automatically"), default=False) - order = models.IntegerField(_(u"Order"), default=1) - label = models.TextField(_(u"Free ID")) - description = models.TextField(_(u"Description"), blank=True, null=True) - material_types = models.ManyToManyField( - MaterialType, verbose_name=_(u"Material types"), related_name='finds') - conservatory_state = models.ForeignKey( - ConservatoryState, verbose_name=_(u"Conservatory state"), blank=True, - null=True) - conservatory_comment = models.TextField(_(u"Conservatory comment"), - blank=True, null=True) - preservation_to_considers = models.ManyToManyField( - PreservationType, verbose_name=_(u"Type of preservation to consider"), - related_name='finds') - volume = models.FloatField(_(u"Volume (l)"), blank=True, null=True) - weight = models.FloatField(_(u"Weight (g)"), blank=True, null=True) - weight_unit = models.CharField(_(u"Weight unit"), max_length=4, - blank=True, null=True, choices=WEIGHT_UNIT) - find_number = models.IntegerField(_("Find number"), blank=True, null=True) - upstream_treatment = models.ForeignKey( - "Treatment", blank=True, null=True, - related_name='downstream', - verbose_name=_("Upstream treatment")) - downstream_treatment = models.ForeignKey( - "Treatment", blank=True, null=True, related_name='upstream', - verbose_name=_("Downstream treatment")) - datings = models.ManyToManyField(Dating, verbose_name=_(u"Dating"), - related_name='find') - container = models.ForeignKey( - Container, verbose_name=_(u"Container"), blank=True, null=True, - related_name='finds') - is_complete = models.NullBooleanField(_(u"Is complete?"), blank=True, - null=True) - object_types = models.ManyToManyField( - ObjectType, verbose_name=_(u"Object types"), related_name='find') - integrities = models.ManyToManyField( - IntegrityType, verbose_name=_(u"Integrity / interest"), - related_name='find') - remarkabilities = models.ManyToManyField( - RemarkabilityType, verbose_name=_(u"Remarkability"), - related_name='find') - min_number_of_individuals = models.IntegerField( - _(u"Minimum number of individuals (MNI)"), blank=True, null=True) - length = models.FloatField(_(u"Length (cm)"), blank=True, null=True) - width = models.FloatField(_(u"Width (cm)"), blank=True, null=True) - height = models.FloatField(_(u"Height (cm)"), blank=True, null=True) - diameter = models.FloatField(_(u"Diameter (cm)"), blank=True, null=True) - thickness = models.FloatField(_(u"Thickness (cm)"), blank=True, null=True) - topographic_reference_point = models.CharField( - _(u"Point of topographic reference"), max_length=20, - blank=True, null=True) - dimensions_comment = models.TextField(_(u"Dimensions comment"), - blank=True, null=True) - mark = models.TextField(_(u"Mark"), blank=True, null=True) - comment = models.TextField(_(u"Comment"), blank=True, null=True) - dating_comment = models.TextField(_(u"Comment on dating"), blank=True, - null=True) - previous_id = models.TextField(_(u"Previous ID"), blank=True, null=True) - index = models.IntegerField(u"Index", default=0) - checked = models.CharField(_(u"Check"), max_length=2, default='NC', - choices=CHECK_CHOICES) - check_date = models.DateField(_(u"Check date"), - default=datetime.date.today) - estimated_value = models.FloatField(_(u"Estimated value"), blank=True, - null=True) - cached_label = models.TextField(_(u"Cached name"), null=True, blank=True) - history = HistoricalRecords() - BASKET_MODEL = FindBasket - IMAGE_PREFIX = 'finds/' - - class Meta: - verbose_name = _(u"Find") - verbose_name_plural = _(u"Finds") - permissions = ( - ("view_find", ugettext(u"Can view all Finds")), - ("view_own_find", ugettext(u"Can view own Find")), - ("add_own_find", ugettext(u"Can add own Find")), - ("change_own_find", ugettext(u"Can change own Find")), - ("delete_own_find", ugettext(u"Can delete own Find")), - ) - ordering = ('cached_label',) - - @property - def short_class_name(self): - return _(u"FIND") - - def __unicode__(self): - lbl = settings.JOINT.join([ - getattr(self, attr) - for attr in ('administrative_index', 'label') - if getattr(self, attr)]) - return lbl - - @property - def short_label(self): - return self.reference - - @property - def dating(self): - return u" ; ".join([unicode(dating) for dating in self.datings.all()]) - - @property - def show_url(self): - return reverse('show-find', args=[self.pk, '']) - - @property - def name(self): - return u" - ".join([base_find.name - for base_find in self.base_finds.all()]) - - @property - def full_label(self): - lbl = u" - ".join([ - getattr(self, attr) - for attr in ('label', 'administrative_index') - if getattr(self, attr)]) - base = u" - ".join([base_find.complete_id() - for base_find in self.base_finds.all()]) - if base: - lbl += u' ({})'.format(base) - return lbl - - def get_first_base_find(self): - q = self.base_finds - if not q.count(): - return - return q.order_by('-pk').all()[0] - - @property - def reference(self): - bf = self.get_first_base_find() - if not bf: - return "00" - return bf.short_id() - - @property - def administrative_index(self): - bf = self.get_first_base_find() - if not bf or not bf.context_record or not bf.context_record.operation: - return "" - return "{}-{}".format( - bf.context_record.operation.get_reference(), - self.index) - - def _get_treatments(self, model, rel='upstream'): - treatments, findtreats = [], [] - for findtreat in model.objects.filter( - find_id=self.pk).order_by( - 'treatment_nb', 'treatment__start_date', - 'treatment__end_date').distinct().all(): - if findtreat.pk in findtreats: - continue - findtreats.append(findtreat.pk) - q = getattr(findtreat.treatment, rel).distinct().order_by( - 'label') - treatments.append((q.all(), findtreat.treatment)) - return treatments - - @property - def weight_string(self): - if not self.weight: - return "" - return "{} {}".format(self.weight, self.weight_unit or "") - - def upstream_treatments(self): - return self._get_treatments(FindUpstreamTreatments, 'upstream') - - def downstream_treatments(self): - return self._get_treatments(FindDownstreamTreatments, 'downstream') - - def all_treatments(self): - return self.upstream_treatments() + self.downstream_treatments() - - def get_department(self): - bf = self.get_first_base_find() - if not bf: - return "00" - return bf.context_record.operation.get_department() - - def get_town_label(self): - bf = self.get_first_base_find() - if not bf: - return "00" - return bf.context_record.operation.get_town_label() - - @classmethod - def get_periods(cls, slice='year', fltr={}): - q = cls.objects - if fltr: - q = q.filter(**fltr) - if slice == 'year': - years = set() - finds = q.filter(downstream_treatment__isnull=True) - for find in finds: - bi = find.base_finds.all() - if not bi: - continue - bi = bi[0] - if bi.context_record.operation.start_date: - yr = bi.context_record.operation.start_date.year - years.add(yr) - return list(years) - - @classmethod - def get_by_year(cls, year, fltr={}): - q = cls.objects - if fltr: - q = q.filter(**fltr) - return q.filter( - downstream_treatment__isnull=True, - base_finds__context_record__operation__start_date__year=year) - - @classmethod - def get_operations(cls): - operations = set() - finds = cls.objects.filter(downstream_treatment__isnull=True) - for find in finds: - bi = find.base_finds.all() - if not bi: - continue - bi = bi[0] - pk = bi.context_record.operation.pk - operations.add(pk) - return list(operations) - - @classmethod - def get_by_operation(cls, operation_id): - return cls.objects.filter( - downstream_treatment__isnull=True, - base_finds__context_record__operation__pk=operation_id) - - @classmethod - def get_total_number(cls, fltr={}): - q = cls.objects - if fltr: - q = q.filter(**fltr) - return q.filter(downstream_treatment__isnull=True).count() - - def duplicate(self, user): - model = self.__class__ - # base fields - table_cols = [field.name for field in model._meta.fields - if field.name not in PRIVATE_FIELDS or - field.name == 'order'] - dct = dict([(attr, getattr(self, attr)) for attr in - table_cols]) - dct['order'] += 1 - dct['history_modifier'] = user - new = self.__class__(**dct) - new.save() - - # m2m fields - m2m = [field.name for field in model._meta.many_to_many - if field.name not in PRIVATE_FIELDS] - for field in m2m: - for val in getattr(self, field).all(): - getattr(new, field).add(val) - return new - - @classmethod - def get_query_owns(cls, user): - return Q(base_finds__context_record__operation__scientist=user. - ishtaruser.person) |\ - Q(base_finds__context_record__operation__in_charge=user. - ishtaruser.person) |\ - Q(history_creator=user) - - @classmethod - def get_owns(cls, user, menu_filtr=None, limit=None): - replace_query = {} - if menu_filtr: - replace_query = {'base_finds__context_record': menu_filtr} - owns = super(Find, cls).get_owns( - user, replace_query=replace_query, - limit=limit) - return sorted( - owns, key=lambda x: x.cached_label - if hasattr(x, 'cached_label') else unicode(x)) - - def _generate_cached_label(self): - return unicode(self) - - def save(self, *args, **kwargs): - super(Find, self).save(*args, **kwargs) - - updated = False - self.skip_history_when_saving = True - if not self.external_id or self.auto_external_id: - external_id = get_external_id('find_external_id', self) - if external_id != self.external_id: - updated = True - self.auto_external_id = True - self.external_id = external_id - if updated: - self._cached_label_checked = False - self.save() - return - - q = self.base_finds - if not self.index and q.count(): - operation = q.filter( - context_record__operation__pk__isnull=False).order_by( - '-context_record__operation__start_date') - if operation.count(): - operation = operation.all()[0].context_record.operation - q = Find.objects\ - .filter(base_finds__context_record__operation=operation) - if self.pk: - q = q.exclude(pk=self.pk) - if q.count(): - self.index = q.aggregate(Max('index'))['index__max'] + 1 - else: - self.index = 1 - self._cached_label_checked = False - self.save() - for base_find in self.base_finds.filter( - context_record__operation__pk__isnull=False).all(): - modified = False - if not base_find.index: - modified = True - base_find.index = BaseFind.get_max_index( - base_find.context_record.operation) + 1 - short_id = base_find.short_id() - if base_find.cache_short_id != short_id: - base_find.cache_short_id = short_id - modified = True - complete_id = base_find.complete_id() - if base_find.cache_complete_id != complete_id: - base_find.cache_complete_id = complete_id - modified = True - if modified: - base_find.skip_history_when_saving = True - base_find._cached_label_checked = False - base_find.save() - # if not base_find.material_index: - # idx = BaseFind.objects\ - # .filter(context_record=base_find.context_record, - # find__material_types=self.material_type)\ - # .aggregate(Max('material_index')) - # base_find.material_index = \ - # idx and idx['material_index__max'] + 1 or 1 - - -post_save.connect(cached_label_changed, sender=Find) - - -def base_find_find_changed(sender, **kwargs): - obj = kwargs.get('instance', None) - if not obj: - return - # recalculate complete id and external id - obj.save() - -m2m_changed.connect(base_find_find_changed, sender=Find.base_finds.through) - - -class FindSource(Source): - SHOW_URL = 'show-findsource' - MODIFY_URL = 'find_source_modify' - TABLE_COLS = ['find__base_finds__context_record__operation', - 'find__base_finds__context_record', 'find'] + \ - Source.TABLE_COLS - - # search parameters - BOOL_FIELDS = ['duplicate'] - RELATIVE_SESSION_NAMES = [ - ('find', 'find__pk'), - ('contextrecord', 'find__base_finds__context_record__pk'), - ('operation', 'find__base_finds__context_record__operation__pk'), - ('file', - 'find__base_finds__context_record__operation__associated_file__pk') - ] - EXTRA_REQUEST_KEYS = { - 'title': 'title__icontains', - 'description': 'description__icontains', - 'comment': 'comment__icontains', - 'additional_information': 'additional_information__icontains', - 'person': 'authors__person__pk', - 'find__base_finds__context_record__operation__year': - 'find__base_finds__context_record__operation__year', - 'find__base_finds__context_record__operation__operation_code': - 'find__base_finds__context_record__operation__operation_code', - 'find__base_finds__context_record__operation__code_patriarche': - 'find__base_finds__context_record__operation__code_patriarche', - 'find__datings__period': 'find__datings__period__pk', - 'find__description': 'find__description__icontains', - } - - class Meta: - verbose_name = _(u"Find documentation") - verbose_name_plural = _(u"Find documentations") - find = models.ForeignKey(Find, verbose_name=_(u"Find"), - related_name="source") - - @property - def owner(self): - return self.find - - -class TreatmentType(GeneralType): - virtual = models.BooleanField(_(u"Virtual")) - upstream_is_many = models.BooleanField( - _(u"Upstream is many"), default=False, - help_text=_( - u"Check this if for this treatment from many finds you'll get " - u"one.")) - downstream_is_many = models.BooleanField( - _(u"Downstream is many"), default=False, - help_text=_( - u"Check this if for this treatment from one find you'll get " - u"many.")) - - class Meta: - verbose_name = _(u"Treatment type") - verbose_name_plural = _(u"Treatment types") - ordering = ('label',) -post_save.connect(post_save_cache, sender=TreatmentType) -post_delete.connect(post_save_cache, sender=TreatmentType) - - -class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): - SHOW_URL = 'show-treatment' - TABLE_COLS = ('year', 'index', 'treatment_types_lbl', 'label', 'person', - 'start_date', 'downstream_cached_label', - 'upstream_cached_label') - REVERSED_BOOL_FIELDS = ['image__isnull'] - EXTRA_REQUEST_KEYS = { - "label": 'label__icontains', - "other_reference": 'other_reference__icontains', - "treatment_types": "treatment_types__pk", - "downstream_cached_label": "downstream__cached_label", - "upstream_cached_label": "upstream__cached_label", - 'image': 'image__isnull', - } - TABLE_COLS_LBL = { - "downstream_cached_label": _(u"Downstream find"), - "upstream_cached_label": _(u"Upstream find"), - } - IMAGE_PREFIX = 'treatment' - label = models.CharField(_(u"Label"), blank=True, null=True, - max_length=200) - other_reference = models.CharField(_(u"Other ref."), blank=True, null=True, - max_length=200) - year = models.IntegerField(_(u"Year"), default=2016) - index = models.IntegerField(_(u"Index"), default=1) - treatment_types = models.ManyToManyField( - TreatmentType, verbose_name=_(u"Treatment type")) - location = models.ForeignKey( - Warehouse, verbose_name=_(u"Location"), blank=True, null=True, - help_text=_( - u"Location where the treatment is done. Target warehouse for " - u"a move.")) - person = models.ForeignKey( - Person, verbose_name=_(u"Responsible"), blank=True, null=True, - on_delete=models.SET_NULL, related_name='treatments') - organization = models.ForeignKey( - Organization, verbose_name=_(u"Organization"), blank=True, null=True, - on_delete=models.SET_NULL, related_name='treatments') - external_id = models.CharField(_(u"External ID"), blank=True, null=True, - max_length=200) - comment = models.TextField(_(u"Comment"), blank=True, null=True) - description = models.TextField(_(u"Description"), blank=True, null=True) - goal = models.TextField(_(u"Goal"), blank=True, null=True) - start_date = models.DateField(_(u"Start date"), blank=True, null=True) - end_date = models.DateField(_(u"End date"), blank=True, null=True) - container = models.ForeignKey(Container, verbose_name=_(u"Container"), - blank=True, null=True) - target_is_basket = models.BooleanField(_(u"Target a basket"), default=False) - history = HistoricalRecords() - - class Meta: - verbose_name = _(u"Treatment") - verbose_name_plural = _(u"Treatments") - unique_together = ('year', 'index') - permissions = ( - ("view_treatment", ugettext(u"Can view all Treatments")), - ("view_own_treatment", ugettext(u"Can view own Treatment")), - ("add_own_treatment", ugettext(u"Can add own Treatment")), - ("change_own_treatment", ugettext(u"Can change own Treatment")), - ("delete_own_treatment", ugettext(u"Can delete own Treatment")), - ) - - def __unicode__(self): - lbl = unicode(self.treatment_types_lbl()) - if self.person: - lbl += u" %s %s" % (_(u"by"), unicode(self.person)) - return lbl - - def treatment_types_lbl(self): - """ - Treatment types label - :return: string - """ - return u" ; ".join([unicode(t) for t in self.treatment_types.all()]) - - def pre_save(self): - # is not new - if self.pk is not None: - return - self.index = 1 - q = Treatment.objects.filter(year=self.year) - if q.count(): - self.index = q.all().aggregate(Max('index'))['index__max'] + 1 - - def save(self, *args, **kwargs): - items, user, extra_args_for_new = [], None, [] - if "items" in kwargs: - items = kwargs.pop('items') - if "user" in kwargs: - user = kwargs.pop('user') - if "extra_args_for_new" in kwargs: - extra_args_for_new = kwargs.pop('extra_args_for_new') - self.pre_save() - super(Treatment, self).save(*args, **kwargs) - updated = [] - if hasattr(items, "items"): - items = items.items.all() - for item in items: - new = item.duplicate(user) - item.downstream_treatment = self - item.save() - new.upstream_treatment = self - for k in extra_args_for_new: - setattr(new, k, extra_args_for_new[k]) - new.save() - updated.append(new.pk) - # update baskets - for basket in \ - FindBasket.objects.filter(items__pk=item.pk).all(): - basket.items.remove(item) - basket.items.add(new) - # manage containers - for find in Find.objects.filter(upstream_treatment=self).all(): - if find.container != self.container: - find.container = self.container - if find.pk in updated: - # don't record twice history - find.skip_history_when_saving = True - find.save() - - @property - def associated_filename(self): - return "-".join([ - str(slugify(getattr(self, attr))) - for attr in ('year', 'index', 'label')]) - - -def pre_delete_treatment(sender, **kwargs): - treatment = kwargs.get('instance') - for find in Find.objects.filter(upstream_treatment=treatment).all(): - if find.downstream_treatment: - # a new treatment have be done since the deleted treatment - raise NotImplemented() - find.delete() - for find in Find.objects.filter(downstream_treatment=treatment).all(): - find.downstream_treatment = None - find.save() - -post_delete.connect(pre_delete_treatment, sender=Treatment) - - -class AbsFindTreatments(models.Model): - find = models.ForeignKey(Find, verbose_name=_(u"Find"), - related_name='%(class)s_related') - treatment = models.ForeignKey(Treatment, verbose_name=_(u"Treatment"), - primary_key=True) - # primary_key is set to prevent django to ask for an id column - # treatment is not a primary key - treatment_nb = models.IntegerField(_(u"Order")) - TABLE_COLS = ['treatment__treatment_type', - 'treatment__start_date', 'treatment__end_date', - 'treatment__location', 'treatment__container', - 'treatment__person', 'treatment_nb'] - EXTRA_FULL_FIELDS_LABELS = { - 'treatment__treatment_type': _(u"Treatment type"), - 'treatment__start_date': _(u"Start date"), - 'treatment__end_date': _(u"End date"), - 'treatment__location': _(u"Location"), - 'treatment__container': _(u"Container"), - 'treatment__person': _(u"Doer"), - 'treatment__upstream': _(u"Related finds"), - 'treatment__downstream': _(u"Related finds"), - } - - class Meta: - abstract = True - - def __unicode__(self): - return u"{} - {} [{}]".format( - self.find, self.treatment, self.treatment_nb) - - -class FindUpstreamTreatments(AbsFindTreatments): - """ - CREATE VIEW find_uptreatments_tree AS - WITH RECURSIVE rel_tree AS ( - SELECT id AS find_id, upstream_treatment_id, downstream_treatment_id, - 1 AS level, - array[upstream_treatment_id] AS path_info - FROM archaeological_finds_find - WHERE upstream_treatment_id is null - UNION ALL - SELECT c.id AS find_id, c.upstream_treatment_id, - c.downstream_treatment_id, - p.level + 1, p.path_info||c.upstream_treatment_id - FROM archaeological_finds_find c - JOIN rel_tree p - ON c.upstream_treatment_id = p.downstream_treatment_id - ) - SELECT DISTINCT find_id, path_info, level - FROM rel_tree ORDER BY find_id; - - CREATE VIEW find_uptreatments AS - SELECT DISTINCT find_id, - path_info[nb] AS treatment_id, level - nb + 1 AS treatment_nb - FROM (SELECT *, generate_subscripts(path_info, 1) AS nb - FROM find_uptreatments_tree) y - WHERE path_info[nb] is not NULL - ORDER BY find_id, treatment_id; - - -- deactivate deletion - CREATE RULE find_uptreatments_del AS ON DELETE TO find_uptreatments - DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL; - """ - TABLE_COLS = ['treatment__treatment_type', - 'treatment__upstream', - 'treatment__start_date', 'treatment__end_date', - 'treatment__location', 'treatment__container', - 'treatment__person', 'treatment_nb'] - - # search parameters - EXTRA_REQUEST_KEYS = {'find_id': 'find_id'} - - class Meta: - managed = False - db_table = 'find_uptreatments' - unique_together = ('find', 'treatment') - ordering = ('find', '-treatment_nb') - - -class FindDownstreamTreatments(AbsFindTreatments): - """ - CREATE VIEW find_downtreatments_tree AS - WITH RECURSIVE rel_tree AS ( - SELECT id AS find_id, downstream_treatment_id, upstream_treatment_id, - 1 AS level, - array[downstream_treatment_id] AS path_info - FROM archaeological_finds_find - WHERE downstream_treatment_id is null - UNION ALL - SELECT c.id AS find_id, c.downstream_treatment_id, - c.upstream_treatment_id, - p.level + 1, p.path_info||c.downstream_treatment_id - FROM archaeological_finds_find c - JOIN rel_tree p - ON c.downstream_treatment_id = p.upstream_treatment_id - ) - SELECT DISTINCT find_id, path_info, level - FROM rel_tree ORDER BY find_id; - - CREATE VIEW find_downtreatments AS - SELECT DISTINCT find_id, - path_info[nb] AS treatment_id, level - nb + 1 AS treatment_nb - FROM (SELECT *, generate_subscripts(path_info, 1) AS nb - FROM find_downtreatments_tree) y - WHERE path_info[nb] is not NULL - ORDER BY find_id, treatment_id; - - -- deactivate deletion - CREATE RULE find_downtreatments_del AS ON DELETE TO find_downtreatments - DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL; - """ - TABLE_COLS = ['treatment__treatment_type', - 'treatment__downstream', - 'treatment__start_date', 'treatment__end_date', - 'treatment__location', 'treatment__container', - 'treatment__person', 'treatment_nb'] - - # search parameters - EXTRA_REQUEST_KEYS = {'find_id': 'find_id'} - - class Meta: - managed = False - db_table = 'find_downtreatments' - unique_together = ('find', 'treatment') - ordering = ('find', '-treatment_nb') - - -class FindTreatments(AbsFindTreatments): - """ - CREATE VIEW find_treatments AS - SELECT find_id, treatment_id, treatment_nb, TRUE as upstream - FROM find_uptreatments - UNION - SELECT find_id, treatment_id, treatment_nb, FALSE as upstream - FROM find_downtreatments - ORDER BY find_id, treatment_id, upstream; - - -- deactivate deletion - CREATE RULE find_treatments_del AS ON DELETE TO find_treatments - DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL; - """ - upstream = models.BooleanField(_(u"Is upstream")) - - class Meta: - managed = False - db_table = 'find_treatments' - unique_together = ('find', 'treatment') - ordering = ('find', 'upstream', '-treatment_nb') - - -class TreatmentSource(Source): - class Meta: - verbose_name = _(u"Treatment documentation") - verbose_name_plural = _(u"Treament documentations") - treatment = models.ForeignKey( - Treatment, verbose_name=_(u"Treatment"), related_name="source") - - @property - def owner(self): - return self.treatment - - -class Property(LightHistorizedItem): - find = models.ForeignKey(Find, verbose_name=_(u"Find")) - administrative_act = models.ForeignKey( - AdministrativeAct, verbose_name=_(u"Administrative act")) - person = models.ForeignKey(Person, verbose_name=_(u"Person"), - related_name='properties') - start_date = models.DateField(_(u"Start date")) - end_date = models.DateField(_(u"End date")) - - class Meta: - verbose_name = _(u"Property") - verbose_name_plural = _(u"Properties") - - def __unicode__(self): - return self.person + settings.JOINT + self.find +from archaeological_finds.models_finds import MaterialType, ConservatoryState,\ + PreservationType, IntegrityType, RemarkabilityType, ObjectType, BaseFind, \ + FindBasket, Find, FindSource, Property, IS_ISOLATED_CHOICES +from archaeological_finds.models_treatments import TreatmentType, Treatment, \ + AbsFindTreatments, FindUpstreamTreatments, FindDownstreamTreatments, \ + FindTreatments, TreatmentSource, TreatmentFile, TreatmentFileType + +__all__ = ['MaterialType', 'ConservatoryState', 'PreservationType', + 'IntegrityType', 'RemarkabilityType', 'ObjectType', + 'BaseFind', 'FindBasket', 'Find', 'FindSource', 'Property', + 'IS_ISOLATED_CHOICES', + 'TreatmentType', 'Treatment', 'AbsFindTreatments', + 'FindUpstreamTreatments', 'FindDownstreamTreatments', + 'FindTreatments', 'TreatmentSource', 'TreatmentFile', + 'TreatmentFileType'] \ No newline at end of file diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py new file mode 100644 index 000000000..1f55ee1a0 --- /dev/null +++ b/archaeological_finds/models_finds.py @@ -0,0 +1,794 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2012-2016 Étienne Loks + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +# See the file COPYING for details. + +import datetime + +from django.conf import settings +from django.contrib.gis.db import models +from django.core.urlresolvers import reverse +from django.db.models import Max, Q +from django.db.models.signals import m2m_changed, post_save, post_delete +from django.utils.translation import ugettext_lazy as _, ugettext + +from ishtar_common.utils import cached_label_changed + +from ishtar_common.models import GeneralType, ImageModel, BaseHistorizedItem, \ + ShortMenuItem, LightHistorizedItem, HistoricalRecords, OwnPerms, Source, \ + Person, Basket, get_external_id, post_save_cache + +from archaeological_operations.models import AdministrativeAct +from archaeological_context_records.models import ContextRecord, Dating + +from ishtar_common.models import PRIVATE_FIELDS +from archaeological_warehouse.models import Container + + +class MaterialType(GeneralType): + code = models.CharField(_(u"Code"), max_length=10, blank=True, null=True) + recommendation = models.TextField(_(u"Recommendation"), blank=True, + null=True) + parent = models.ForeignKey("MaterialType", blank=True, null=True, + verbose_name=_(u"Parent material")) + + class Meta: + verbose_name = _(u"Material type") + verbose_name_plural = _(u"Material types") + ordering = ('label',) +post_save.connect(post_save_cache, sender=MaterialType) +post_delete.connect(post_save_cache, sender=MaterialType) + + +class ConservatoryState(GeneralType): + parent = models.ForeignKey("ConservatoryState", blank=True, null=True, + verbose_name=_(u"Parent conservatory state")) + + class Meta: + verbose_name = _(u"Conservatory state") + verbose_name_plural = _(u"Conservatory states") + ordering = ('label',) +post_save.connect(post_save_cache, sender=ConservatoryState) +post_delete.connect(post_save_cache, sender=ConservatoryState) + + +class PreservationType(GeneralType): + class Meta: + verbose_name = _(u"Preservation type") + verbose_name_plural = _(u"Preservation types") + ordering = ('label',) +post_save.connect(post_save_cache, sender=PreservationType) +post_delete.connect(post_save_cache, sender=PreservationType) + + +class IntegrityType(GeneralType): + class Meta: + verbose_name = _(u"Integrity / interest type") + verbose_name_plural = _(u"Integrity / interest types") + ordering = ('label',) +post_save.connect(post_save_cache, sender=IntegrityType) +post_delete.connect(post_save_cache, sender=IntegrityType) + + +class RemarkabilityType(GeneralType): + class Meta: + verbose_name = _(u"Remarkability type") + verbose_name_plural = _(u"Remarkability types") + ordering = ('label',) +post_save.connect(post_save_cache, sender=RemarkabilityType) +post_delete.connect(post_save_cache, sender=RemarkabilityType) + + +class ObjectType(GeneralType): + parent = models.ForeignKey("ObjectType", blank=True, null=True, + verbose_name=_(u"Parent")) + + class Meta: + verbose_name = _(u"Object type") + verbose_name_plural = _(u"Object types") + ordering = ('parent__label', 'label',) + + def full_label(self): + lbls = [self.label] + item = self + while item.parent: + item = item.parent + lbls.append(item.label) + return u" > ".join(reversed(lbls)) + + def __unicode__(self): + return self.label +post_save.connect(post_save_cache, sender=ObjectType) +post_delete.connect(post_save_cache, sender=ObjectType) + +IS_ISOLATED_CHOICES = ( + ('U', _(u"Unknow")), + ('O', _(u"Object")), + ('B', _(u"Batch")) +) + + +class BaseFind(BaseHistorizedItem, OwnPerms): + IS_ISOLATED_DICT = dict(IS_ISOLATED_CHOICES) + label = models.TextField(_(u"Free ID")) + external_id = models.TextField(_(u"External ID"), blank=True, null=True) + auto_external_id = models.BooleanField( + _(u"External ID is set automatically"), default=False) + description = models.TextField(_(u"Description"), blank=True, null=True) + comment = models.TextField(_(u"Comment"), blank=True, null=True) + topographic_localisation = models.CharField( + _(u"Topographic localisation"), blank=True, null=True, max_length=120) + special_interest = models.CharField(_(u"Special interest"), blank=True, + null=True, max_length=120) + context_record = models.ForeignKey( + ContextRecord, related_name='base_finds', + verbose_name=_(u"Context Record")) + discovery_date = models.DateField(_(u"Discovery date"), + blank=True, null=True) + batch = models.CharField(_(u"Batch/object"), max_length=1, default="U", + choices=IS_ISOLATED_CHOICES) + index = models.IntegerField(u"Index", default=0) + material_index = models.IntegerField(_(u"Material index"), default=0) + point = models.PointField(_(u"Point"), blank=True, null=True, dim=3) + line = models.LineStringField(_(u"Line"), blank=True, null=True) + polygon = models.PolygonField(_(u"Polygon"), blank=True, null=True) + cache_short_id = models.TextField( + _(u"Short ID"), blank=True, null=True, + help_text=_(u"Cached value - do not edit")) + cache_complete_id = models.TextField( + _(u"Complete ID"), blank=True, null=True, + help_text=_(u"Cached value - do not edit")) + history = HistoricalRecords() + RELATED_POST_PROCESS = ['find'] + + class Meta: + verbose_name = _(u"Base find") + verbose_name_plural = _(u"Base finds") + permissions = ( + ("view_basefind", ugettext(u"Can view all Base finds")), + ("view_own_basefind", ugettext(u"Can view own Base find")), + ("add_own_basefind", ugettext(u"Can add own Base find")), + ("change_own_basefind", ugettext(u"Can change own Base find")), + ("delete_own_basefind", ugettext(u"Can delete own Base find")), + ) + + def __unicode__(self): + return self.label + + def get_last_find(self): + # TODO: manage virtuals - property(last_find) ? + finds = self.find.filter().order_by("-order").all() + return finds and finds[0] + + @classmethod + def get_max_index(cls, operation): + q = BaseFind.objects \ + .filter(context_record__operation=operation) + if q.count(): + return q.aggregate(Max('index'))['index__max'] + return 0 + + def complete_id(self): + # OPE|MAT.CODE|UE|FIND_index + if not self.context_record.operation: + return + # find = self.get_last_find() + ope = self.context_record.operation + c_id = [unicode(ope.code_patriarche) if ope.code_patriarche else + (unicode(ope.year) + "-" + unicode(ope.operation_code))] + materials = set() + for find in self.find.filter(downstream_treatment__isnull=True): + for mat in find.material_types.all(): + if mat.code: + materials.add(mat.code) + c_id.append(u'-'.join(sorted(list(materials)))) + c_id.append(self.context_record.label) + max_index = str(self.get_max_index(ope)) + c_id.append((u'{:0' + str(len(max_index)) + 'd}').format(self.index)) + return settings.JOINT.join(c_id) + + def short_id(self): + # OPE|FIND_index + if not self.context_record.operation: + return + ope = self.context_record.operation + c_id = [(ope.code_patriarche and unicode(ope.code_patriarche)) or + (unicode(ope.year) + "-" + unicode(ope.operation_code))] + max_index = str(self.get_max_index(ope)) + c_id.append((u'{:0' + str(len(max_index)) + 'd}').format(self.index)) + return settings.JOINT.join(c_id) + + def full_label(self): + return self._real_label() or self._temp_label() or u"" + + def material_type_label(self): + find = self.get_last_find() + finds = [find and find.material_type.code or ''] + ope = self.context_record.operation + finds += [unicode(ope.code_patriarche) or + (unicode(ope.year) + "-" + unicode(ope.operation_code))] + finds += [self.context_record.label, unicode(self.material_index)] + return settings.JOINT.join(finds) + + def _real_label(self): + if not self.context_record.parcel \ + or not self.context_record.operation \ + or not self.context_record.operation.code_patriarche: + return + find = self.get_last_find() + lbl = find.label or self.label + return settings.JOINT.join( + [unicode(it) for it in ( + self.context_record.operation.code_patriarche, + self.context_record.label, lbl) if it]) + + def _temp_label(self): + if not self.context_record.parcel: + return + find = self.get_last_find() + lbl = find.label or self.label + return settings.JOINT.join( + [unicode(it) for it in ( + self.context_record.parcel.year, self.index, + self.context_record.label, lbl) if it]) + + @property + def name(self): + return self.label + + @classmethod + def get_extra_fields(cls): + fields = {} + for field in Find._meta.many_to_many: + if field.name == 'base_finds': + fields['find'] = field.related.model + return fields + + def save(self, *args, **kwargs): + returned = super(BaseFind, self).save(*args, **kwargs) + + updated = False + if not self.external_id or self.auto_external_id: + external_id = get_external_id('base_find_external_id', self) + if external_id != self.external_id: + updated = True + self.auto_external_id = True + self.external_id = external_id + if updated: + self._cached_label_checked = False + self.save() + return returned + +WEIGHT_UNIT = (('g', _(u"g")), + ('kg', _(u"kg")),) + +CHECK_CHOICES = (('NC', _(u"Not checked")), + ('CI', _(u"Checked but incorrect")), + ('CC', _(u"Checked and correct")), + ) + + +class FindBasket(Basket): + items = models.ManyToManyField('Find', blank=True, null=True, + related_name='basket') + + +class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): + CHECK_DICT = dict(CHECK_CHOICES) + SHOW_URL = 'show-find' + SLUG = 'find' + TABLE_COLS = ['label', 'material_types', 'datings__period', + 'base_finds__context_record__parcel__town', + 'base_finds__context_record__operation__year', + 'base_finds__context_record__operation__operation_code', + 'container__reference', 'container__location', + 'base_finds__batch', + 'base_finds__context_record__parcel__town', + 'base_finds__context_record__parcel', ] + if settings.COUNTRY == 'fr': + TABLE_COLS.insert( + 6, 'base_finds__context_record__operation__code_patriarche') + TABLE_COLS_FOR_OPE = [ + 'base_finds__cache_short_id', + 'base_finds__cache_complete_id', + 'previous_id', 'label', 'material_types', + 'datings__period__label', 'find_number', 'object_types', + 'description', + 'base_finds__context_record__parcel__town', + 'base_finds__context_record__parcel', ] + TABLE_COLS_FOR_OPE_LBL = { + 'datings__period__label': _(u"Periods"), + } + + EXTRA_FULL_FIELDS = [ + 'base_finds__cache_short_id', 'base_finds__cache_complete_id', + 'base_finds__comment', 'base_finds__description', + 'base_finds__topographic_localisation', + 'base_finds__special_interest', + 'base_finds__discovery_date'] + EXTRA_FULL_FIELDS_LABELS = { + 'base_finds__cache_short_id': _(u"Base find - Short ID"), + 'base_finds__cache_complete_id': _(u"Base find - Complete ID"), + 'base_finds__comment': _(u"Base find - Comment"), + 'base_finds__description': _(u"Base find - Description"), + 'base_finds__topographic_localisation': _(u"Base find - " + u"Topographic localisation"), + 'base_finds__special_interest': _(u"Base find - Special interest"), + 'base_finds__discovery_date': _(u"Base find - Discovery date"), + } + ATTRS_EQUIV = {'get_first_base_find': 'base_finds'} + + # search parameters + REVERSED_BOOL_FIELDS = ['image__isnull'] + RELATION_TYPES_PREFIX = { + 'ope_relation_types': + 'base_finds__context_record__operation__'} + RELATIVE_SESSION_NAMES = [ + ('contextrecord', 'base_finds__context_record__pk'), + ('operation', 'base_finds__context_record__operation__pk'), + ('file', 'base_finds__context_record__operation__associated_file__pk') + ] + BASE_REQUEST = {'downstream_treatment__isnull': True} + EXTRA_REQUEST_KEYS = { + 'base_finds__cache_short_id': + 'base_finds__cache_short_id__icontains', + 'base_finds__cache_complete_id': + 'base_finds__cache_complete_id__icontains', + 'label': + 'label__icontains', + 'base_finds__context_record': + 'base_finds__context_record__pk', + 'base_finds__context_record__parcel__town': + 'base_finds__context_record__parcel__town', + 'base_finds__context_record__operation__year': + 'base_finds__context_record__operation__year__contains', + 'base_finds__context_record__operation': + 'base_finds__context_record__operation__pk', + 'archaeological_sites': + 'base_finds__context_record__operation__archaeological_sites__pk', + 'base_finds__context_record__operation__code_patriarche': + 'base_finds__context_record__operation__code_patriarche', + 'datings__period': 'datings__period__pk', + 'base_finds__find__description': + 'base_finds__find__description__icontains', + 'base_finds__batch': 'base_finds__batch', + 'basket': 'basket', + 'cached_label': 'cached_label__icontains', + 'image': 'image__isnull'} + + # fields + base_finds = models.ManyToManyField(BaseFind, verbose_name=_(u"Base find"), + related_name='find') + external_id = models.TextField(_(u"External ID"), blank=True, null=True) + auto_external_id = models.BooleanField( + _(u"External ID is set automatically"), default=False) + order = models.IntegerField(_(u"Order"), default=1) + label = models.TextField(_(u"Free ID")) + description = models.TextField(_(u"Description"), blank=True, null=True) + material_types = models.ManyToManyField( + MaterialType, verbose_name=_(u"Material types"), related_name='finds') + conservatory_state = models.ForeignKey( + ConservatoryState, verbose_name=_(u"Conservatory state"), blank=True, + null=True) + conservatory_comment = models.TextField(_(u"Conservatory comment"), + blank=True, null=True) + preservation_to_considers = models.ManyToManyField( + PreservationType, verbose_name=_(u"Type of preservation to consider"), + related_name='finds') + volume = models.FloatField(_(u"Volume (l)"), blank=True, null=True) + weight = models.FloatField(_(u"Weight (g)"), blank=True, null=True) + weight_unit = models.CharField(_(u"Weight unit"), max_length=4, + blank=True, null=True, choices=WEIGHT_UNIT) + find_number = models.IntegerField(_("Find number"), blank=True, null=True) + upstream_treatment = models.ForeignKey( + "Treatment", blank=True, null=True, + related_name='downstream', + verbose_name=_("Upstream treatment")) + downstream_treatment = models.ForeignKey( + "Treatment", blank=True, null=True, related_name='upstream', + verbose_name=_("Downstream treatment")) + datings = models.ManyToManyField(Dating, verbose_name=_(u"Dating"), + related_name='find') + container = models.ForeignKey( + Container, verbose_name=_(u"Container"), blank=True, null=True, + related_name='finds') + is_complete = models.NullBooleanField(_(u"Is complete?"), blank=True, + null=True) + object_types = models.ManyToManyField( + ObjectType, verbose_name=_(u"Object types"), related_name='find') + integrities = models.ManyToManyField( + IntegrityType, verbose_name=_(u"Integrity / interest"), + related_name='find') + remarkabilities = models.ManyToManyField( + RemarkabilityType, verbose_name=_(u"Remarkability"), + related_name='find') + min_number_of_individuals = models.IntegerField( + _(u"Minimum number of individuals (MNI)"), blank=True, null=True) + length = models.FloatField(_(u"Length (cm)"), blank=True, null=True) + width = models.FloatField(_(u"Width (cm)"), blank=True, null=True) + height = models.FloatField(_(u"Height (cm)"), blank=True, null=True) + diameter = models.FloatField(_(u"Diameter (cm)"), blank=True, null=True) + thickness = models.FloatField(_(u"Thickness (cm)"), blank=True, null=True) + topographic_reference_point = models.CharField( + _(u"Point of topographic reference"), max_length=20, + blank=True, null=True) + dimensions_comment = models.TextField(_(u"Dimensions comment"), + blank=True, null=True) + mark = models.TextField(_(u"Mark"), blank=True, null=True) + comment = models.TextField(_(u"Comment"), blank=True, null=True) + dating_comment = models.TextField(_(u"Comment on dating"), blank=True, + null=True) + previous_id = models.TextField(_(u"Previous ID"), blank=True, null=True) + index = models.IntegerField(u"Index", default=0) + checked = models.CharField(_(u"Check"), max_length=2, default='NC', + choices=CHECK_CHOICES) + check_date = models.DateField(_(u"Check date"), + default=datetime.date.today) + estimated_value = models.FloatField(_(u"Estimated value"), blank=True, + null=True) + cached_label = models.TextField(_(u"Cached name"), null=True, blank=True) + history = HistoricalRecords() + BASKET_MODEL = FindBasket + IMAGE_PREFIX = 'finds/' + + class Meta: + verbose_name = _(u"Find") + verbose_name_plural = _(u"Finds") + permissions = ( + ("view_find", ugettext(u"Can view all Finds")), + ("view_own_find", ugettext(u"Can view own Find")), + ("add_own_find", ugettext(u"Can add own Find")), + ("change_own_find", ugettext(u"Can change own Find")), + ("delete_own_find", ugettext(u"Can delete own Find")), + ) + ordering = ('cached_label',) + + @property + def short_class_name(self): + return _(u"FIND") + + def __unicode__(self): + lbl = settings.JOINT.join( + [getattr(self, attr) for attr in ('administrative_index', 'label') + if getattr(self, attr)]) + return lbl + + @property + def short_label(self): + return self.reference + + @property + def dating(self): + return u" ; ".join([unicode(dating) for dating in self.datings.all()]) + + @property + def show_url(self): + return reverse('show-find', args=[self.pk, '']) + + @property + def name(self): + return u" - ".join([base_find.name + for base_find in self.base_finds.all()]) + + @property + def full_label(self): + lbl = u" - ".join([ + getattr(self, attr) + for attr in ('label', 'administrative_index') + if getattr(self, attr)]) + base = u" - ".join([base_find.complete_id() + for base_find in self.base_finds.all()]) + if base: + lbl += u' ({})'.format(base) + return lbl + + def get_first_base_find(self): + q = self.base_finds + if not q.count(): + return + return q.order_by('-pk').all()[0] + + @property + def reference(self): + bf = self.get_first_base_find() + if not bf: + return "00" + return bf.short_id() + + @property + def administrative_index(self): + bf = self.get_first_base_find() + if not bf or not bf.context_record or not bf.context_record.operation: + return "" + return "{}-{}".format( + bf.context_record.operation.get_reference(), + self.index) + + def _get_treatments(self, model, rel='upstream'): + treatments, findtreats = [], [] + for findtreat in model.objects.filter( + find_id=self.pk).order_by( + 'treatment_nb', 'treatment__start_date', + 'treatment__end_date').distinct().all(): + if findtreat.pk in findtreats: + continue + findtreats.append(findtreat.pk) + q = getattr(findtreat.treatment, rel).distinct().order_by( + 'label') + treatments.append((q.all(), findtreat.treatment)) + return treatments + + @property + def weight_string(self): + if not self.weight: + return "" + return "{} {}".format(self.weight, self.weight_unit or "") + + def upstream_treatments(self): + from archaeological_finds.models_treatments import \ + FindUpstreamTreatments + return self._get_treatments(FindUpstreamTreatments, 'upstream') + + def downstream_treatments(self): + from archaeological_finds.models_treatments import \ + FindDownstreamTreatments + return self._get_treatments(FindDownstreamTreatments, 'downstream') + + def all_treatments(self): + return self.upstream_treatments() + self.downstream_treatments() + + def get_department(self): + bf = self.get_first_base_find() + if not bf: + return "00" + return bf.context_record.operation.get_department() + + def get_town_label(self): + bf = self.get_first_base_find() + if not bf: + return "00" + return bf.context_record.operation.get_town_label() + + @classmethod + def get_periods(cls, slice='year', fltr={}): + q = cls.objects + if fltr: + q = q.filter(**fltr) + if slice == 'year': + years = set() + finds = q.filter(downstream_treatment__isnull=True) + for find in finds: + bi = find.base_finds.all() + if not bi: + continue + bi = bi[0] + if bi.context_record.operation.start_date: + yr = bi.context_record.operation.start_date.year + years.add(yr) + return list(years) + + @classmethod + def get_by_year(cls, year, fltr={}): + q = cls.objects + if fltr: + q = q.filter(**fltr) + return q.filter( + downstream_treatment__isnull=True, + base_finds__context_record__operation__start_date__year=year) + + @classmethod + def get_operations(cls): + operations = set() + finds = cls.objects.filter(downstream_treatment__isnull=True) + for find in finds: + bi = find.base_finds.all() + if not bi: + continue + bi = bi[0] + pk = bi.context_record.operation.pk + operations.add(pk) + return list(operations) + + @classmethod + def get_by_operation(cls, operation_id): + return cls.objects.filter( + downstream_treatment__isnull=True, + base_finds__context_record__operation__pk=operation_id) + + @classmethod + def get_total_number(cls, fltr={}): + q = cls.objects + if fltr: + q = q.filter(**fltr) + return q.filter(downstream_treatment__isnull=True).count() + + def duplicate(self, user): + model = self.__class__ + # base fields + table_cols = [field.name for field in model._meta.fields + if field.name not in PRIVATE_FIELDS or + field.name == 'order'] + dct = dict([(attr, getattr(self, attr)) for attr in + table_cols]) + dct['order'] += 1 + dct['history_modifier'] = user + new = self.__class__(**dct) + new.save() + + # m2m fields + m2m = [field.name for field in model._meta.many_to_many + if field.name not in PRIVATE_FIELDS] + for field in m2m: + for val in getattr(self, field).all(): + getattr(new, field).add(val) + return new + + @classmethod + def get_query_owns(cls, user): + return Q(base_finds__context_record__operation__scientist=user. + ishtaruser.person) | \ + Q(base_finds__context_record__operation__in_charge=user. + ishtaruser.person) | \ + Q(history_creator=user) + + @classmethod + def get_owns(cls, user, menu_filtr=None, limit=None): + replace_query = {} + if menu_filtr: + replace_query = {'base_finds__context_record': menu_filtr} + owns = super(Find, cls).get_owns( + user, replace_query=replace_query, + limit=limit) + return sorted( + owns, key=lambda x: x.cached_label + if hasattr(x, 'cached_label') else unicode(x)) + + def _generate_cached_label(self): + return unicode(self) + + def save(self, *args, **kwargs): + super(Find, self).save(*args, **kwargs) + + updated = False + self.skip_history_when_saving = True + if not self.external_id or self.auto_external_id: + external_id = get_external_id('find_external_id', self) + if external_id != self.external_id: + updated = True + self.auto_external_id = True + self.external_id = external_id + if updated: + self._cached_label_checked = False + self.save() + return + + q = self.base_finds + if not self.index and q.count(): + operation = q.filter( + context_record__operation__pk__isnull=False).order_by( + '-context_record__operation__start_date') + if operation.count(): + operation = operation.all()[0].context_record.operation + q = Find.objects \ + .filter(base_finds__context_record__operation=operation) + if self.pk: + q = q.exclude(pk=self.pk) + if q.count(): + self.index = q.aggregate(Max('index'))['index__max'] + 1 + else: + self.index = 1 + self._cached_label_checked = False + self.save() + for base_find in self.base_finds.filter( + context_record__operation__pk__isnull=False).all(): + modified = False + if not base_find.index: + modified = True + base_find.index = BaseFind.get_max_index( + base_find.context_record.operation) + 1 + short_id = base_find.short_id() + if base_find.cache_short_id != short_id: + base_find.cache_short_id = short_id + modified = True + complete_id = base_find.complete_id() + if base_find.cache_complete_id != complete_id: + base_find.cache_complete_id = complete_id + modified = True + if modified: + base_find.skip_history_when_saving = True + base_find._cached_label_checked = False + base_find.save() + # if not base_find.material_index: + # idx = BaseFind.objects\ + # .filter(context_record=base_find.context_record, + # find__material_types=self.material_type)\ + # .aggregate(Max('material_index')) + # base_find.material_index = \ + # idx and idx['material_index__max'] + 1 or 1 + + +post_save.connect(cached_label_changed, sender=Find) + + +def base_find_find_changed(sender, **kwargs): + obj = kwargs.get('instance', None) + if not obj: + return + # recalculate complete id and external id + obj.save() + +m2m_changed.connect(base_find_find_changed, sender=Find.base_finds.through) + + +class FindSource(Source): + SHOW_URL = 'show-findsource' + MODIFY_URL = 'find_source_modify' + TABLE_COLS = ['find__base_finds__context_record__operation', + 'find__base_finds__context_record', 'find'] + \ + Source.TABLE_COLS + + # search parameters + BOOL_FIELDS = ['duplicate'] + RELATIVE_SESSION_NAMES = [ + ('find', 'find__pk'), + ('contextrecord', 'find__base_finds__context_record__pk'), + ('operation', 'find__base_finds__context_record__operation__pk'), + ('file', + 'find__base_finds__context_record__operation__associated_file__pk') + ] + EXTRA_REQUEST_KEYS = { + 'title': 'title__icontains', + 'description': 'description__icontains', + 'comment': 'comment__icontains', + 'additional_information': 'additional_information__icontains', + 'person': 'authors__person__pk', + 'find__base_finds__context_record__operation__year': + 'find__base_finds__context_record__operation__year', + 'find__base_finds__context_record__operation__operation_code': + 'find__base_finds__context_record__operation__operation_code', + 'find__base_finds__context_record__operation__code_patriarche': + 'find__base_finds__context_record__operation__code_patriarche', + 'find__datings__period': 'find__datings__period__pk', + 'find__description': 'find__description__icontains', + } + + class Meta: + verbose_name = _(u"Find documentation") + verbose_name_plural = _(u"Find documentations") + find = models.ForeignKey(Find, verbose_name=_(u"Find"), + related_name="source") + + @property + def owner(self): + return self.find + + +class Property(LightHistorizedItem): + find = models.ForeignKey(Find, verbose_name=_(u"Find")) + administrative_act = models.ForeignKey( + AdministrativeAct, verbose_name=_(u"Administrative act")) + person = models.ForeignKey(Person, verbose_name=_(u"Person"), + related_name='properties') + start_date = models.DateField(_(u"Start date")) + end_date = models.DateField(_(u"End date")) + + class Meta: + verbose_name = _(u"Property") + verbose_name_plural = _(u"Properties") + + def __unicode__(self): + return self.person + settings.JOINT + self.find diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py new file mode 100644 index 000000000..e6237efef --- /dev/null +++ b/archaeological_finds/models_treatments.py @@ -0,0 +1,441 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2016 Étienne Loks + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +# See the file COPYING for details. + +import datetime + +from django.conf import settings +from django.contrib.gis.db import models +from django.db.models import Max +from django.db.models.signals import post_save, post_delete, pre_delete +from django.template.defaultfilters import slugify +from django.utils.translation import ugettext_lazy as _, ugettext + + +from ishtar_common.utils import cached_label_changed +from ishtar_common.models import GeneralType, ImageModel, BaseHistorizedItem, \ + OwnPerms, HistoricalRecords, Person, Organization, Source, \ + ValueGetter, post_save_cache +from archaeological_warehouse.models import Warehouse, Container +from archaeological_finds.models_finds import Find, FindBasket +from archaeological_operations.models import ClosedItem + + +class TreatmentType(GeneralType): + virtual = models.BooleanField(_(u"Virtual")) + upstream_is_many = models.BooleanField( + _(u"Upstream is many"), default=False, + help_text=_( + u"Check this if for this treatment from many finds you'll get " + u"one.")) + downstream_is_many = models.BooleanField( + _(u"Downstream is many"), default=False, + help_text=_( + u"Check this if for this treatment from one find you'll get " + u"many.")) + + class Meta: + verbose_name = _(u"Treatment type") + verbose_name_plural = _(u"Treatment types") + ordering = ('label',) +post_save.connect(post_save_cache, sender=TreatmentType) +post_delete.connect(post_save_cache, sender=TreatmentType) + + +class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): + SHOW_URL = 'show-treatment' + TABLE_COLS = ('year', 'index', 'treatment_types_lbl', 'label', 'person', + 'start_date', 'downstream_cached_label', + 'upstream_cached_label') + REVERSED_BOOL_FIELDS = ['image__isnull'] + EXTRA_REQUEST_KEYS = { + "label": 'label__icontains', + "other_reference": 'other_reference__icontains', + "treatment_types": "treatment_types__pk", + "downstream_cached_label": "downstream__cached_label", + "upstream_cached_label": "upstream__cached_label", + 'image': 'image__isnull', + } + TABLE_COLS_LBL = { + "downstream_cached_label": _(u"Downstream find"), + "upstream_cached_label": _(u"Upstream find"), + } + IMAGE_PREFIX = 'treatment' + label = models.CharField(_(u"Label"), blank=True, null=True, + max_length=200) + other_reference = models.CharField(_(u"Other ref."), blank=True, null=True, + max_length=200) + year = models.IntegerField(_(u"Year"), + default=lambda: datetime.datetime.now().year) + index = models.IntegerField(_(u"Index"), default=1) + file = models.ForeignKey('TreatmentFile', related_name='treatments', + blank=True, null=True) + treatment_types = models.ManyToManyField( + TreatmentType, verbose_name=_(u"Treatment type")) + location = models.ForeignKey( + Warehouse, verbose_name=_(u"Location"), blank=True, null=True, + help_text=_( + u"Location where the treatment is done. Target warehouse for " + u"a move.")) + person = models.ForeignKey( + Person, verbose_name=_(u"Responsible"), blank=True, null=True, + on_delete=models.SET_NULL, related_name='treatments') + organization = models.ForeignKey( + Organization, verbose_name=_(u"Organization"), blank=True, null=True, + on_delete=models.SET_NULL, related_name='treatments') + external_id = models.CharField(_(u"External ID"), blank=True, null=True, + max_length=200) + comment = models.TextField(_(u"Comment"), blank=True, null=True) + description = models.TextField(_(u"Description"), blank=True, null=True) + goal = models.TextField(_(u"Goal"), blank=True, null=True) + start_date = models.DateField(_(u"Start date"), blank=True, null=True) + end_date = models.DateField(_(u"End date"), blank=True, null=True) + container = models.ForeignKey(Container, verbose_name=_(u"Container"), + blank=True, null=True) + target_is_basket = models.BooleanField(_(u"Target a basket"), default=False) + history = HistoricalRecords() + + class Meta: + verbose_name = _(u"Treatment") + verbose_name_plural = _(u"Treatments") + unique_together = ('year', 'index') + permissions = ( + ("view_treatment", ugettext(u"Can view all Treatments")), + ("view_own_treatment", ugettext(u"Can view own Treatment")), + ("add_own_treatment", ugettext(u"Can add own Treatment")), + ("change_own_treatment", ugettext(u"Can change own Treatment")), + ("delete_own_treatment", ugettext(u"Can delete own Treatment")), + ) + + def __unicode__(self): + lbl = unicode(self.treatment_types_lbl()) + if self.person: + lbl += u" %s %s" % (_(u"by"), unicode(self.person)) + return lbl + + def treatment_types_lbl(self): + """ + Treatment types label + :return: string + """ + return u" ; ".join([unicode(t) for t in self.treatment_types.all()]) + + def pre_save(self): + # is not new + if self.pk is not None: + return + self.index = 1 + q = Treatment.objects.filter(year=self.year) + if q.count(): + self.index = q.all().aggregate(Max('index'))['index__max'] + 1 + + def save(self, *args, **kwargs): + items, user, extra_args_for_new = [], None, [] + if "items" in kwargs: + items = kwargs.pop('items') + if "user" in kwargs: + user = kwargs.pop('user') + if "extra_args_for_new" in kwargs: + extra_args_for_new = kwargs.pop('extra_args_for_new') + self.pre_save() + super(Treatment, self).save(*args, **kwargs) + updated = [] + if hasattr(items, "items"): + items = items.items.all() + for item in items: + new = item.duplicate(user) + item.downstream_treatment = self + item.save() + new.upstream_treatment = self + for k in extra_args_for_new: + setattr(new, k, extra_args_for_new[k]) + new.save() + updated.append(new.pk) + # update baskets + for basket in \ + FindBasket.objects.filter(items__pk=item.pk).all(): + basket.items.remove(item) + basket.items.add(new) + # manage containers + for find in Find.objects.filter(upstream_treatment=self).all(): + if find.container != self.container: + find.container = self.container + if find.pk in updated: + # don't record twice history + find.skip_history_when_saving = True + find.save() + + @property + def associated_filename(self): + return "-".join([str(slugify(getattr(self, attr))) + for attr in ('year', 'index', 'label')]) + + +def pre_delete_treatment(sender, **kwargs): + treatment = kwargs.get('instance') + for find in Find.objects.filter(upstream_treatment=treatment).all(): + if find.downstream_treatment: + # a new treatment have be done since the deleted treatment + raise NotImplemented() + find.delete() + for find in Find.objects.filter(downstream_treatment=treatment).all(): + find.downstream_treatment = None + find.save() + +pre_delete.connect(pre_delete_treatment, sender=Treatment) + + +class AbsFindTreatments(models.Model): + find = models.ForeignKey(Find, verbose_name=_(u"Find"), + related_name='%(class)s_related') + treatment = models.ForeignKey(Treatment, verbose_name=_(u"Treatment"), + primary_key=True) + # primary_key is set to prevent django to ask for an id column + # treatment is not a primary key + treatment_nb = models.IntegerField(_(u"Order")) + TABLE_COLS = ['treatment__treatment_type', + 'treatment__start_date', 'treatment__end_date', + 'treatment__location', 'treatment__container', + 'treatment__person', 'treatment_nb'] + EXTRA_FULL_FIELDS_LABELS = { + 'treatment__treatment_type': _(u"Treatment type"), + 'treatment__start_date': _(u"Start date"), + 'treatment__end_date': _(u"End date"), + 'treatment__location': _(u"Location"), + 'treatment__container': _(u"Container"), + 'treatment__person': _(u"Doer"), + 'treatment__upstream': _(u"Related finds"), + 'treatment__downstream': _(u"Related finds"), + } + + class Meta: + abstract = True + + def __unicode__(self): + return u"{} - {} [{}]".format( + self.find, self.treatment, self.treatment_nb) + + +class FindUpstreamTreatments(AbsFindTreatments): + """ + CREATE VIEW find_uptreatments_tree AS + WITH RECURSIVE rel_tree AS ( + SELECT id AS find_id, upstream_treatment_id, downstream_treatment_id, + 1 AS level, + array[upstream_treatment_id] AS path_info + FROM archaeological_finds_find + WHERE upstream_treatment_id is null + UNION ALL + SELECT c.id AS find_id, c.upstream_treatment_id, + c.downstream_treatment_id, + p.level + 1, p.path_info||c.upstream_treatment_id + FROM archaeological_finds_find c + JOIN rel_tree p + ON c.upstream_treatment_id = p.downstream_treatment_id + ) + SELECT DISTINCT find_id, path_info, level + FROM rel_tree ORDER BY find_id; + + CREATE VIEW find_uptreatments AS + SELECT DISTINCT find_id, + path_info[nb] AS treatment_id, level - nb + 1 AS treatment_nb + FROM (SELECT *, generate_subscripts(path_info, 1) AS nb + FROM find_uptreatments_tree) y + WHERE path_info[nb] is not NULL + ORDER BY find_id, treatment_id; + + -- deactivate deletion + CREATE RULE find_uptreatments_del AS ON DELETE TO find_uptreatments + DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL; + """ + TABLE_COLS = ['treatment__treatment_type', + 'treatment__upstream', + 'treatment__start_date', 'treatment__end_date', + 'treatment__location', 'treatment__container', + 'treatment__person', 'treatment_nb'] + + # search parameters + EXTRA_REQUEST_KEYS = {'find_id': 'find_id'} + + class Meta: + managed = False + db_table = 'find_uptreatments' + unique_together = ('find', 'treatment') + ordering = ('find', '-treatment_nb') + + +class FindDownstreamTreatments(AbsFindTreatments): + """ + CREATE VIEW find_downtreatments_tree AS + WITH RECURSIVE rel_tree AS ( + SELECT id AS find_id, downstream_treatment_id, upstream_treatment_id, + 1 AS level, + array[downstream_treatment_id] AS path_info + FROM archaeological_finds_find + WHERE downstream_treatment_id is null + UNION ALL + SELECT c.id AS find_id, c.downstream_treatment_id, + c.upstream_treatment_id, + p.level + 1, p.path_info||c.downstream_treatment_id + FROM archaeological_finds_find c + JOIN rel_tree p + ON c.downstream_treatment_id = p.upstream_treatment_id + ) + SELECT DISTINCT find_id, path_info, level + FROM rel_tree ORDER BY find_id; + + CREATE VIEW find_downtreatments AS + SELECT DISTINCT find_id, + path_info[nb] AS treatment_id, level - nb + 1 AS treatment_nb + FROM (SELECT *, generate_subscripts(path_info, 1) AS nb + FROM find_downtreatments_tree) y + WHERE path_info[nb] is not NULL + ORDER BY find_id, treatment_id; + + -- deactivate deletion + CREATE RULE find_downtreatments_del AS ON DELETE TO find_downtreatments + DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL; + """ + TABLE_COLS = ['treatment__treatment_type', + 'treatment__downstream', + 'treatment__start_date', 'treatment__end_date', + 'treatment__location', 'treatment__container', + 'treatment__person', 'treatment_nb'] + + # search parameters + EXTRA_REQUEST_KEYS = {'find_id': 'find_id'} + + class Meta: + managed = False + db_table = 'find_downtreatments' + unique_together = ('find', 'treatment') + ordering = ('find', '-treatment_nb') + + +class FindTreatments(AbsFindTreatments): + """ + CREATE VIEW find_treatments AS + SELECT find_id, treatment_id, treatment_nb, TRUE as upstream + FROM find_uptreatments + UNION + SELECT find_id, treatment_id, treatment_nb, FALSE as upstream + FROM find_downtreatments + ORDER BY find_id, treatment_id, upstream; + + -- deactivate deletion + CREATE RULE find_treatments_del AS ON DELETE TO find_treatments + DO INSTEAD DELETE FROM archaeological_finds_find where id=NULL; + """ + upstream = models.BooleanField(_(u"Is upstream")) + + class Meta: + managed = False + db_table = 'find_treatments' + unique_together = ('find', 'treatment') + ordering = ('find', 'upstream', '-treatment_nb') + + +class TreatmentFileType(GeneralType): + class Meta: + verbose_name = _(u"Treatment file type") + verbose_name_plural = _(u"Treatment file types") + ordering = ('label',) + + +class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter): + SLUG = 'treatmentfile' + SHOW_URL = 'show-treatmentfile' + TABLE_COLS = ['type', 'year', 'index', 'internal_reference', 'name'] + + # fields + year = models.IntegerField(_(u"Year"), + default=lambda: datetime.datetime.now().year) + index = models.IntegerField(_(u"Index"), default=1) + internal_reference = models.CharField(_(u"Internal reference"), blank=True, + null=True, max_length=200) + external_id = models.CharField(_(u"External ID"), blank=True, null=True, + max_length=200) + name = models.TextField(_(u"Name"), blank=True, null=True) + type = models.ForeignKey(TreatmentFileType, verbose_name=_(u"Treatment " + u"file type")) + in_charge = models.ForeignKey( + Person, related_name='treatmentfile_responsability', + verbose_name=_(u"Person in charge"), on_delete=models.SET_NULL, + blank=True, null=True) + end_date = models.DateField(_(u"Closing date"), null=True, blank=True) + creation_date = models.DateField( + _(u"Creation date"), default=datetime.date.today, blank=True, + null=True) + reception_date = models.DateField(_(u'Reception date'), blank=True, + null=True) + comment = models.TextField(_(u"Comment"), null=True, blank=True) + cached_label = models.TextField(_(u"Cached name"), null=True, blank=True) + history = HistoricalRecords() + + class Meta: + verbose_name = _(u"Treatment file") + verbose_name_plural = _(u"Treatment files") + unique_together = ('year', 'index') + permissions = ( + ("view_filetreatement", ugettext(u"Can view all Treatment files")), + ("view_own_filetreatement", + ugettext(u"Can view own Treatment file")), + ("add_own_filetreatement", + ugettext(u"Can add own Treatment file")), + ("change_own_filetreatement", + ugettext(u"Can change own Treatment file")), + ("delete_own_filetreatement", + ugettext(u"Can delete own Treatment file")), + ) + ordering = ('cached_label',) + + def __unicode__(self): + return self.cached_label + + def _generate_cached_label(self): + items = [unicode(getattr(self, k)) + for k in ['year', 'index', 'internal_reference', 'name'] if + getattr(self, k)] + return settings.JOINT.join(items) + + def pre_save(self): + # is not new + if self.pk is not None: + return + self.index = 1 + q = TreatmentFile.objects.filter(year=self.year) + if q.count(): + self.index = q.all().aggregate(Max('index'))['index__max'] + 1 + + def save(self, *args, **kwargs): + self.pre_save() + super(TreatmentFile, self).save(*args, **kwargs) + +post_save.connect(cached_label_changed, sender=TreatmentFile) + + +class TreatmentSource(Source): + class Meta: + verbose_name = _(u"Treatment documentation") + verbose_name_plural = _(u"Treament documentations") + treatment = models.ForeignKey( + Treatment, verbose_name=_(u"Treatment"), related_name="source") + + @property + def owner(self): + return self.treatment diff --git a/archaeological_finds/templates/ishtar/sheet_treatmentfile.html b/archaeological_finds/templates/ishtar/sheet_treatmentfile.html new file mode 100644 index 000000000..f7df59bc4 --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_treatmentfile.html @@ -0,0 +1,30 @@ +{% extends "ishtar/sheet.html" %} +{% load i18n window_field from_dict link_to_window window_tables window_header humanize %} +{% load url from future %} + +{% block head_title %}{% trans "Treatment file" %}{% endblock %} +{% block content %} +{% window_nav item window_id 'show-treatmentfile' %} + +

      {{ item.name|default:"" }}

      +{% if item.internal_reference %} +

      {{ item.internal_reference }}

      {% endif %} +

      {{ item.year }} - {{ item.index }}

      +{% if item.external_id %} +

      {{ item.external_id }}

      {% endif %} + +
        + {% field_li "Type" item.type %} + {% field_li "Responsible" item.in_charge %} + {% field_li "Creation date" item.creation_date %} + {% field_li "Reception date" item.reception_date %} + {% field_li "End date" item.end_date %} +
      +{% field "Comment" item.comment "
      " "
      " %} + +{% trans "Treatments" as treatments %} +{% if item.treatments.count %} +{% dynamic_table_document treatments 'treatments' 'treatments' item.pk '' output %} +{% endif %} + +{% endblock %} diff --git a/archaeological_finds/templates/ishtar/sheet_treatmentfile_pdf.html b/archaeological_finds/templates/ishtar/sheet_treatmentfile_pdf.html new file mode 100644 index 000000000..be64ff7eb --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_treatmentfile_pdf.html @@ -0,0 +1,18 @@ +{% extends "ishtar/sheet_treatmentfile.html" %} +{% block header %} + +{% endblock %} +{% block main_head %} +{{ block.super }} +
      + Ishtar – {{APP_NAME}} – {{item}} +
      +{% endblock %} +{%block head_sheet%}{%endblock%} +{%block main_foot%} +
      + – – +
      + + +{%endblock%} diff --git a/archaeological_finds/templates/ishtar/sheet_treatmentfile_window.html b/archaeological_finds/templates/ishtar/sheet_treatmentfile_window.html new file mode 100644 index 000000000..ac692c304 --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_treatmentfile_window.html @@ -0,0 +1,3 @@ +{% extends "ishtar/sheet_treatmentfile.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index e187e7258..a585ba6a1 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -101,6 +101,18 @@ urlpatterns = patterns( url(r'^treatment_deletion/(?P.+)?$', check_rights(['change_find', 'change_own_find'])( views.treatment_deletion_wizard), name='treatment_deletion'), + url(r'treatmentfle_search/(?P.+)?$', + check_rights(['change_find', 'change_own_find'])( + views.treatmentfile_search_wizard), + name='treatmentfile_search'), + url(r'treatmentfle_creation/(?P.+)?$', + check_rights(['change_find', 'change_own_find'])( + views.treatmentfile_creation_wizard), + name='treatmentfile_creation'), + url(r'treatmentfle_modification/(?P.+)?$', + check_rights(['change_find', 'change_own_find'])( + views.treatmentfile_modification_wizard), + name='treatmentfile_modification'), url(r'get-upstreamtreatment/(?P.+)?$', views.get_upstreamtreatment, name='get-upstreamtreatment'), url(r'get-downstreamtreatment/(?P.+)?$', @@ -156,6 +168,12 @@ urlpatterns += patterns( 'get_treatment', name='get-treatment'), url(r'show-treatment(?:/(?P.+))?/(?P.+)?$', 'show_treatment', name=models.Treatment.SHOW_URL), - # url(r'get-treatment/(?P.+)?$', 'get_treatment', - # name='get-treatment'), + url(r'get-treatmentfile/(?P.+)?$', + 'get_treatmentfile', name='get-treatmentfile'), + url(r'show-treatmentfile(?:/(?P.+))?/(?P.+)?$', + 'show_treatmentfile', + name=models.TreatmentFile.SHOW_URL), + # url(r'show-treatmentfile(?:/(?P.+))?/(?P.+)?$', + # 'show_treatmentfile', + # name=models.TreatmentFile.SHOW_URL), ) diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 4a4935f67..cbd8495f8 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -52,6 +52,10 @@ get_find_for_treatment = get_item( show_treatment = show_item(models.Treatment, 'treatment') get_treatment = get_item(models.Treatment, 'get_treatement', 'treatment') +show_treatmentfile = show_item(models.TreatmentFile, 'treatmentfile') +get_treatmentfile = get_item(models.TreatmentFile, 'get_treatementfile', + 'treatmentfile') + show_findsource = show_item(models.FindSource, 'findsource') get_findsource = get_item(models.FindSource, 'get_findsource', 'findsource') @@ -305,12 +309,12 @@ treatment_search_wizard = SearchWizard.as_view([ treatment_creation_wizard = TreatmentWizard.as_view( treatment_wizard_steps, condition_dict={ - 'selecfind-treatment_creation': - check_value('basetreatment-treatment_creation', - 'target_is_basket', False), - 'selecbasket-treatment_creation': - check_value('basetreatment-treatment_creation', - 'target_is_basket', True), + 'selecfind-treatment_creation': + check_value('basetreatment-treatment_creation', + 'target_is_basket', False), + 'selecbasket-treatment_creation': + check_value('basetreatment-treatment_creation', + 'target_is_basket', True), # 'resultfinds-treatment_creation': # check_type_field('basetreatment-treatment_creation', # 'treatment_type', models.TreatmentType, @@ -337,6 +341,29 @@ treatment_deletion_wizard = TreatmentDeletionWizard.as_view([ label=_(u"Treatment deletion"), url_name='treatment_deletion',) +treatmentfile_search_wizard = SearchWizard.as_view([ + ('general-treatmentfile_search', TreatmentFileFormSelection)], + label=_(u"Treatment file search"), + url_name='treatmentfile_search',) + +treatmentfile_wizard_steps = [ + ('treatmentfile-treatmentfile_creation', TreatmentFileForm), + ('final-treatmentfile_creation', FinalForm)] + + +treatmentfile_creation_wizard = TreatmentFileWizard.as_view( + treatmentfile_wizard_steps, + label=_(u"New file treatment"), + url_name='treatmentfile_creation',) + +treatmentfile_modification_wizard = TreatmentFileModificationWizard.as_view( + [('selec-treatmentfile_modification', TreatmentFileFormSelection), + ('treatmentfile-treatmentfile_modification', TreatmentFileForm), + ('final-treatmentfile_modification', FinalForm)], + label=_(u"Modify"), + url_name='treatmentfile_modification', +) + """ treatment_source_creation_wizard = TreatmentSourceWizard.as_view([ ('selec-treatment_source_creation', SourceTreatmentFormSelection), diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index bb2d1042e..736143d87 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -126,7 +126,16 @@ class TreatmentDeletionWizard(DeletionWizard): fields = ['label', 'other_reference', 'year', 'index', 'treatment_types', 'location', 'person', 'organization', 'external_id', 'comment', 'description', - 'goal', 'start_date', 'end_date', 'container']\ + 'goal', 'start_date', 'end_date', 'container'] + + +class TreatmentFileWizard(Wizard): + model = models.TreatmentFile + wizard_done_window = reverse_lazy('show-treatmentfile') + + +class TreatmentFileModificationWizard(TreatmentFileWizard): + modification = True class FindSourceWizard(SourceWizard): diff --git a/ishtar_common/views.py b/ishtar_common/views.py index d1faef9c0..c2bfd9bda 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -912,7 +912,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], keys = [keys] my_vals = [] for k in keys: - if k in model.EXTRA_REQUEST_KEYS: + if hasattr(model, 'EXTRA_REQUEST_KEYS') \ + and k in model.EXTRA_REQUEST_KEYS: k = model.EXTRA_REQUEST_KEYS[k] if type(k) in (list, tuple): k = k[0] diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index d207286ab..8fe39b054 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -499,7 +499,7 @@ class Wizard(NamedUrlWizardView): obj.pre_save() try: obj.full_clean() - except ValidationError: + except ValidationError as e: logger.warning(unicode(e)) return self.render(form_list[-1]) for dependant_item in other_objs: -- cgit v1.2.3 From 349fd863a1850e7e342a71c3ca38c96593609a5f Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 8 Dec 2016 20:40:25 +0100 Subject: Improve JQtables when dealing with multiple foreign keys --- ishtar_common/models.py | 2 +- ishtar_common/templatetags/window_tables.py | 10 +++++++--- ishtar_common/views.py | 4 ++-- ishtar_common/widgets.py | 15 ++++++++++----- 4 files changed, 20 insertions(+), 11 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 2bb96d11d..69bb9b935 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -416,7 +416,7 @@ class GeneralType(Cached, models.Model): for value in initial: try: pk = int(value) - except ValueError: + except (ValueError, TypeError): continue if pk in type_pks: continue diff --git a/ishtar_common/templatetags/window_tables.py b/ishtar_common/templatetags/window_tables.py index 566d1dfbc..377b6e435 100644 --- a/ishtar_common/templatetags/window_tables.py +++ b/ishtar_common/templatetags/window_tables.py @@ -17,7 +17,7 @@ from archaeological_operations.models import OperationSource, Operation from archaeological_context_records.models import ContextRecord, \ ContextRecordSource, RecordRelations as CRRecordRelations from archaeological_finds.models import Find, FindSource, \ - FindUpstreamTreatments, FindDownstreamTreatments + FindUpstreamTreatments, FindDownstreamTreatments, FindTreatments register = template.Library() @@ -53,16 +53,20 @@ ASSOCIATED_MODELS['finds_upstreamtreatments'] = ( FindUpstreamTreatments, 'get-upstreamtreatment', '') ASSOCIATED_MODELS['finds_downstreamtreatments'] = ( FindDownstreamTreatments, 'get-downstreamtreatment', '') +ASSOCIATED_MODELS['treatments'] = ( + FindTreatments, 'get-treatment', '') @register.simple_tag(takes_context=True) def dynamic_table_document( context, caption, associated_model, key, value, - table_cols='TABLE_COLS', output='html', large=False): + table_cols='TABLE_COLS', output='html', large=False, + col_prefix=''): if not table_cols: table_cols = 'TABLE_COLS' model, url, url_full = ASSOCIATED_MODELS[associated_model] - grid = JQueryJqGrid(None, None, model, table_cols=table_cols) + grid = JQueryJqGrid(None, None, model, table_cols=table_cols, + col_prefix=col_prefix) source = unicode(reverse_lazy(url)) source_full = unicode(reverse_lazy(url_full)) if url_full else '' source_attrs = mark_safe('?submited=1&{}={}'.format(key, value)) diff --git a/ishtar_common/views.py b/ishtar_common/views.py index c2bfd9bda..6426fef8f 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1009,9 +1009,9 @@ def get_item(model, func_name, default_name, extra_request_keys=[], # foreign key may be divided by "." or "__" for tc in table_col: if '.' in tc: - tab_cols.append(tc.split('.')[-1]) + tab_cols += tc.split('.') elif '__' in tc: - tab_cols.append(tc.split('__')[-1]) + tab_cols += tc.split('__') else: tab_cols.append(tc) k = "__".join(tab_cols) diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 7696d67da..7611a08df 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -529,7 +529,8 @@ class JQueryJqGrid(forms.RadioSelect): def __init__(self, source, form, associated_model, attrs={}, table_cols='TABLE_COLS', multiple=False, multiple_cols=[2], new=False, new_message="", source_full=None, - multiple_select=False, sortname="__default__"): + multiple_select=False, sortname="__default__", + col_prefix=''): """ JQueryJqGrid widget init. @@ -545,6 +546,7 @@ class JQueryJqGrid(forms.RadioSelect): :param source_full: url to get full listing :param multiple_select: :param sortname: column name (model attribute) to use to sort + :param col_prefix: prefix to remove to col_names """ super(JQueryJqGrid, self).__init__(attrs=attrs) self.source = source @@ -560,6 +562,9 @@ class JQueryJqGrid(forms.RadioSelect): self.new, self.new_message = new, new_message self.source_full = source_full self.sortname = sortname + self.col_prefix = col_prefix + if self.col_prefix and not self.col_prefix.endswith('__'): + self.col_prefix += "__" def get_cols(self, python=False): jq_col_names, extra_cols = [], [] @@ -577,23 +582,23 @@ class JQueryJqGrid(forms.RadioSelect): keys = col_name.split('__') if '.' in col_name: keys = col_name.split('.') - f_name = '' for key in keys: if hasattr(field, 'rel') and field.rel: field = field.rel.to try: field = field._meta.get_field(key) field_verbose_name = field.verbose_name - f_name = field.name except (fields.FieldDoesNotExist, AttributeError): if hasattr(field, key + '_lbl'): - f_name = key field_verbose_name = getattr(field, key + '_lbl') else: continue if field_name: field_name += "__" - field_name += f_name + if col_name.startswith(self.col_prefix): + field_name += col_name[len(self.col_prefix):] + else: + field_name += col_name field_verbose_names.append(unicode(field_verbose_name)) if not field_name: field_name = "__".join(col_names) -- cgit v1.2.3 From f91bdbd644a266b69667cfbca5a3b23689990817 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sat, 10 Dec 2016 12:01:45 +0100 Subject: Fix get_types cache key (extra args where not evaluated) --- archaeological_finds/forms_treatments.py | 0 ishtar_common/models.py | 1 + 2 files changed, 1 insertion(+) create mode 100644 archaeological_finds/forms_treatments.py (limited to 'ishtar_common') diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py new file mode 100644 index 000000000..e69de29bb diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 69bb9b935..25fa73132 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -447,6 +447,7 @@ class GeneralType(Cached, models.Model): keys = ['__get_types'] keys += [u"{}".format(ex) for ex in exclude] + [ empty_first and 'empty_first' or ''] + [u"{}".format(default)] + keys += [u'{}-{}'.format(unicode(k), dct[k]) for k in dct] cache_key, value = get_cache(cls, keys) if value and not force: return value -- cgit v1.2.3 From 35897953208aa60ee306aba73963dda34a553cb0 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 11 Dec 2016 17:46:46 +0100 Subject: Administrative act for treatment and treatment files --- archaeological_files/urls.py | 8 +- archaeological_files/wizards.py | 1 + archaeological_finds/forms.py | 341 +-------- archaeological_finds/forms_treatments.py | 472 ++++++++++++ archaeological_finds/ishtar_menu.py | 95 ++- archaeological_finds/urls.py | 56 +- archaeological_finds/views.py | 121 ++- archaeological_finds/wizards.py | 60 ++ archaeological_operations/admin.py | 10 +- ...tiveact_treatment_file__add_field_administra.py | 822 +++++++++++++++++++++ archaeological_operations/models.py | 14 +- .../templates/ishtar/sheet_administrativeact.html | 48 +- archaeological_operations/urls.py | 6 +- archaeological_operations/wizards.py | 11 +- archaeological_warehouse/ishtar_menu.py | 2 +- ishtar_common/models.py | 7 +- ishtar_common/widgets.py | 12 +- 17 files changed, 1724 insertions(+), 362 deletions(-) create mode 100644 archaeological_operations/migrations/0063_auto__add_field_administrativeact_treatment_file__add_field_administra.py (limited to 'ishtar_common') diff --git a/archaeological_files/urls.py b/archaeological_files/urls.py index b762a54b3..91d106f78 100644 --- a/archaeological_files/urls.py +++ b/archaeological_files/urls.py @@ -50,14 +50,14 @@ urlpatterns = patterns( check_rights(['view_file', 'view_own_file'])( views.file_search_wizard), name='file_search'), - url(r'file_creation/(?P.+)?$', + url(r'^file_creation/(?P.+)?$', check_rights(['add_file'])( views.file_creation_wizard), name='file_creation'), - url(r'file_modification/(?P.+)?$', + url(r'^file_modification/(?P.+)?$', check_rights(['change_file', 'change_own_file'])( views.file_modification_wizard), name='file_modification'), - url(r'file_modify/(?P.+)/$', views.file_modify, name='file_modify'), - url(r'file_closing/(?P.+)?$', + url(r'^file_modify/(?P.+)/$', views.file_modify, name='file_modify'), + url(r'^file_closing/(?P.+)?$', check_rights(['change_file'])( views.file_closing_wizard), name='file_closing'), diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py index 4c3a13ee2..1558cd46e 100644 --- a/archaeological_files/wizards.py +++ b/archaeological_files/wizards.py @@ -142,6 +142,7 @@ class FileDeletionWizard(FileClosingWizard): class FileAdministrativeActWizard(OperationAdministrativeActWizard): model = models.File current_obj_slug = 'administrativeactfile' + ref_object_key = 'associated_file' def get_reminder(self): form_key = 'selec-' + self.url_name diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 541778d5c..78a415abf 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -21,7 +21,6 @@ Finds forms definitions """ -import datetime import logging from django import forms @@ -32,21 +31,53 @@ from django.forms.formsets import formset_factory from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ -from ishtar_common.models import Person, valid_id, valid_ids, \ - get_current_profile, Organization +from ishtar_common.models import valid_id, valid_ids, get_current_profile from archaeological_operations.models import Period, ArchaeologicalSite, \ RelationType as OpeRelationType from archaeological_context_records.models import DatingType, DatingQuality, \ ContextRecord -from archaeological_warehouse.models import Warehouse, Container import models -from ishtar_common import widgets -from archaeological_operations.widgets import OAWidget from ishtar_common.forms import FormSet, FloatField, \ get_form_selection, reverse_lazy, TableSelect, get_now, FinalForm, \ ManageOldType + from ishtar_common.forms_common import get_town_field, SourceSelect +from ishtar_common import widgets +from archaeological_operations.widgets import OAWidget + +from archaeological_finds.forms_treatments import TreatmentSelect, \ + TreatmentFormSelection, BaseTreatmentForm, ModifyTreatmentForm, \ + AdministrativeActTreatmentForm, TreatmentFormFileChoice, \ + TreatmentDeletionForm, TreatmentFileSelect, TreatmentFileFormSelection, \ + TreatmentFileForm, ModifyTreatmentFileForm, TreatmentFileDeletionForm, \ + AdministrativeActTreatmentFormSelection, \ + AdministrativeActTreatmentModifForm, \ + AdministrativeActTreatmentFileForm, \ + AdministrativeActTreatmentFileFormSelection, \ + AdministrativeActTreatmentFileModifForm + +__all__ = ['TreatmentSelect', 'TreatmentFormSelection', 'BaseTreatmentForm', + 'ModifyTreatmentForm', 'AdministrativeActTreatmentForm', + 'TreatmentFormFileChoice', 'TreatmentDeletionForm', + 'AdministrativeActTreatmentModifForm', + 'TreatmentFileSelect', 'TreatmentFileFormSelection', + 'TreatmentFileForm', 'ModifyTreatmentFileForm', + 'TreatmentFileDeletionForm', 'AdministrativeActTreatmentFileForm', + 'AdministrativeActTreatmentFileFormSelection', + 'AdministrativeActTreatmentFormSelection', + 'AdministrativeActTreatmentFileModifForm', + 'RecordFormSelection', + 'FindForm', 'DateForm', 'DatingFormSet', 'FindSelect', + 'FindFormSelection', 'MultipleFindFormSelection', + 'FindMultipleFormSelection', 'check_form', 'check_exist', + 'check_not_exist', 'check_value', 'check_type_field', + 'check_type_not_field', 'check_treatment', 'ResultFindForm', + 'ResultFindFormSet', 'FindDeletionForm', + 'UpstreamFindFormSelection', 'SourceFindFormSelection', + 'FindSourceSelect', 'FindSourceFormSelection', + 'NewFindBasketForm', 'SelectFindBasketForm', 'DeleteFindBasketForm', + 'FindBasketAddItemForm'] logger = logging.getLogger(__name__) @@ -604,304 +635,6 @@ class FindBasketAddItemForm(forms.Form): return basket -class TreatmentSelect(TableSelect): - label = forms.CharField(label=_(u"Label")) - other_reference = forms.CharField(label=_(u"Other ref.")) - year = forms.IntegerField(label=_(u"Year")) - index = forms.IntegerField(label=_(u"Index")) - treatment_types = forms.ChoiceField(label=_(u"Treatment type"), choices=[]) - image = forms.NullBooleanField(label=_(u"Has an image?")) - - def __init__(self, *args, **kwargs): - super(TreatmentSelect, self).__init__(*args, **kwargs) - self.fields['treatment_types'].choices = \ - models.TreatmentType.get_types() - self.fields['treatment_types'].help_text = \ - models.TreatmentType.get_help() - - -class TreatmentFormSelection(forms.Form): - form_label = _("Treatment search") - associated_models = {'pk': models.Treatment} - currents = {'pk': models.Treatment} - pk = forms.IntegerField( - label="", required=False, - widget=widgets.JQueryJqGrid( - reverse_lazy('get-treatment'), - TreatmentSelect, models.Treatment), - validators=[valid_id(models.Treatment)]) - - -class BaseTreatmentForm(ManageOldType, forms.Form): - form_label = _(u"Base treatment") - base_models = ['treatment_type'] - associated_models = {'treatment_type': models.TreatmentType, - 'person': Person, - 'location': Warehouse, - 'organization': Organization, - 'container': Container, - } - file_upload = True - need_user_for_initialization = True - - label = forms.CharField(label=_(u"Label"), - max_length=200, required=False) - other_reference = forms.CharField( - label=_(u"Other ref."), max_length=200, required=False) - year = forms.IntegerField(label=_("Year"), - initial=lambda: datetime.datetime.now().year, - validators=[validators.MinValueValidator(1900), - validators.MaxValueValidator(2100)]) - treatment_type = forms.MultipleChoiceField( - label=_(u"Treatment type"), choices=[], - widget=widgets.CheckboxSelectMultiple) - target_is_basket = forms.NullBooleanField(label=_(u"Target")) - person = forms.IntegerField( - label=_(u"Responsible"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-person'), associated_model=Person, - new=True), - validators=[valid_id(Person)], required=False) - organization = forms.IntegerField( - label=_(u"Organization"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-organization'), - associated_model=Organization, new=True), - validators=[valid_id(Organization)], required=False) - location = forms.IntegerField( - label=_(u"Location"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse, - new=True), - validators=[valid_id(Warehouse)]) - container = forms.IntegerField( - label=_(u"Container (relevant for packaging)"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-container'), - associated_model=Container, new=True), - validators=[valid_id(Container)], required=False) - external_id = forms.CharField( - label=_(u"External ref."), max_length=200, required=False) - comment = forms.CharField(label=_(u"Comment"), - widget=forms.Textarea, required=False) - description = forms.CharField(label=_(u"Description"), - widget=forms.Textarea, required=False) - goal = forms.CharField(label=_(u"Goal"), - widget=forms.Textarea, required=False) - start_date = forms.DateField(label=_(u"Start date"), required=False, - widget=widgets.JQueryDate) - end_date = forms.DateField(label=_(u"End date"), required=False, - widget=widgets.JQueryDate) - image = forms.ImageField( - label=_(u"Image"), help_text=mark_safe( - _(u"

      Heavy images are resized to: %(width)dx%(height)d " - u"(ratio is preserved).

      ") % { - 'width': settings.IMAGE_MAX_SIZE[0], - 'height': settings.IMAGE_MAX_SIZE[1]}), - max_length=255, required=False, widget=widgets.ImageFileInput()) - - def __init__(self, *args, **kwargs): - user = kwargs.pop('user') - super(BaseTreatmentForm, self).__init__(*args, **kwargs) - q = Person.objects.filter(ishtaruser__pk=user.pk) - if q.count(): - person = q.all()[0] - self.fields['person'].initial = person.pk - if person.attached_to: - self.fields['organization'].initial = person.attached_to.pk - self.fields['target_is_basket'].widget.choices = \ - ((False, _(u"Single find")), (True, _(u"Basket"))) - self.fields['treatment_type'].choices = models.TreatmentType.get_types( - initial=self.init_data.get('treatment_type'), - dct={'upstream_is_many': False, 'downstream_is_many': False}, - empty_first=False - ) - self.fields['treatment_type'].help_text = \ - models.TreatmentType.get_help( - dct={'upstream_is_many': False, 'downstream_is_many': False}) - # TODO - """ - self.fields['basket'].required = False - self.fields['basket'].help_text = \ - _(u"Leave it blank if you want to select a single item") - self.fields.keyOrder.pop(self.fields.keyOrder.index('basket')) - self.fields.keyOrder.insert(self.fields.keyOrder.index('description'), - 'basket') - """ - - def clean(self, *args, **kwargs): - data = self.cleaned_data - packaging = models.TreatmentType.get_cache('packaging') - if not packaging: - logger.warning("No 'packaging' treatment type defined") - return - if data.get('container', None) \ - and str(packaging.pk) not in data.get('treatment_type', []): - raise forms.ValidationError( - _(u"The container field is attached to the treatment. If " - u"no packaging treatment is done it is not relevant.")) - if not data.get('container', None) \ - and str(packaging.pk) in data.get('treatment_type', []): - raise forms.ValidationError( - _(u"If a packaging treatment is done, the container field " - u"must be filled.")) - if not data.get('person', None) and not data.get('organization', None): - raise forms.ValidationError( - _(u"A responsible or an organization must be defined.")) - return data - # TODO - """ - for treatment_type in self.cleaned_data.get('treatment_type', []): - try: - treatment = models.TreatmentType.objects.get( - pk=treatment_type, available=True) - except models.TreatmentType.DoesNotExist: - raise forms.ValidationError(_(u"This treatment type is not " - u"available.")) - if treatment.upstream_is_many and \ - not self.cleaned_data.get('basket'): - raise forms.ValidationError(_(u"This treatment needs a " - u"basket.")) - """ - - -class ModifyTreatmentForm(BaseTreatmentForm): - index = forms.IntegerField(_(u"Index")) - id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False) - - def clean(self, *args, **kwargs): - super(ModifyTreatmentForm, self).clean(*args, **kwargs) - cleaned_data = self.cleaned_data - year = cleaned_data.get('year') - pk = cleaned_data.get('id') - index = cleaned_data.get('index') - q = models.Treatment.objects\ - .filter(year=year, index=index).exclude(pk=pk) - if index and q.count(): - raise forms.ValidationError( - _(u"Another treatment with this index exists for {}." - ).format(year)) - return cleaned_data - - -class TreatmentFormFileChoice(forms.Form): - form_label = _(u"Associated file") - associated_models = {'file': models.TreatmentFile, } - currents = {'file': models.TreatmentFile} - file = forms.IntegerField( - label=_(u"Treatment file"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-treatmentfile'), - associated_model=models.TreatmentFile), - validators=[valid_id(models.TreatmentFile)], required=False) - - -class TreatmentDeletionForm(FinalForm): - confirm_msg = _( - u"Are you sure you want to delete this treatment? All modification " - u"made to the associated finds since this treatment record will be " - u"lost!") - confirm_end_msg = _(u"Would you like to delete this treatment?") - - -class TreatmentFileSelect(TableSelect): - name = forms.CharField(label=_(u"Name")) - internal_reference = forms.CharField(label=_(u"Internal ref.")) - year = forms.IntegerField(label=_(u"Year")) - index = forms.IntegerField(label=_(u"Index")) - type = forms.ChoiceField(label=_(u"Treatment file type"), choices=[]) - - def __init__(self, *args, **kwargs): - super(TreatmentFileSelect, self).__init__(*args, **kwargs) - self.fields['type'].choices = models.TreatmentFileType.get_types() - self.fields['type'].help_text = models.TreatmentFileType.get_help() - - -class TreatmentFileFormSelection(forms.Form): - form_label = _("Treatment file search") - associated_models = {'pk': models.TreatmentFile} - currents = {'pk': models.TreatmentFile} - pk = forms.IntegerField( - label="", required=False, - widget=widgets.JQueryJqGrid( - reverse_lazy('get-treatmentfile'), - TreatmentFileSelect, models.TreatmentFile), - validators=[valid_id(models.Treatment)]) - - -class TreatmentFileForm(ManageOldType, forms.Form): - form_label = _(u"Treatment file") - base_models = ['treatment_type_type'] - associated_models = {'type': models.TreatmentFileType, - 'in_charge': Person} - need_user_for_initialization = True - - name = forms.CharField(label=_(u"Name"), - max_length=1000, required=False) - internal_reference = forms.CharField( - label=_(u"Internal ref."), max_length=60, required=False) - year = forms.IntegerField(label=_("Year"), - initial=lambda: datetime.datetime.now().year, - validators=[validators.MinValueValidator(1900), - validators.MaxValueValidator(2100)]) - type = forms.ChoiceField( - label=_(u"Treatment file type"), choices=[]) - in_charge = forms.IntegerField( - label=_(u"Responsible"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-person'), associated_model=Person, - new=True), - validators=[valid_id(Person)]) - external_id = forms.CharField( - label=_(u"External ref."), max_length=200, required=False) - comment = forms.CharField(label=_(u"Comment"), - widget=forms.Textarea, required=False) - creation_date = forms.DateField(label=_(u"Start date"), required=False, - widget=widgets.JQueryDate, - initial=lambda: datetime.datetime.now()) - reception_date = forms.DateField(label=_(u"Reception date"), required=False, - widget=widgets.JQueryDate, - initial=lambda: datetime.datetime.now()) - end_date = forms.DateField(label=_(u"Closing date"), required=False, - widget=widgets.JQueryDate) - - def __init__(self, *args, **kwargs): - user = kwargs.pop('user') - super(TreatmentFileForm, self).__init__(*args, **kwargs) - q = Person.objects.filter(ishtaruser__pk=user.pk) - if q.count(): - person = q.all()[0] - self.fields['in_charge'].initial = person.pk - self.fields['type'].choices = models.TreatmentFileType.get_types( - initial=[self.init_data.get('type')], empty_first=False - ) - self.fields['type'].help_text = models.TreatmentFileType.get_help() - - -class ModifyTreatmentFileForm(TreatmentFileForm): - index = forms.IntegerField(_(u"Index")) - id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False) - - def clean(self, *args, **kwargs): - super(ModifyTreatmentFileForm, self).clean(*args, **kwargs) - cleaned_data = self.cleaned_data - year = cleaned_data.get('year') - pk = cleaned_data.get('id') - index = cleaned_data.get('index') - q = models.TreatmentFile.objects\ - .filter(year=year, index=index).exclude(pk=pk) - if index and q.count(): - raise forms.ValidationError( - _(u"Another treatment file with this index exists for {}." - ).format(year)) - return cleaned_data - - -class TreatmentFileDeletionForm(FinalForm): - confirm_msg = _(u"Are you sure you want to delete this treatment file?") - confirm_end_msg = _(u"Would you like to delete this treatment file?") - - """ #################################### # Source management for treatments # diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index e69de29bb..4f5bbac07 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -0,0 +1,472 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2016 Étienne Loks + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +# See the file COPYING for details. + +import datetime +import logging + +from django import forms +from django.conf import settings +from django.core import validators +from django.utils.safestring import mark_safe +from django.utils.translation import ugettext_lazy as _ + +from ishtar_common.models import Person, valid_id, Organization +from archaeological_operations.models import ActType, AdministrativeAct +from archaeological_warehouse.models import Warehouse, Container +import models + +from archaeological_operations.forms import AdministrativeActOpeForm, \ + AdministrativeActOpeFormSelection, AdministrativeActModifForm + +from ishtar_common.forms import reverse_lazy, TableSelect, FinalForm, \ + ManageOldType + +from ishtar_common import widgets + +logger = logging.getLogger(__name__) + +# Treatment + + +class TreatmentSelect(TableSelect): + label = forms.CharField(label=_(u"Label")) + other_reference = forms.CharField(label=_(u"Other ref.")) + year = forms.IntegerField(label=_(u"Year")) + index = forms.IntegerField(label=_(u"Index")) + treatment_types = forms.ChoiceField(label=_(u"Treatment type"), choices=[]) + image = forms.NullBooleanField(label=_(u"Has an image?")) + + def __init__(self, *args, **kwargs): + super(TreatmentSelect, self).__init__(*args, **kwargs) + self.fields['treatment_types'].choices = \ + models.TreatmentType.get_types() + self.fields['treatment_types'].help_text = \ + models.TreatmentType.get_help() + + +class TreatmentFormSelection(forms.Form): + form_label = _("Treatment search") + associated_models = {'pk': models.Treatment} + currents = {'pk': models.Treatment} + pk = forms.IntegerField( + label="", required=False, + widget=widgets.JQueryJqGrid( + reverse_lazy('get-treatment'), + TreatmentSelect, models.Treatment), + validators=[valid_id(models.Treatment)]) + + +class BaseTreatmentForm(ManageOldType, forms.Form): + form_label = _(u"Base treatment") + base_models = ['treatment_type'] + associated_models = {'treatment_type': models.TreatmentType, + 'person': Person, + 'location': Warehouse, + 'organization': Organization, + 'container': Container, + } + file_upload = True + need_user_for_initialization = True + + label = forms.CharField(label=_(u"Label"), + max_length=200, required=False) + other_reference = forms.CharField( + label=_(u"Other ref."), max_length=200, required=False) + year = forms.IntegerField(label=_("Year"), + initial=lambda: datetime.datetime.now().year, + validators=[validators.MinValueValidator(1900), + validators.MaxValueValidator(2100)]) + treatment_type = forms.MultipleChoiceField( + label=_(u"Treatment type"), choices=[], + widget=widgets.CheckboxSelectMultiple) + target_is_basket = forms.NullBooleanField(label=_(u"Target")) + person = forms.IntegerField( + label=_(u"Responsible"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-person'), associated_model=Person, + new=True), + validators=[valid_id(Person)], required=False) + organization = forms.IntegerField( + label=_(u"Organization"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-organization'), + associated_model=Organization, new=True), + validators=[valid_id(Organization)], required=False) + location = forms.IntegerField( + label=_(u"Location"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse, + new=True), + validators=[valid_id(Warehouse)]) + container = forms.IntegerField( + label=_(u"Container (relevant for packaging)"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-container'), + associated_model=Container, new=True), + validators=[valid_id(Container)], required=False) + external_id = forms.CharField( + label=_(u"External ref."), max_length=200, required=False) + comment = forms.CharField(label=_(u"Comment"), + widget=forms.Textarea, required=False) + description = forms.CharField(label=_(u"Description"), + widget=forms.Textarea, required=False) + goal = forms.CharField(label=_(u"Goal"), + widget=forms.Textarea, required=False) + start_date = forms.DateField(label=_(u"Start date"), required=False, + widget=widgets.JQueryDate) + end_date = forms.DateField(label=_(u"End date"), required=False, + widget=widgets.JQueryDate) + image = forms.ImageField( + label=_(u"Image"), help_text=mark_safe( + _(u"

      Heavy images are resized to: %(width)dx%(height)d " + u"(ratio is preserved).

      ") % { + 'width': settings.IMAGE_MAX_SIZE[0], + 'height': settings.IMAGE_MAX_SIZE[1]}), + max_length=255, required=False, widget=widgets.ImageFileInput()) + + def __init__(self, *args, **kwargs): + user = kwargs.pop('user') + super(BaseTreatmentForm, self).__init__(*args, **kwargs) + q = Person.objects.filter(ishtaruser__pk=user.pk) + if q.count(): + person = q.all()[0] + self.fields['person'].initial = person.pk + if person.attached_to: + self.fields['organization'].initial = person.attached_to.pk + self.fields['target_is_basket'].widget.choices = \ + ((False, _(u"Single find")), (True, _(u"Basket"))) + self.fields['treatment_type'].choices = models.TreatmentType.get_types( + initial=self.init_data.get('treatment_type'), + dct={'upstream_is_many': False, 'downstream_is_many': False}, + empty_first=False + ) + self.fields['treatment_type'].help_text = \ + models.TreatmentType.get_help( + dct={'upstream_is_many': False, 'downstream_is_many': False}) + # TODO + """ + self.fields['basket'].required = False + self.fields['basket'].help_text = \ + _(u"Leave it blank if you want to select a single item") + self.fields.keyOrder.pop(self.fields.keyOrder.index('basket')) + self.fields.keyOrder.insert(self.fields.keyOrder.index('description'), + 'basket') + """ + + def clean(self, *args, **kwargs): + data = self.cleaned_data + packaging = models.TreatmentType.get_cache('packaging') + if not packaging: + logger.warning("No 'packaging' treatment type defined") + return + if data.get('container', None) \ + and str(packaging.pk) not in data.get('treatment_type', []): + raise forms.ValidationError( + _(u"The container field is attached to the treatment. If " + u"no packaging treatment is done it is not relevant.")) + if not data.get('container', None) \ + and str(packaging.pk) in data.get('treatment_type', []): + raise forms.ValidationError( + _(u"If a packaging treatment is done, the container field " + u"must be filled.")) + if not data.get('person', None) and not data.get('organization', None): + raise forms.ValidationError( + _(u"A responsible or an organization must be defined.")) + return data + # TODO + """ + for treatment_type in self.cleaned_data.get('treatment_type', []): + try: + treatment = models.TreatmentType.objects.get( + pk=treatment_type, available=True) + except models.TreatmentType.DoesNotExist: + raise forms.ValidationError(_(u"This treatment type is not " + u"available.")) + if treatment.upstream_is_many and \ + not self.cleaned_data.get('basket'): + raise forms.ValidationError(_(u"This treatment needs a " + u"basket.")) + """ + + +class ModifyTreatmentForm(BaseTreatmentForm): + index = forms.IntegerField(_(u"Index")) + id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False) + + def clean(self, *args, **kwargs): + super(ModifyTreatmentForm, self).clean(*args, **kwargs) + cleaned_data = self.cleaned_data + year = cleaned_data.get('year') + pk = cleaned_data.get('id') + index = cleaned_data.get('index') + q = models.Treatment.objects \ + .filter(year=year, index=index).exclude(pk=pk) + if index and q.count(): + raise forms.ValidationError( + _(u"Another treatment with this index exists for {}." + ).format(year)) + return cleaned_data + + +class TreatmentFormFileChoice(forms.Form): + form_label = _(u"Associated file") + associated_models = {'file': models.TreatmentFile, } + currents = {'file': models.TreatmentFile} + file = forms.IntegerField( + label=_(u"Treatment file"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-treatmentfile'), + associated_model=models.TreatmentFile), + validators=[valid_id(models.TreatmentFile)], required=False) + + +class TreatmentDeletionForm(FinalForm): + confirm_msg = _( + u"Are you sure you want to delete this treatment? All modification " + u"made to the associated finds since this treatment record will be " + u"lost!") + confirm_end_msg = _(u"Would you like to delete this treatment?") + +# administrative act treatment + + +class AdministrativeActTreatmentSelect(TableSelect): + year = forms.IntegerField(label=_("Year")) + index = forms.IntegerField(label=_("Index")) + act_type = forms.ChoiceField(label=_("Act type"), choices=[]) + indexed = forms.NullBooleanField(label=_(u"Indexed?")) + act_object = forms.CharField(label=_(u"Object"), + max_length=300) + + signature_date_after = forms.DateField( + label=_(u"Signature date after"), widget=widgets.JQueryDate) + signature_date_before = forms.DateField( + label=_(u"Signature date before"), widget=widgets.JQueryDate) + treatment__name = forms.CharField( + label=_(u"Treatment name"), max_length=200) + treatment__year = forms.IntegerField(label=_(u"Treatment year")) + treatment__index = forms.IntegerField(label=_(u"Treatment index")) + treatment__internal_reference = forms.CharField( + max_length=200, label=_(u"Treatment internal reference")) + history_modifier = forms.IntegerField( + label=_(u"Modified by"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-person', + args=['0', 'user']), + associated_model=Person), + validators=[valid_id(Person)]) + + def __init__(self, *args, **kwargs): + super(AdministrativeActTreatmentSelect, self).__init__(*args, **kwargs) + self.fields['act_type'].choices = ActType.get_types( + dct={'intented_to': 'T'}) + self.fields['act_type'].help_text = ActType.get_help( + dct={'intented_to': 'T'}) + + +class AdministrativeActTreatmentFormSelection( + AdministrativeActOpeFormSelection): + pk = forms.IntegerField( + label="", required=False, + widget=widgets.JQueryJqGrid( + reverse_lazy('get-administrativeacttreatment'), + AdministrativeActTreatmentSelect, AdministrativeAct), + validators=[valid_id(AdministrativeAct)]) + + +class AdministrativeActTreatmentForm(AdministrativeActOpeForm): + act_type = forms.ChoiceField(label=_(u"Act type"), choices=[]) + + def __init__(self, *args, **kwargs): + super(AdministrativeActTreatmentForm, self).__init__(*args, **kwargs) + self.fields['act_type'].choices = ActType.get_types( + initial=self.init_data.get('act_type'), + dct={'intented_to': 'T'}) + self.fields['act_type'].help_text = ActType.get_help( + dct={'intented_to': 'T'}) + + +class AdministrativeActTreatmentModifForm( + AdministrativeActModifForm, AdministrativeActTreatmentForm): + pk = forms.IntegerField(required=False, widget=forms.HiddenInput) + index = forms.IntegerField(label=_("Index"), required=False) + +# treatment files + + +class TreatmentFileSelect(TableSelect): + name = forms.CharField(label=_(u"Name")) + internal_reference = forms.CharField(label=_(u"Internal ref.")) + year = forms.IntegerField(label=_(u"Year")) + index = forms.IntegerField(label=_(u"Index")) + type = forms.ChoiceField(label=_(u"Treatment file type"), choices=[]) + + def __init__(self, *args, **kwargs): + super(TreatmentFileSelect, self).__init__(*args, **kwargs) + self.fields['type'].choices = models.TreatmentFileType.get_types() + self.fields['type'].help_text = models.TreatmentFileType.get_help() + + +class TreatmentFileFormSelection(forms.Form): + form_label = _("Treatment file search") + associated_models = {'pk': models.TreatmentFile} + currents = {'pk': models.TreatmentFile} + pk = forms.IntegerField( + label="", required=False, + widget=widgets.JQueryJqGrid( + reverse_lazy('get-treatmentfile'), + TreatmentFileSelect, models.TreatmentFile), + validators=[valid_id(models.Treatment)]) + + +class TreatmentFileForm(ManageOldType, forms.Form): + form_label = _(u"Treatment file") + base_models = ['treatment_type_type'] + associated_models = {'type': models.TreatmentFileType, + 'in_charge': Person} + need_user_for_initialization = True + + name = forms.CharField(label=_(u"Name"), + max_length=1000, required=False) + internal_reference = forms.CharField( + label=_(u"Internal ref."), max_length=60, required=False) + year = forms.IntegerField(label=_("Year"), + initial=lambda: datetime.datetime.now().year, + validators=[validators.MinValueValidator(1900), + validators.MaxValueValidator(2100)]) + type = forms.ChoiceField( + label=_(u"Treatment file type"), choices=[]) + in_charge = forms.IntegerField( + label=_(u"Responsible"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-person'), associated_model=Person, + new=True), + validators=[valid_id(Person)]) + external_id = forms.CharField( + label=_(u"External ref."), max_length=200, required=False) + comment = forms.CharField(label=_(u"Comment"), + widget=forms.Textarea, required=False) + creation_date = forms.DateField(label=_(u"Start date"), required=False, + widget=widgets.JQueryDate, + initial=lambda: datetime.datetime.now()) + reception_date = forms.DateField(label=_(u"Reception date"), required=False, + widget=widgets.JQueryDate, + initial=lambda: datetime.datetime.now()) + end_date = forms.DateField(label=_(u"Closing date"), required=False, + widget=widgets.JQueryDate) + + def __init__(self, *args, **kwargs): + user = kwargs.pop('user') + super(TreatmentFileForm, self).__init__(*args, **kwargs) + q = Person.objects.filter(ishtaruser__pk=user.pk) + if q.count(): + person = q.all()[0] + self.fields['in_charge'].initial = person.pk + self.fields['type'].choices = models.TreatmentFileType.get_types( + initial=[self.init_data.get('type')], empty_first=False + ) + self.fields['type'].help_text = models.TreatmentFileType.get_help() + + +class ModifyTreatmentFileForm(TreatmentFileForm): + index = forms.IntegerField(_(u"Index")) + id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False) + + def clean(self, *args, **kwargs): + super(ModifyTreatmentFileForm, self).clean(*args, **kwargs) + cleaned_data = self.cleaned_data + year = cleaned_data.get('year') + pk = cleaned_data.get('id') + index = cleaned_data.get('index') + q = models.TreatmentFile.objects \ + .filter(year=year, index=index).exclude(pk=pk) + if index and q.count(): + raise forms.ValidationError( + _(u"Another treatment file with this index exists for {}." + ).format(year)) + return cleaned_data + + +class TreatmentFileDeletionForm(FinalForm): + confirm_msg = _(u"Are you sure you want to delete this treatment file?") + confirm_end_msg = _(u"Would you like to delete this treatment file?") + + +class AdministrativeActTreatmentFileSelect(TableSelect): + year = forms.IntegerField(label=_("Year")) + index = forms.IntegerField(label=_("Index")) + act_type = forms.ChoiceField(label=_("Act type"), choices=[]) + indexed = forms.NullBooleanField(label=_(u"Indexed?")) + act_object = forms.CharField(label=_(u"Object"), + max_length=300) + + signature_date_after = forms.DateField( + label=_(u"Signature date after"), widget=widgets.JQueryDate) + signature_date_before = forms.DateField( + label=_(u"Signature date before"), widget=widgets.JQueryDate) + treatment_file__name = forms.CharField( + label=_(u"Treatment file name"), max_length=200) + treatment_file__year = forms.IntegerField(label=_(u"Treatment file year")) + treatment_file__index = forms.IntegerField(label=_(u"Treatment file index")) + treatment_file__internal_reference = forms.CharField( + max_length=200, label=_(u"Treatment file internal reference")) + history_modifier = forms.IntegerField( + label=_(u"Modified by"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-person', + args=['0', 'user']), + associated_model=Person), + validators=[valid_id(Person)]) + + def __init__(self, *args, **kwargs): + super(AdministrativeActTreatmentFileSelect, self).__init__(*args, + **kwargs) + self.fields['act_type'].choices = ActType.get_types( + dct={'intented_to': 'TF'}) + self.fields['act_type'].help_text = ActType.get_help( + dct={'intented_to': 'TF'}) + + +class AdministrativeActTreatmentFileFormSelection( + AdministrativeActOpeFormSelection): + pk = forms.IntegerField( + label="", required=False, + widget=widgets.JQueryJqGrid( + reverse_lazy('get-administrativeacttreatmentfile'), + AdministrativeActTreatmentFileSelect, AdministrativeAct), + validators=[valid_id(AdministrativeAct)]) + + +class AdministrativeActTreatmentFileForm(AdministrativeActOpeForm): + act_type = forms.ChoiceField(label=_(u"Act type"), choices=[]) + + def __init__(self, *args, **kwargs): + super(AdministrativeActTreatmentFileForm, self).__init__(*args, + **kwargs) + self.fields['act_type'].choices = ActType.get_types( + initial=self.init_data.get('act_type'), + dct={'intented_to': 'TF'}) + self.fields['act_type'].help_text = ActType.get_help( + dct={'intented_to': 'TF'}) + + +class AdministrativeActTreatmentFileModifForm( + AdministrativeActModifForm, AdministrativeActTreatmentFileForm): + pk = forms.IntegerField(required=False, widget=forms.HiddenInput) + index = forms.IntegerField(label=_("Index"), required=False) diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py index 7824c94fe..39cc5d910 100644 --- a/archaeological_finds/ishtar_menu.py +++ b/archaeological_finds/ishtar_menu.py @@ -21,6 +21,7 @@ from django.utils.translation import ugettext_lazy as _ from ishtar_common.menu_base import SectionItem, MenuItem +from archaeological_operations.models import AdministrativeAct import models # be carreful: each access_controls must be relevant with check_rights in urls @@ -103,33 +104,60 @@ MENU_SECTIONS = [ ])), (60, SectionItem( - 'treatment_management', _(u"Treatment"), + 'treatmentfle_management', _(u"Treatment file"), profile_restriction='warehouse', childs=[ + MenuItem('treatmentfle_search', + _(u"Search"), + model=models.TreatmentFile, + access_controls=['view_find', + 'view_own_find']), + MenuItem('treatmentfle_creation', + _(u"Creation"), + model=models.TreatmentFile, + access_controls=['change_find', + 'change_own_find']), + MenuItem('treatmentfle_modification', + _(u"Modification"), + model=models.TreatmentFile, + access_controls=['change_find', + 'change_own_find']), + MenuItem('treatmentfle_deletion', + _(u"Deletion"), + model=models.TreatmentFile, + access_controls=['change_find', + 'change_own_find']), SectionItem( - 'find_treatmentfiles', _(u"Treatment Files"), + 'admin_act_fletreatments', _(u"Administrative act"), childs=[ - MenuItem('treatmentfle_search', + MenuItem('treatmentfle_admacttreatmentfle_search', _(u"Search"), - model=models.TreatmentFile, - access_controls=['view_find', - 'view_own_find']), - MenuItem('treatmentfle_creation', + model=AdministrativeAct, + access_controls=['change_administrativeact']), + MenuItem('treatmentfle_admacttreatmentfle', _(u"Creation"), - model=models.TreatmentFile, - access_controls=['change_find', - 'change_own_find']), - MenuItem('treatmentfle_modification', - _(u"Modification"), - model=models.TreatmentFile, - access_controls=['change_find', - 'change_own_find']), - MenuItem('treatmentfle_deletion', + model=AdministrativeAct, + access_controls=['change_administrativeact']), + MenuItem('treatmentfle_admacttreatmentfle_modification', + _(u"Modification"), model=AdministrativeAct, + access_controls=['change_administrativeact']), + MenuItem('treatmentfle_admacttreatmentfle_deletion', _(u"Deletion"), - model=models.TreatmentFile, - access_controls=['change_find', - 'change_own_find']), - ]), + model=AdministrativeAct, + access_controls=['change_administrativeact']), + MenuItem('treatmentfle_administrativeact_document', + _(u"Documents"), + model=AdministrativeAct, + access_controls=['change_administrativeact']), + ] + ) + ] + )), + (70, + SectionItem( + 'treatment_management', _(u"Treatment"), + profile_restriction='warehouse', + childs=[ SectionItem( 'find_treatments', _(u"Simple treatments"), childs=[ @@ -154,6 +182,31 @@ MENU_SECTIONS = [ access_controls=['change_find', 'change_own_find']), ]), - ] + SectionItem( + 'admin_act_treatments', _(u"Administrative act"), + childs=[ + MenuItem('treatment_admacttreatment_search', + _(u"Search"), + model=AdministrativeAct, + access_controls=['change_administrativeact']), + MenuItem('treatment_admacttreatment', + _(u"Creation"), + model=AdministrativeAct, + access_controls=['change_administrativeact']), + MenuItem( + 'treatment_admacttreatment_modification', + _(u"Modification"), model=AdministrativeAct, + access_controls=['change_administrativeact']), + MenuItem('treatment_admacttreatment_deletion', + _(u"Deletion"), + model=AdministrativeAct, + access_controls=['change_administrativeact']), + MenuItem('treatment_admacttreatment_document', + _(u"Documents"), + model=AdministrativeAct, + access_controls=['change_administrativeact']), + ] + ) + ] )), ] diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index c780b14fb..120fa1ed0 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -88,20 +88,65 @@ urlpatterns = patterns( url(r'^find_basket_deletion/$', check_rights(['change_find', 'change_own_find'])( views.DeleteFindBasketView.as_view()), name='delete_findbasket'), - url(r'treatment_creation/(?P.+)?$', + url(r'^treatment_creation/(?P.+)?$', check_rights(['change_find', 'change_own_find'])( views.treatment_creation_wizard), name='treatment_creation'), - url(r'treatment_modification/(?P.+)?$', + url(r'^treatment_modification/(?P.+)?$', check_rights(['change_find', 'change_own_find'])( views.treatment_modification_wizard), name='treatment_modification'), - url(r'treatment_search/(?P.+)?$', + url(r'^treatment_search/(?P.+)?$', check_rights(['view_find', 'view_own_find'])( views.treatment_search_wizard), name='treatment_search'), url(r'^treatment_deletion/(?P.+)?$', check_rights(['change_find', 'change_own_find'])( views.treatment_deletion_wizard), name='treatment_deletion'), - url(r'treatmentfle_search/(?P.+)?$', + + url(r'^treatment_admacttreatment_search/(?P.+)?$', + check_rights(['change_administrativeact'])( + views.treatment_administrativeact_search_wizard), + name='treatment_admacttreatment_search'), + url(r'^treatment_admacttreatment/(?P.+)?$', + check_rights(['change_administrativeact'])( + views.treatment_administrativeact_wizard), + name='treatment_admacttreatment'), + url(r'^treatment_admacttreatment_modification/(?P.+)?$', + check_rights(['change_administrativeact'])( + views.treatment_administrativeact_modification_wizard), + name='treatment_admacttreatment_modification'), + url(r'^treatment_administrativeacttreatment_modify/(?P.+)/$', + views.treatment_administrativeacttreatment_modify, + name='treatment_administrativeacttreatment_modify'), + url(r'^treatment_admacttreatment_deletion/(?P.+)?$', + check_rights(['change_administrativeact'])( + views.treatment_admacttreatment_deletion_wizard), + name='treatment_admacttreatment_deletion'), + url(r'^get-administrativeacttreatment/(?P.+)?$', + views.get_administrativeacttreatment, + name='get-administrativeacttreatment'), + + url(r'^treatmentfle_admacttreatmentfle_search/(?P.+)?$', + check_rights(['change_administrativeact'])( + views.treatmentfile_admacttreatmentfile_search_wizard), + name='treatmentfle_admacttreatmentfle_search'), + url(r'^treatmentfle_admacttreatmentfle_modification/(?P.+)?$', + check_rights(['change_administrativeact'])( + views.treatmentfile_admacttreatmentfile_modification_wizard), + name='treatmentfle_admacttreatmentfle_modification'), + url(r'^treatmentfle_admacttreatmentfle/(?P.+)?$', + check_rights(['change_administrativeact'])( + views.treatmentfile_admacttreatmentfile_wizard), + name='treatmentfle_admacttreatmentfle'), + url(r'^treatmentfile_administrativeacttreatmentfile_modify/(?P.+)/$', + views.treatmentfile_administrativeacttreatmentfile_modify, + name='treatmentfile_administrativeacttreatmentfile_modify'), + url(r'^treatmentfle_admacttreatmentfle_deletion/(?P.+)?$', + check_rights(['change_administrativeact'])( + views.treatmentfile_admacttreatmentfile_deletion_wizard), + name='treatmentfle_admacttreatmentfle_deletion'), + + + url(r'^treatmentfle_search/(?P.+)?$', check_rights(['change_find', 'change_own_find'])( views.treatmentfile_search_wizard), name='treatmentfile_search'), @@ -117,6 +162,9 @@ urlpatterns = patterns( check_rights(['change_find', 'change_own_find'])( views.treatmentfile_deletion_wizard), name='treatmentfile_deletion'), + url(r'get-administrativeacttreatmentfile/(?P.+)?$', + views.get_administrativeacttreatmentfile, + name='get-administrativeacttreatmentfile'), url(r'get-upstreamtreatment/(?P.+)?$', views.get_upstreamtreatment, name='get-upstreamtreatment'), url(r'get-downstreamtreatment/(?P.+)?$', diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 1b08e9853..35c7d5976 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -28,16 +28,21 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView from django.views.generic.edit import CreateView, FormView +from ishtar_common.models import IshtarUser +from archaeological_operations.models import AdministrativeAct + from ishtar_common.forms import FinalForm from ishtar_common.forms_common import SourceForm, AuthorFormset, \ SourceDeletionForm -from ishtar_common.models import IshtarUser +from archaeological_operations.forms import FinalAdministrativeActDeleteForm from archaeological_context_records.forms \ import RecordFormSelection as RecordFormSelectionTable from ishtar_common.views import get_item, show_item, revert_item, \ get_autocomplete_generic, IshtarMixin, LoginRequiredMixin + from ishtar_common.wizards import SearchWizard +from archaeological_operations.wizards import AdministrativeActDeletionWizard from wizards import * from forms import * @@ -55,10 +60,20 @@ get_find_for_treatment = get_item( show_treatment = show_item(models.Treatment, 'treatment') get_treatment = get_item(models.Treatment, 'get_treatement', 'treatment') +get_administrativeacttreatment = get_item( + AdministrativeAct, 'get_administrativeacttreatment', + 'administrativeacttreatment', + base_request={"treatment__pk__isnull": False}) + show_treatmentfile = show_item(models.TreatmentFile, 'treatmentfile') get_treatmentfile = get_item(models.TreatmentFile, 'get_treatementfile', 'treatmentfile') +get_administrativeacttreatmentfile = get_item( + AdministrativeAct, 'get_administrativeacttreatmentfile', + 'administrativeacttreatmentfile', + base_request={"treatment_file__pk__isnull": False}) + def autocomplete_treatmentfile(request): if not request.user.has_perm('ishtar_common.view_treatment', @@ -375,6 +390,59 @@ treatment_deletion_wizard = TreatmentDeletionWizard.as_view([ label=_(u"Treatment deletion"), url_name='treatment_deletion',) +treatment_administrativeact_search_wizard = \ + SearchWizard.as_view([ + ('selec-treatment_admacttreatment_search', + AdministrativeActTreatmentFormSelection)], + label=_(u"Treatment: search administrative act"), + url_name='treatment_admacttreatment_search',) + +treatment_administrativeact_wizard = \ + TreatmentAdministrativeActWizard.as_view([ + ('selec-treatment_admacttreatment', TreatmentFormSelection), + ('administrativeact-treatment_admacttreatment', + AdministrativeActTreatmentForm), + ('final-treatment_admacttreatment', FinalForm)], + label=_(u"Treatment: new administrative act"), + url_name='treatment_admacttreatment',) + +treatment_administrativeact_modification_wizard = \ + TreatmentEditAdministrativeActWizard.as_view([ + ('selec-treatment_admacttreatment_modification', + AdministrativeActTreatmentFormSelection), + ('administrativeact-treatment_admacttreatment_modification', + AdministrativeActTreatmentModifForm), + ('final-treatment_admacttreatment_modification', FinalForm)], + label=_(u"Treatment: administrative act modification"), + url_name='treatment_admacttreatment_modification',) + +treatment_admacttreatment_deletion_wizard = \ + AdministrativeActDeletionWizard.as_view([ + ('selec-treatment_admacttreatment_deletion', + AdministrativeActTreatmentFormSelection), + ('final-treatment_admacttreatment_deletion', + FinalAdministrativeActDeleteForm)], + label=_(u"Treatment: administrative act deletion"), + url_name='treatment_admacttreatment_deletion',) + + +def treatment_administrativeacttreatment_modify(request, pk): + treatment_administrativeact_modification_wizard(request) + TreatmentEditAdministrativeActWizard.session_set_value( + request, + 'selec-treatment_admacttreatment_modification', + 'pk', pk, reset=True) + return redirect( + reverse( + 'treatment_admacttreatment_modification', + kwargs={ + 'step': + 'administrativeact-treatment_admacttreatment_modification' + })) + + +# treatment file + treatmentfile_search_wizard = SearchWizard.as_view([ ('general-treatmentfile_search', TreatmentFileFormSelection)], label=_(u"Treatment file search"), @@ -404,6 +472,57 @@ treatmentfile_deletion_wizard = TreatmentFileDeletionWizard.as_view([ label=_(u"Treatment file deletion"), url_name='treatmentfile_deletion',) +treatmentfile_admacttreatmentfile_search_wizard = \ + SearchWizard.as_view([ + ('selec-treatmentfle_admacttreatmentfle_search', + AdministrativeActTreatmentFileFormSelection)], + label=_(u"Treatment file: search administrative act"), + url_name='treatmentfle_admacttreatmentfle_search',) + + +treatmentfile_admacttreatmentfile_wizard = \ + TreatmentFileAdministrativeActWizard.as_view([ + ('selec-treatmentfle_admacttreatmentfle', TreatmentFileFormSelection), + ('admact-treatmentfle_admacttreatmentfle', + AdministrativeActTreatmentFileForm), + ('final-treatmentfle_admacttreatmentfle', FinalForm)], + label=_(u"Treatment file: new administrative act"), + url_name='treatmentfle_admacttreatmentfle',) + +treatmentfile_admacttreatmentfile_modification_wizard = \ + TreatmentFileEditAdministrativeActWizard.as_view([ + ('selec-treatmentfle_admacttreatmentfle_modification', + AdministrativeActTreatmentFileFormSelection), + ('admact-treatmentfle_admacttreatmentfle_modification', + AdministrativeActTreatmentFileModifForm), + ('final-treatmentfle_admacttreatmentfle_modification', FinalForm)], + label=_(u"Treatment file: administrative act modification"), + url_name='treatmentfle_admacttreatmentfle_modification',) + +treatmentfile_admacttreatmentfile_deletion_wizard = \ + AdministrativeActDeletionWizard.as_view([ + ('selec-treatmentfle_admacttreatmentfle_deletion', + AdministrativeActTreatmentFileFormSelection), + ('final-treatmentfle_admacttreatmentfle_deletion', + FinalAdministrativeActDeleteForm)], + label=_(u"Treatment file: administrative act deletion"), + url_name='treatmentfle_admacttreatmentfle_deletion',) + + +def treatmentfile_administrativeacttreatmentfile_modify(request, pk): + treatmentfile_admacttreatmentfile_modification_wizard(request) + TreatmentFileEditAdministrativeActWizard.session_set_value( + request, + 'selec-treatmentfle_admacttreatmentfle_modification', + 'pk', pk, reset=True) + return redirect( + reverse( + 'treatmentfle_admacttreatmentfle_modification', + kwargs={ + 'step': + 'admact-treatmentfle_admacttreatmentfle_modification' + })) + """ treatment_source_creation_wizard = TreatmentSourceWizard.as_view([ ('selec-treatment_source_creation', SourceTreatmentFormSelection), diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index eb838eb66..f5f43f1e6 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -22,6 +22,9 @@ from django.utils.translation import ugettext_lazy as _ from ishtar_common.forms import reverse_lazy from ishtar_common.wizards import Wizard, DeletionWizard, SourceWizard +from archaeological_operations.wizards import OperationAdministrativeActWizard + +from archaeological_operations.models import AdministrativeAct import models @@ -129,6 +132,23 @@ class TreatmentDeletionWizard(DeletionWizard): 'goal', 'start_date', 'end_date', 'container'] +class TreatmentAdministrativeActWizard(OperationAdministrativeActWizard): + model = models.Treatment + current_obj_slug = 'administrativeacttreatment' + ref_object_key = 'treatment' + + def get_reminder(self): + return + + +class TreatmentEditAdministrativeActWizard(TreatmentAdministrativeActWizard): + model = AdministrativeAct + edit = True + + def get_associated_item(self, dct): + return self.get_current_object().treatment + + class TreatmentFileWizard(Wizard): model = models.TreatmentFile wizard_done_window = reverse_lazy('show-treatmentfile') @@ -145,6 +165,46 @@ class TreatmentFileDeletionWizard(DeletionWizard): 'creation_date', 'end_date', 'comment'] +class TreatmentFileAdministrativeActWizard( + OperationAdministrativeActWizard): + model = models.TreatmentFile + current_obj_slug = 'administrativeacttreatmentfile' + ref_object_key = 'treatment_file' + + def get_reminder(self): + form_key = 'selec-' + self.url_name + if self.url_name.endswith('_administrativeactop'): + # modification and deletion are suffixed with '_modification' + # and '_deletion' so it is creation + pk = self.session_get_value(form_key, "pk") + try: + return ( + (_(u"Treatment file"), + unicode(models.Operation.objects.get(pk=pk))), + ) + except models.TreatmentFile.DoesNotExist: + return + else: + admin_id = self.session_get_value(form_key, "pk") + try: + admin = AdministrativeAct.objects.get(pk=admin_id) + if not admin.operation: + return + return ((_(u"Operation"), unicode(admin.operation)),) + except AdministrativeAct.DoesNotExist: + return + return + + +class TreatmentFileEditAdministrativeActWizard( + TreatmentFileAdministrativeActWizard): + model = AdministrativeAct + edit = True + + def get_associated_item(self, dct): + return self.get_current_object().treatment_file + + class FindSourceWizard(SourceWizard): wizard_done_window = reverse_lazy('show-findsource') model = models.FindSource diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py index 47ab8419b..b97df85eb 100644 --- a/archaeological_operations/admin.py +++ b/archaeological_operations/admin.py @@ -100,7 +100,15 @@ class RelationTypeAdmin(admin.ModelAdmin): admin.site.register(models.RelationType, RelationTypeAdmin) -general_models = [models.RemainType, models.ActType, models.ReportState] + +class ActTypeAdmin(GeneralTypeAdmin): + list_filter = ('intented_to',) + list_display = ['label', 'txt_idx', 'available', 'intented_to'] + + +admin.site.register(models.ActType, ActTypeAdmin) + +general_models = [models.RemainType, models.ReportState] for model in general_models: admin.site.register(model, GeneralTypeAdmin) diff --git a/archaeological_operations/migrations/0063_auto__add_field_administrativeact_treatment_file__add_field_administra.py b/archaeological_operations/migrations/0063_auto__add_field_administrativeact_treatment_file__add_field_administra.py new file mode 100644 index 000000000..671de79ec --- /dev/null +++ b/archaeological_operations/migrations/0063_auto__add_field_administrativeact_treatment_file__add_field_administra.py @@ -0,0 +1,822 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'AdministrativeAct.treatment_file' + db.add_column('archaeological_operations_administrativeact', 'treatment_file', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='administrative_act', null=True, to=orm['archaeological_finds.TreatmentFile']), + keep_default=False) + + # Adding field 'AdministrativeAct.treatment' + db.add_column('archaeological_operations_administrativeact', 'treatment', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='administrative_act', null=True, to=orm['archaeological_finds.Treatment']), + keep_default=False) + + + # Changing field 'ActType.intented_to' + db.alter_column('archaeological_operations_acttype', 'intented_to', self.gf('django.db.models.fields.CharField')(max_length=2)) + # Adding field 'HistoricalAdministrativeAct.treatment_file_id' + db.add_column('archaeological_operations_historicaladministrativeact', 'treatment_file_id', + self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalAdministrativeAct.treatment_id' + db.add_column('archaeological_operations_historicaladministrativeact', 'treatment_id', + self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'AdministrativeAct.treatment_file' + db.delete_column('archaeological_operations_administrativeact', 'treatment_file_id') + + # Deleting field 'AdministrativeAct.treatment' + db.delete_column('archaeological_operations_administrativeact', 'treatment_id') + + + # Changing field 'ActType.intented_to' + db.alter_column('archaeological_operations_acttype', 'intented_to', self.gf('django.db.models.fields.CharField')(max_length=1)) + # Deleting field 'HistoricalAdministrativeAct.treatment_file_id' + db.delete_column('archaeological_operations_historicaladministrativeact', 'treatment_file_id') + + # Deleting field 'HistoricalAdministrativeAct.treatment_id' + db.delete_column('archaeological_operations_historicaladministrativeact', 'treatment_id') + + + models = { + 'archaeological_files.file': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), + 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}), + 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}), + 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), + 'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}), + 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}), + 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '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_finds.treatment': { + 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'}, + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), + 'goal': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentfile': { + 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'}, + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_finds.treatmentfiletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_finds.treatmenttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'archaeological_operations.acttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, + 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '2'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.administrativeact': { + 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}), + 'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.historicaladministrativeact': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalAdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'signatory_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'treatment_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.historicaloperation': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'}, + 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operationbydepartment': { + 'Meta': {'object_name': 'OperationByDepartment', 'db_table': "'operation_department'", 'managed': 'False'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Operation']"}) + }, + 'archaeological_operations.operationsource': { + 'Meta': {'object_name': 'OperationSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operationsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_operations.Operation']"}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_operations.operationtypeold': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.parcel': { + 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.parcelowner': { + 'Meta': {'object_name': 'ParcelOwner'}, + 'end_date': ('django.db.models.fields.DateField', [], {}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}), + 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}), + 'start_date': ('django.db.models.fields.DateField', [], {}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.recordrelations': { + 'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}), + 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}), + 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"}) + }, + 'archaeological_operations.relationtype': { + 'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.titletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['archaeological_operations'] \ No newline at end of file diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index c54a060cb..307d02e97 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -882,8 +882,10 @@ class OperationSource(Source): class ActType(GeneralType): TYPE = (('F', _(u'Archaeological file')), ('O', _(u'Operation')), + ('TF', _(u'Treatment file')), + ('T', _(u'Treatment')), ) - intented_to = models.CharField(_(u"Intended to"), max_length=1, + intented_to = models.CharField(_(u"Intended to"), max_length=2, choices=TYPE) code = models.CharField(_(u"Code"), max_length=10, blank=True, null=True) associated_template = models.ManyToManyField( @@ -988,6 +990,16 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): blank=True, null=True, related_name='administrative_act', verbose_name=_(u"Archaeological file")) + treatment_file = models.ForeignKey( + 'archaeological_finds.TreatmentFile', + blank=True, null=True, + related_name='administrative_act', + verbose_name=_(u"Treatment file")) + treatment = models.ForeignKey( + 'archaeological_finds.Treatment', + blank=True, null=True, + related_name='administrative_act', + verbose_name=_(u"Treatment")) signature_date = models.DateField(_(u"Signature date"), blank=True, null=True) year = models.IntegerField(_(u"Year"), blank=True, null=True) diff --git a/archaeological_operations/templates/ishtar/sheet_administrativeact.html b/archaeological_operations/templates/ishtar/sheet_administrativeact.html index 57acf9cbe..c96d216c9 100644 --- a/archaeological_operations/templates/ishtar/sheet_administrativeact.html +++ b/archaeological_operations/templates/ishtar/sheet_administrativeact.html @@ -1,32 +1,46 @@ {% extends "ishtar/sheet.html" %} -{% load i18n window_header %} +{% load i18n window_header window_field %} {% block head_title %}{% trans "Administrative act" %}{% endblock %} {% block content %} {% if item.operation %} {% window_nav item window_id 'show-administrativeact' 'operation_administrativeactop_modify' %} -{% else %} +{% endif %} +{% if item.associated_file %} {% window_nav item window_id 'show-administrativeact' 'file_administrativeactfile_modify' %} {% endif %} +{% if item.treatment %} +{% window_nav item window_id 'show-administrativeact' 'treatment_administrativeacttreatment_modify' %} +{% endif %} +{% if item.treatment_file %} +{% window_nav item window_id 'show-administrativeact' 'treatmentfile_administrativeacttreatmentfile_modify' %} +{% endif %}

      {% trans "General"%}

      -

      {{ item.year }}

      -{% if item.index %}

      {{ item.index }}

      {% endif %} -{% if item.ref_sra %}

      {{ item.ref_sra }}

      {% endif %} -

      {{ item.act_type }}

      -{% if item.act_object %}

      {{ item.act_object }}

      {% endif %} -

      {{ item.signature_date }}

      -

      {{ item.in_charge.full_label }}

      -{% if item.operator %}

      {{ item.operator }}

      {% endif %} - -{% if item.associated_file %}

      {{ item.associated_file }}

      {% endif %} -{% if item.operation %}

      {{ item.operation }}

      {% endif %} +
        + {% field_li "Year" item.year %} + {% field_li "Index" item.index %} + {% field_li "Internal reference" item.ref_sra %} + {% field_li "Type" item.act_type %} + {% field_li "Object" item.act_object %} + {% field_li "Signature date" item.signature_date %} + {% field_li "In charge" item.in_charge %} + {% field_li "Archaeological preventive operator" item.operator %} + {% field_li_detail "Associated file" item.associated_file %} + {% field_li_detail "Operation" item.operation %} + {% field_li_detail "Treatment" item.treatment %} + {% field_li_detail "Treatment file" item.treatment_file %} -{% if item.operation %}{% if item.operation.surface %}

        {{ item.operation.surface }} m2 ({{ item.operation.surface_ha }} ha)

        {%endif%} {% endif %} -

        {{ item.history_creator.ishtaruser.full_label }}

        -{%comment%}{% if item.general_contractor.attached_to %}

        {{ item.general_contractor.attached_to }}

        {% endif %} + {% if item.operation and item.operation.surface %} +
      • {{ item.operation.surface }} m2 ({{ item.operation.surface_ha }} ha)
      • + {% endif %} + {% field_li "Created by" item.history_creator.ishtaruser %} +{% comment %}{% if item.general_contractor.attached_to %}

        + + {{ item.general_contractor.attached_to }}

        {% endif %} {% if item.general_contractor %}

        {{ item.general_contractor.full_label }}

        {% endif %} -{%endcomment%} +{% endcomment %} +
      {% endblock %} diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index aca98d4c4..710bc5e24 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -128,9 +128,13 @@ urlpatterns += patterns( # allow specialization for operations url(r'show-administrativeact(?:/(?P.+))?/(?P.+)?$', 'show_administrativeact', name='show-administrativeactop'), - # allow specialization for files + # allow specialization for files, treatment, treatment file url(r'show-administrativeact(?:/(?P.+))?/(?P.+)?$', 'show_administrativeact', name='show-administrativeactfile'), + url(r'show-administrativeact(?:/(?P.+))?/(?P.+)?$', + 'show_administrativeact', name='show-administrativeacttreatment'), + url(r'show-administrativeact(?:/(?P.+))?/(?P.+)?$', + 'show_administrativeact', name='show-administrativeacttreatmentfile'), url(r'generatedoc-administrativeactop/(?P.+)?/(?P.+)?$', 'generatedoc_administrativeactop', name='generatedoc-administrativeactop'), diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index ece14d1d2..94aafb87c 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -17,6 +17,8 @@ # See the file COPYING for details. +import logging + from django.conf import settings from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse @@ -33,6 +35,8 @@ from forms import GenerateDocForm from archaeological_files.models import File +logger = logging.getLogger(__name__) + class OperationWizard(Wizard): model = models.Operation @@ -327,6 +331,7 @@ class OperationAdministrativeActWizard(OperationWizard): edit = False wizard_done_window = reverse_lazy('show-administrativeact') current_obj_slug = 'administrativeactop' + ref_object_key = 'operation' def get_reminder(self): form_key = 'selec-' + self.url_name @@ -389,11 +394,9 @@ class OperationAdministrativeActWizard(OperationWizard): else: associated_item = self.get_associated_item(dct) if not associated_item: + logger.warning("Admin act save: no associated model") return self.render(form_list[-1]) - if isinstance(associated_item, File): - dct['associated_file'] = associated_item - elif isinstance(associated_item, models.Operation): - dct['operation'] = associated_item + dct[self.ref_object_key] = associated_item admact = models.AdministrativeAct(**dct) admact.save() dct['item'] = admact diff --git a/archaeological_warehouse/ishtar_menu.py b/archaeological_warehouse/ishtar_menu.py index 1844b0018..c69ad760d 100644 --- a/archaeological_warehouse/ishtar_menu.py +++ b/archaeological_warehouse/ishtar_menu.py @@ -27,7 +27,7 @@ from archaeological_finds.models import Treatment MENU_SECTIONS = [ - (60, SectionItem('treatment_management', _(u"Treatment"), + (70, SectionItem('treatment_management', _(u"Treatment"), profile_restriction='warehouse', childs=[ MenuItem('warehouse_packaging', _(u"Packaging"), diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 25fa73132..d4f0c595e 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -413,6 +413,8 @@ class GeneralType(Cached, models.Model): new_vals = [] if not initial: return [] + if type(initial) not in (list, tuple): + initial = [initial] for value in initial: try: pk = int(value) @@ -486,7 +488,10 @@ class GeneralType(Cached, models.Model): pass items = cls.objects.filter(**dct) if default and default != "None": - exclude.append(default.txt_idx) + if hasattr(default, 'txt_idx'): + exclude.append(default.txt_idx) + else: + exclude.append(default) if exclude: items = items.exclude(txt_idx__in=exclude) for item in items.order_by(*cls._meta.ordering).all(): diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 7611a08df..be0ab8cba 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -19,9 +19,11 @@ # See the file COPYING for details. +import logging + from django import forms from django.conf import settings -from django.core.urlresolvers import reverse +from django.core.urlresolvers import reverse, NoReverseMatch from django.db.models import fields from django.forms import ClearableFileInput from django.forms.widgets import flatatt, \ @@ -37,6 +39,8 @@ from django.utils.translation import ugettext_lazy as _ from ishtar_common import models +logger = logging.getLogger(__name__) + reverse_lazy = lazy(reverse, unicode) @@ -639,7 +643,11 @@ class JQueryJqGrid(forms.RadioSelect): col_idx = col_idx and ", ".join(col_idx) or "" dct['encoding'] = settings.ENCODING or 'utf-8' - dct['source'] = unicode(self.source) + try: + dct['source'] = unicode(self.source) + except NoReverseMatch: + logger.warning('Cannot resolve source for {} widget'.format( + self.form)) if unicode(self.source_full) and unicode(self.source_full) != 'None': dct['source_full'] = unicode(self.source_full) -- cgit v1.2.3 From 8f8e446022e9dd508572c92ed5244397e2225087 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 13 Dec 2016 23:54:02 +0100 Subject: Manage warehouse forms. Add warehouse division management --- archaeological_warehouse/admin.py | 11 +- archaeological_warehouse/forms.py | 23 ++ ..._warehousedivision__chg_field_warehouse_name.py | 276 ------------------- ...nlink__add_warehousedivision__chg_field_ware.py | 298 +++++++++++++++++++++ archaeological_warehouse/models.py | 23 +- archaeological_warehouse/views.py | 2 + ishtar_common/wizards.py | 28 +- 7 files changed, 365 insertions(+), 296 deletions(-) delete mode 100644 archaeological_warehouse/migrations/0010_auto__add_warehousedivision__chg_field_warehouse_name.py create mode 100644 archaeological_warehouse/migrations/0010_auto__add_warehousedivisionlink__add_warehousedivision__chg_field_ware.py (limited to 'ishtar_common') diff --git a/archaeological_warehouse/admin.py b/archaeological_warehouse/admin.py index 1d5618805..911809d0f 100644 --- a/archaeological_warehouse/admin.py +++ b/archaeological_warehouse/admin.py @@ -33,15 +33,6 @@ class WarehouseAdmin(HistorizedObjectAdmin): admin.site.register(models.Warehouse, WarehouseAdmin) -class WarehouseDivisionAdmin(admin.ModelAdmin): - list_display = ('name', 'warehouse', 'order') - list_filter = ('warehouse',) - search_fields = ('warehouse__name',) - model = models.WarehouseDivision - -admin.site.register(models.WarehouseDivision, WarehouseDivisionAdmin) - - class ContainerTypeAdmin(admin.ModelAdmin): list_display = ('label', 'reference', 'length', 'width', 'height', 'volume') @@ -57,6 +48,6 @@ class ContainerAdmin(admin.ModelAdmin): admin.site.register(models.Container, ContainerAdmin) -general_models = [models.WarehouseType] +general_models = [models.WarehouseType, models.WarehouseDivision] for model in general_models: admin.site.register(model, GeneralTypeAdmin) diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index f73dac22e..2e243b092 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -19,6 +19,7 @@ from django import forms from django.conf import settings +from django.forms.formsets import formset_factory from django.utils.translation import ugettext_lazy as _ from ishtar_common.models import Person, valid_id @@ -39,6 +40,28 @@ def get_warehouse_field(label=_(u"Warehouse"), required=True): validators=[valid_id(models.Warehouse)]) +class SelectedDivisionForm(ManageOldType, forms.Form): + form_label = _(u"Division") + base_model = 'associated_division' + associated_models = {'division': models.WarehouseDivision, + 'associated_division': models.WarehouseDivisionLink} + division = forms.ChoiceField( + label=_(u"Division"), choices=(), required=False, + validators=[valid_id(models.WarehouseDivision)]) + order = forms.IntegerField(_(u"Order"), initial=10, required=False) + + def __init__(self, *args, **kwargs): + super(SelectedDivisionForm, self).__init__(*args, **kwargs) + self.fields['division'].choices = \ + models.WarehouseDivision.get_types( + initial=self.init_data.get('division') + ) + +SelectedDivisionFormset = formset_factory( + SelectedDivisionForm, can_delete=True) +SelectedDivisionFormset.form_label = _(u"Divisions") + + class WarehouseSelect(TableSelect): name = forms.CharField(label=_(u"Name")) warehouse_type = forms.ChoiceField(label=_(u"Warehouse type"), choices=[]) diff --git a/archaeological_warehouse/migrations/0010_auto__add_warehousedivision__chg_field_warehouse_name.py b/archaeological_warehouse/migrations/0010_auto__add_warehousedivision__chg_field_warehouse_name.py deleted file mode 100644 index c0844ab9d..000000000 --- a/archaeological_warehouse/migrations/0010_auto__add_warehousedivision__chg_field_warehouse_name.py +++ /dev/null @@ -1,276 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'WarehouseDivision' - db.create_table('archaeological_warehouse_warehousedivision', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - ('order', self.gf('django.db.models.fields.IntegerField')(default=1)), - ('warehouse', self.gf('django.db.models.fields.related.ForeignKey')(related_name='divisions', to=orm['archaeological_warehouse.Warehouse'])), - )) - db.send_create_signal('archaeological_warehouse', ['WarehouseDivision']) - - - # Changing field 'Warehouse.name' - db.alter_column('archaeological_warehouse_warehouse', 'name', self.gf('django.db.models.fields.CharField')(max_length=200)) - - def backwards(self, orm): - # Deleting model 'WarehouseDivision' - db.delete_table('archaeological_warehouse_warehousedivision') - - - # Changing field 'Warehouse.name' - db.alter_column('archaeological_warehouse_warehouse', 'name', self.gf('django.db.models.fields.CharField')(max_length=40)) - - models = { - 'archaeological_warehouse.container': { - 'Meta': {'object_name': 'Container'}, - 'comment': ('django.db.models.fields.TextField', [], {}), - 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), - 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), - 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), - 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), - 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) - }, - 'archaeological_warehouse.containertype': { - 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, - 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), - 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), - 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), - 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), - 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - 'archaeological_warehouse.warehouse': { - 'Meta': {'object_name': 'Warehouse'}, - 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - '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'}), - 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), - 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), - 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), - 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), - 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), - 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), - 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), - 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), - 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), - 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), - 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), - 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), - 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), - 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) - }, - 'archaeological_warehouse.warehousedivision': { - 'Meta': {'object_name': 'WarehouseDivision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), - 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), - 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'divisions'", 'to': "orm['archaeological_warehouse.Warehouse']"}) - }, - 'archaeological_warehouse.warehousetype': { - 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, - 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) - }, - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'ishtar_common.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']}, - 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), - 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) - }, - 'ishtar_common.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.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'}) - } - } - - complete_apps = ['archaeological_warehouse'] \ No newline at end of file diff --git a/archaeological_warehouse/migrations/0010_auto__add_warehousedivisionlink__add_warehousedivision__chg_field_ware.py b/archaeological_warehouse/migrations/0010_auto__add_warehousedivisionlink__add_warehousedivision__chg_field_ware.py new file mode 100644 index 000000000..306ebe290 --- /dev/null +++ b/archaeological_warehouse/migrations/0010_auto__add_warehousedivisionlink__add_warehousedivision__chg_field_ware.py @@ -0,0 +1,298 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'WarehouseDivisionLink' + db.create_table('archaeological_warehouse_warehousedivisionlink', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('warehouse', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_warehouse.Warehouse'])), + ('division', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_warehouse.WarehouseDivision'])), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + )) + db.send_create_signal('archaeological_warehouse', ['WarehouseDivisionLink']) + + # Adding model 'WarehouseDivision' + db.create_table('archaeological_warehouse_warehousedivision', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('label', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('txt_idx', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)), + ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('available', self.gf('django.db.models.fields.BooleanField')(default=True)), + )) + db.send_create_signal('archaeological_warehouse', ['WarehouseDivision']) + + + # Changing field 'Warehouse.name' + db.alter_column('archaeological_warehouse_warehouse', 'name', self.gf('django.db.models.fields.CharField')(max_length=200)) + + def backwards(self, orm): + # Deleting model 'WarehouseDivisionLink' + db.delete_table('archaeological_warehouse_warehousedivisionlink') + + # Deleting model 'WarehouseDivision' + db.delete_table('archaeological_warehouse_warehousedivision') + + + # Changing field 'Warehouse.name' + db.alter_column('archaeological_warehouse_warehouse', 'name', self.gf('django.db.models.fields.CharField')(max_length=40)) + + models = { + 'archaeological_warehouse.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", '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_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousedivision': { + 'Meta': {'object_name': 'WarehouseDivision'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.warehousedivisionlink': { + 'Meta': {'ordering': "('warehouse', 'order')", 'object_name': 'WarehouseDivisionLink'}, + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.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']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.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.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'}) + } + } + + complete_apps = ['archaeological_warehouse'] \ No newline at end of file diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 579c448ae..7d37bd664 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -42,6 +42,10 @@ class Warehouse(Address, OwnPerms): Person, on_delete=models.SET_NULL, related_name='warehouse_in_charge', verbose_name=_(u"Person in charge"), null=True, blank=True) comment = models.TextField(_(u"Comment"), null=True, blank=True) + associated_divisions = models.ManyToManyField( + 'WarehouseDivision', verbose_name=_("Divisions"), blank=True, + through='WarehouseDivisionLink' + ) TABLE_COLS = ['name', 'warehouse_type'] @@ -60,18 +64,21 @@ class Warehouse(Address, OwnPerms): return u"%s (%s)" % (self.name, unicode(self.warehouse_type)) -class WarehouseDivision(models.Model): - name = models.CharField(_(u"Name"), max_length=200) - order = models.IntegerField(_(u"Order"), default=1) - warehouse = models.ForeignKey(Warehouse, verbose_name=_(u"Warehouse"), - related_name='divisions') - +class WarehouseDivision(GeneralType): class Meta: verbose_name = _(u"Warehouse division") verbose_name_plural = _(u"Warehouse divisions") - def __unicode__(self): - return u"%s (%s)" % (self.name, unicode(self.warehouse)) + +class WarehouseDivisionLink(models.Model): + RELATIVE_MODELS = {Warehouse: 'warehouse'} + warehouse = models.ForeignKey(Warehouse) + division = models.ForeignKey(WarehouseDivision) + order = models.IntegerField(_("Order"), default=10) + + class Meta: + ordering = ('warehouse', 'order') + unique_together = ('warehouse', 'division') class ContainerType(GeneralType): diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index 385a373e7..cfc05a036 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -91,6 +91,7 @@ warehouse_packaging_wizard = PackagingWizard.as_view([ warehouse_creation_wizard = WarehouseWizard.as_view([ ("warehouse-warehouse_creation", WarehouseForm), + ('divisions-warehouse_creation', SelectedDivisionFormset), ('final-warehouse_creation', FinalForm)], label=_(u"Warehouse creation"), url_name='warehouse_creation', @@ -99,6 +100,7 @@ warehouse_creation_wizard = WarehouseWizard.as_view([ warehouse_modification_wizard = WarehouseModificationWizard.as_view([ ('selec-warehouse_modification', WarehouseFormSelection), ("warehouse-warehouse_modification", WarehouseForm), + ('divisions-warehouse_modification', SelectedDivisionFormset), ('final-warehouse_modification', FinalForm)], label=_(u"Warehouse modification"), url_name='warehouse_modification', diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 8fe39b054..2fbe30e0e 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -583,6 +583,12 @@ class Wizard(NamedUrlWizardView): old_m2ms = {} for model in whole_associated_models: related_model = getattr(obj, model + 's') + # manage through + if hasattr(related_model, 'through') and related_model.through: + related_set_name = str( + related_model.through.__name__ + '_set').lower() + if hasattr(obj, related_set_name): + related_model = getattr(obj, related_set_name) # clear real m2m if hasattr(related_model, 'clear'): old_m2ms[model] = [] @@ -609,6 +615,9 @@ class Wizard(NamedUrlWizardView): if value not in m2m_items[key]: if type(value) == dict: model = related_model.model + if hasattr(related_model, 'through') and \ + related_model.through: + model = related_model.through # not m2m -> foreign key if not hasattr(related_model, 'clear'): assert hasattr(model, 'MAIN_ATTR'), \ @@ -633,6 +642,11 @@ class Wizard(NamedUrlWizardView): else: if issubclass(model, models.BaseHistorizedItem): value['history_modifier'] = self.request.user + if hasattr(model, 'RELATIVE_MODELS') and \ + self.get_saved_model() in \ + model.RELATIVE_MODELS: + value[model.RELATIVE_MODELS[ + self.get_saved_model()]] = obj value = model.objects.create(**value) value.save() # check that an item is not add multiple times (forged forms) @@ -1003,8 +1017,18 @@ class Wizard(NamedUrlWizardView): if not hasattr(obj, key): return initial keys = c_form.form.base_fields.keys() - query = getattr(obj, key) - if not obj._meta.ordering: + related = getattr(obj, key) + # manage through + through = False + if hasattr(related, 'through') and related.through: + related_set_name = str( + related.through.__name__ + '_set').lower() + if hasattr(obj, related_set_name): + through = True + related = getattr(obj, related_set_name) + + query = related + if not through and not obj._meta.ordering: query = query.order_by('pk') for child_obj in query.all(): if not keys: -- cgit v1.2.3 From ecdea8b34ba6047147a449623737dcd2c0aee376 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 14 Dec 2016 18:35:10 +0100 Subject: Manage container localisation --- archaeological_warehouse/forms.py | 19 ++ archaeological_warehouse/ishtar_menu.py | 3 + ...ation__add_unique_containerlocalisation_cont.py | 298 +++++++++++++++++++++ archaeological_warehouse/models.py | 19 +- .../wizard/wizard_containerlocalisation.html | 7 + archaeological_warehouse/urls.py | 4 + archaeological_warehouse/views.py | 8 + archaeological_warehouse/wizards.py | 54 ++++ .../templates/ishtar/wizard/default_wizard.html | 1 + 9 files changed, 412 insertions(+), 1 deletion(-) create mode 100644 archaeological_warehouse/migrations/0011_auto__add_containerlocalisation__add_unique_containerlocalisation_cont.py create mode 100644 archaeological_warehouse/templates/ishtar/wizard/wizard_containerlocalisation.html (limited to 'ishtar_common') diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index 2e243b092..8e0328880 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -218,3 +218,22 @@ class BasePackagingForm(SelectFindBasketForm): class FindPackagingFormSelection(FindMultipleFormSelection): form_label = _(u"Packaged finds") + + +class LocalisationForm(forms.Form): + form_label = _(u"Localisation") + + def __init__(self, *args, **kwargs): + container = kwargs.pop('container') + super(LocalisationForm, self).__init__(*args, **kwargs) + if not container: + return + for divlink in container.location.warehousedivisionlink_set.order_by( + 'order').all(): + initial = None + q = models.ContainerLocalisation.objects.filter( + division=divlink, container=container) + if q.count(): + initial = q.all()[0].reference + self.fields['division_{}'.format(divlink.pk)] = forms.CharField( + label=str(divlink.division), max_length=200, initial=initial) diff --git a/archaeological_warehouse/ishtar_menu.py b/archaeological_warehouse/ishtar_menu.py index 45c73a03b..4fe84e516 100644 --- a/archaeological_warehouse/ishtar_menu.py +++ b/archaeological_warehouse/ishtar_menu.py @@ -44,6 +44,9 @@ MENU_SECTIONS = [ MenuItem('warehouse_modification', _(u"Modification"), model=models.Warehouse, access_controls=['change_warehouse',]), + MenuItem('container_localisation', _(u"Container localisation"), + model=models.Warehouse, + access_controls=['change_warehouse',]), ])) ] """ diff --git a/archaeological_warehouse/migrations/0011_auto__add_containerlocalisation__add_unique_containerlocalisation_cont.py b/archaeological_warehouse/migrations/0011_auto__add_containerlocalisation__add_unique_containerlocalisation_cont.py new file mode 100644 index 000000000..0b63f4d5b --- /dev/null +++ b/archaeological_warehouse/migrations/0011_auto__add_containerlocalisation__add_unique_containerlocalisation_cont.py @@ -0,0 +1,298 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'ContainerLocalisation' + db.create_table('archaeological_warehouse_containerlocalisation', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('container', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_warehouse.Container'])), + ('division', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_warehouse.WarehouseDivisionLink'])), + ('reference', self.gf('django.db.models.fields.CharField')(default='', max_length=200)), + )) + db.send_create_signal('archaeological_warehouse', ['ContainerLocalisation']) + + # Adding unique constraint on 'ContainerLocalisation', fields ['container', 'division'] + db.create_unique('archaeological_warehouse_containerlocalisation', ['container_id', 'division_id']) + + # Adding unique constraint on 'WarehouseDivisionLink', fields ['warehouse', 'division'] + db.create_unique('archaeological_warehouse_warehousedivisionlink', ['warehouse_id', 'division_id']) + + + def backwards(self, orm): + # Removing unique constraint on 'WarehouseDivisionLink', fields ['warehouse', 'division'] + db.delete_unique('archaeological_warehouse_warehousedivisionlink', ['warehouse_id', 'division_id']) + + # Removing unique constraint on 'ContainerLocalisation', fields ['container', 'division'] + db.delete_unique('archaeological_warehouse_containerlocalisation', ['container_id', 'division_id']) + + # Deleting model 'ContainerLocalisation' + db.delete_table('archaeological_warehouse_containerlocalisation') + + + models = { + 'archaeological_warehouse.container': { + 'Meta': {'object_name': 'Container'}, + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containerlocalisation': { + 'Meta': {'unique_together': "(('container', 'division'),)", 'object_name': 'ContainerLocalisation'}, + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']"}), + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivisionLink']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '200'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousedivision': { + 'Meta': {'object_name': 'WarehouseDivision'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.warehousedivisionlink': { + 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.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']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.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.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'}) + } + } + + complete_apps = ['archaeological_warehouse'] \ No newline at end of file diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 7d37bd664..57068f374 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -97,7 +97,7 @@ post_delete.connect(post_save_cache, sender=ContainerType) class Container(LightHistorizedItem): - TABLE_COLS = ['reference', 'container_type', 'location'] + TABLE_COLS = ['reference', 'container_type__label', 'location__name'] # search parameters EXTRA_REQUEST_KEYS = { @@ -121,3 +121,20 @@ class Container(LightHistorizedItem): lbl = u" - ".join((self.reference, unicode(self.container_type), unicode(self.location))) return lbl + + +class ContainerLocalisation(models.Model): + container = models.ForeignKey(Container, verbose_name=_(u"Container")) + division = models.ForeignKey(WarehouseDivisionLink, + verbose_name=_(u"Division")) + reference = models.CharField(_(u"Reference"), max_length=200, default='') + + class Meta: + verbose_name = _(u"Container localisation") + verbose_name_plural = _(u"Container localisations") + unique_together = ('container', 'division') + + def __unicode__(self): + lbl = u" - ".join((unicode(self.container), + unicode(self.division), self.reference)) + return lbl diff --git a/archaeological_warehouse/templates/ishtar/wizard/wizard_containerlocalisation.html b/archaeological_warehouse/templates/ishtar/wizard/wizard_containerlocalisation.html new file mode 100644 index 000000000..4a21368ae --- /dev/null +++ b/archaeological_warehouse/templates/ishtar/wizard/wizard_containerlocalisation.html @@ -0,0 +1,7 @@ +{% extends "ishtar/wizard/default_wizard.html" %} +{% load i18n %} +{% block form_head %} +{% if not wizard.form.fields %} +

      {% trans "No division set for this warehouse. Define it to localise container in this warehouse." %}

      +{% endif %} +{% endblock %} diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py index f6f9d73c0..ab1437a04 100644 --- a/archaeological_warehouse/urls.py +++ b/archaeological_warehouse/urls.py @@ -52,4 +52,8 @@ urlpatterns += patterns( check_rights(['change_warehouse'])( views.warehouse_modification_wizard), name='warehouse_modification'), + url(r'^container_localisation/(?P.+)?$', + check_rights(['change_warehouse'])( + views.container_localisation_wizard), + name='container_localisation'), ) diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index cfc05a036..1b9288ed1 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -107,6 +107,14 @@ warehouse_modification_wizard = WarehouseModificationWizard.as_view([ ) +container_localisation_wizard = LocalisationWizard.as_view([ + ('seleccontainer-container_localisation', ContainerFormSelection), + ('localisation-container_localisation', LocalisationForm), + ('final-container_localisation', FinalForm)], + label=_(u"Container localisation"), + url_name='container_localisation', +) + """ warehouse_packaging_wizard = ItemSourceWizard.as_view([ ('selec-warehouse_packaging', ItemsSelection), diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py index f5aee5c1e..407a58ad6 100644 --- a/archaeological_warehouse/wizards.py +++ b/archaeological_warehouse/wizards.py @@ -17,6 +17,7 @@ # See the file COPYING for details. +from django.contrib.formtools.wizard.views import NamedUrlWizardView from django.shortcuts import render_to_response from django.template import RequestContext @@ -52,3 +53,56 @@ class WarehouseWizard(Wizard): class WarehouseModificationWizard(Wizard): model = models.Warehouse modification = True + + +class LocalisationWizard(Wizard): + wizard_templates = { + 'localisation-container_localisation': + 'ishtar/wizard/wizard_containerlocalisation.html', + } + + def get_form_kwargs(self, step=None): + kwargs = super(LocalisationWizard, self).get_form_kwargs(step) + if step == 'localisation-container_localisation': + container = None + container_pk = self.session_get_value( + 'seleccontainer-container_localisation', 'container') + q = models.Container.objects.filter(pk=container_pk) + if q.count(): + container = q.all()[0] + kwargs['container'] = container + return kwargs + + def done(self, form_list, **kwargs): + """ + Save the localisation + """ + container = None + for idx, form in enumerate(form_list): + if not form.is_valid(): + return self.render(form) + if not idx: # container form + try: + container = models.Container.objects.get( + pk=form.cleaned_data['container']) + except models.Container.DoesNotExist: + return self.render(form) + elif idx == 1: # localisation form + for div_name in form.cleaned_data: + try: + division = models.WarehouseDivisionLink.objects.get( + pk=div_name.split('_')[-1], + warehouse=container.location + ) # check the localisation match with the container + except models.WarehouseDivisionLink.DoesNotExist: + return self.render(form) + localisation, created = \ + models.ContainerLocalisation.objects.get_or_create( + container=container, + division=division + ) + localisation.reference = form.cleaned_data[div_name] + localisation.save() + return render_to_response( + self.wizard_done_template, {}, + context_instance=RequestContext(self.request)) diff --git a/ishtar_common/templates/ishtar/wizard/default_wizard.html b/ishtar_common/templates/ishtar/wizard/default_wizard.html index d886396b3..fad1895bd 100644 --- a/ishtar_common/templates/ishtar/wizard/default_wizard.html +++ b/ishtar_common/templates/ishtar/wizard/default_wizard.html @@ -24,6 +24,7 @@
      {{ wizard.form.media }} {{ wizard.management_form }} +{% block form_head %}{% endblock %} {% block form_detail %} {% if wizard.form.forms %} {{ wizard.form.management_form }} -- cgit v1.2.3 From 4107a0ae31f7ff727a75a7d3fe0b6839fcf0d7bc Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 16 Dec 2016 16:53:56 +0100 Subject: Add debug... --- ishtar_common/wizards.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ishtar_common') diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 2fbe30e0e..6439a85c0 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -562,15 +562,18 @@ class Wizard(NamedUrlWizardView): for k in saved_args: if k in dct: saved_args[k] = dct.pop(k) + print(dct) obj = self.get_saved_model()(**dct) if hasattr(obj, 'pre_save'): obj.pre_save() try: obj.full_clean() except ValidationError as e: + print(e) logger.warning(unicode(e)) return self.render(form_list[-1]) obj.save(**saved_args) + print("hop") for k in adds: getattr(obj, k).add(adds[k]) # necessary to manage interaction between models like -- cgit v1.2.3 From ccbc38ee2409e56abeda7c6f1f7feaca31e74f7b Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 16 Dec 2016 16:54:06 +0100 Subject: Update translation file --- archaeological_files/locale/django.pot | 2 +- archaeological_finds/locale/django.pot | 698 ++++++++++++++------ archaeological_finds/tests.py | 1 + archaeological_operations/locale/django.pot | 174 ++--- archaeological_warehouse/locale/django.pot | 144 ++-- ishtar_common/locale/django.pot | 544 ++++++++-------- translations/fr/archaeological_context_records.po | 8 +- translations/fr/archaeological_files.po | 10 +- translations/fr/archaeological_files_pdl.po | 8 +- translations/fr/archaeological_finds.po | 761 +++++++++++++++------- translations/fr/archaeological_operations.po | 224 +++---- translations/fr/archaeological_warehouse.po | 158 +++-- translations/fr/ishtar_common.po | 555 ++++++++-------- 13 files changed, 1992 insertions(+), 1295 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot index 89451ec1b..b3e38bacf 100644 --- a/archaeological_files/locale/django.pot +++ b/archaeological_files/locale/django.pot @@ -248,7 +248,7 @@ msgstr "" msgid "File permit reference" msgstr "" -#: ishtar_menu.py:33 models.py:220 wizards.py:154 wizards.py:164 +#: ishtar_menu.py:33 models.py:220 wizards.py:155 wizards.py:165 #: templates/ishtar/sheet_file.html:4 msgid "Archaeological file" msgstr "" diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 6fdf890fd..b679a1adf 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -7,811 +7,1073 @@ msgid "" msgstr "" -#: forms.py:55 forms.py:59 wizards.py:60 +#: forms.py:88 forms.py:92 wizards.py:63 msgid "Context record" msgstr "" -#: forms.py:88 ishtar_menu.py:31 models.py:451 models.py:771 models.py:942 -#: models.py:1104 templates/ishtar/sheet_find.html:5 +#: forms.py:121 ishtar_menu.py:32 models_finds.py:449 models_finds.py:772 +#: models_finds.py:781 models_treatments.py:213 +#: templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "" -#: forms.py:99 forms.py:230 forms.py:454 models.py:129 models.py:382 +#: forms.py:132 forms.py:263 forms.py:487 models_finds.py:127 +#: models_finds.py:380 msgid "Free ID" msgstr "" -#: forms.py:101 models.py:437 +#: forms.py:134 models_finds.py:435 msgid "Previous ID" msgstr "" -#: forms.py:102 forms.py:262 forms.py:687 models.py:133 models.py:383 -#: models.py:841 +#: forms.py:135 forms.py:295 forms_treatments.py:130 models_finds.py:131 +#: models_finds.py:381 models_treatments.py:104 msgid "Description" msgstr "" -#: forms.py:105 forms.py:264 models.py:144 +#: forms.py:138 forms.py:297 models_finds.py:142 msgid "Batch/object" msgstr "" -#: forms.py:107 models.py:411 +#: forms.py:140 models_finds.py:409 msgid "Is complete?" msgstr "" -#: forms.py:110 forms.py:252 forms.py:458 models.py:52 +#: forms.py:143 forms.py:285 forms.py:491 models_finds.py:50 msgid "Material type" msgstr "" -#: forms.py:111 forms.py:256 models.py:64 models.py:387 +#: forms.py:144 forms.py:289 models_finds.py:62 models_finds.py:385 msgid "Conservatory state" msgstr "" -#: forms.py:114 models.py:389 +#: forms.py:147 models_finds.py:387 msgid "Conservatory comment" msgstr "" -#: forms.py:117 models.py:104 models.py:414 +#: forms.py:150 models_finds.py:102 models_finds.py:412 msgid "Object types" msgstr "" -#: forms.py:119 forms.py:255 models.py:73 +#: forms.py:152 forms.py:288 models_finds.py:71 msgid "Preservation type" msgstr "" -#: forms.py:122 forms.py:258 models.py:416 +#: forms.py:155 forms.py:291 models_finds.py:414 msgid "Integrity / interest" msgstr "" -#: forms.py:125 forms.py:260 models.py:419 +#: forms.py:158 forms.py:293 models_finds.py:417 msgid "Remarkability" msgstr "" -#: forms.py:128 models.py:429 +#: forms.py:161 models_finds.py:427 msgid "Point of topographic reference" msgstr "" -#: forms.py:131 models.py:423 +#: forms.py:164 models_finds.py:421 msgid "Length (cm)" msgstr "" -#: forms.py:132 models.py:424 +#: forms.py:165 models_finds.py:422 msgid "Width (cm)" msgstr "" -#: forms.py:133 models.py:425 +#: forms.py:166 models_finds.py:423 msgid "Height (cm)" msgstr "" -#: forms.py:134 models.py:426 +#: forms.py:167 models_finds.py:424 msgid "Diameter (cm)" msgstr "" -#: forms.py:135 models.py:427 +#: forms.py:168 models_finds.py:425 msgid "Thickness (cm)" msgstr "" -#: forms.py:136 forms.py:459 models.py:394 +#: forms.py:169 forms.py:492 models_finds.py:392 msgid "Volume (l)" msgstr "" -#: forms.py:137 forms.py:460 models.py:395 +#: forms.py:170 forms.py:493 models_finds.py:393 msgid "Weight (g)" msgstr "" -#: forms.py:139 models.py:431 +#: forms.py:172 models_finds.py:429 msgid "Dimensions comment" msgstr "" -#: forms.py:140 forms.py:461 models.py:398 +#: forms.py:173 forms.py:494 models_finds.py:396 msgid "Find number" msgstr "" -#: forms.py:142 models.py:422 +#: forms.py:175 models_finds.py:420 msgid "Minimum number of individuals (MNI)" msgstr "" -#: forms.py:143 models.py:433 +#: forms.py:176 models_finds.py:431 msgid "Mark" msgstr "" -#: forms.py:144 forms.py:266 models.py:439 +#: forms.py:177 forms.py:299 models_finds.py:437 msgid "Check" msgstr "" -#: forms.py:146 models.py:441 +#: forms.py:179 models_finds.py:439 msgid "Check date" msgstr "" -#: forms.py:147 forms.py:685 models.py:134 models.py:434 models.py:840 +#: forms.py:180 forms_treatments.py:128 forms_treatments.py:409 +#: models_finds.py:132 models_finds.py:432 models_treatments.py:103 +#: models_treatments.py:401 msgid "Comment" msgstr "" -#: forms.py:150 models.py:435 +#: forms.py:183 models_finds.py:433 msgid "Comment on dating" msgstr "" -#: forms.py:151 models.py:443 +#: forms.py:184 models_finds.py:441 msgid "Estimated value" msgstr "" -#: forms.py:153 forms.py:696 +#: forms.py:186 forms_treatments.py:139 msgid "Image" msgstr "" -#: forms.py:154 forms.py:697 +#: forms.py:187 forms_treatments.py:140 #, python-format msgid "" "

      Heavy images are resized to: %(width)dx%(height)d (ratio is preserved)." msgstr "" -#: forms.py:193 forms.py:224 models.py:406 +#: forms.py:226 forms.py:257 models_finds.py:404 msgid "Dating" msgstr "" -#: forms.py:198 forms.py:250 +#: forms.py:231 forms.py:283 msgid "Period" msgstr "" -#: forms.py:199 forms.py:691 models.py:843 models.py:955 models.py:1109 +#: forms.py:232 forms_treatments.py:134 forms_treatments.py:411 +#: models_finds.py:786 models_treatments.py:106 models_treatments.py:224 #: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 msgid "Start date" msgstr "" -#: forms.py:201 forms.py:693 models.py:844 models.py:956 models.py:1110 +#: forms.py:234 forms_treatments.py:136 models_finds.py:787 +#: models_treatments.py:107 models_treatments.py:225 #: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 msgid "End date" msgstr "" -#: forms.py:202 +#: forms.py:235 msgid "Quality" msgstr "" -#: forms.py:204 +#: forms.py:237 msgid "Dating type" msgstr "" -#: forms.py:206 +#: forms.py:239 msgid "Precise dating" msgstr "" -#: forms.py:228 models.py:152 +#: forms.py:261 models_finds.py:150 msgid "Short ID" msgstr "" -#: forms.py:229 models.py:155 +#: forms.py:262 models_finds.py:153 msgid "Complete ID" msgstr "" -#: forms.py:233 forms.py:610 forms.py:651 models.py:823 +#: forms.py:266 forms_treatments.py:53 forms_treatments.py:94 +#: forms_treatments.py:259 forms_treatments.py:331 forms_treatments.py:381 +#: forms_treatments.py:464 models_treatments.py:83 models_treatments.py:373 msgid "Year" msgstr "" -#: forms.py:235 +#: forms.py:268 msgid "Operation's number (index by year)" msgstr "" -#: forms.py:238 +#: forms.py:271 msgid "Code PATRIARCHE" msgstr "" -#: forms.py:242 +#: forms.py:275 msgid "Archaeological site" msgstr "" -#: forms.py:248 +#: forms.py:281 msgid "Search within related operations" msgstr "" -#: forms.py:253 models.py:103 +#: forms.py:286 models_finds.py:101 msgid "Object type" msgstr "" -#: forms.py:267 forms.py:613 +#: forms.py:300 forms_treatments.py:56 msgid "Has an image?" msgstr "" -#: forms.py:309 forms.py:322 views.py:73 +#: forms.py:342 forms.py:355 views.py:125 msgid "Find search" msgstr "" -#: forms.py:336 templates/ishtar/sheet_treatment.html:36 +#: forms.py:369 templates/ishtar/sheet_treatment.html:36 msgid "Upstream finds" msgstr "" -#: forms.py:338 models.py:452 +#: forms.py:371 models_finds.py:450 msgid "Finds" msgstr "" -#: forms.py:348 +#: forms.py:381 msgid "You should at least select one archaeological find." msgstr "" -#: forms.py:451 +#: forms.py:484 msgid "Resulting find" msgstr "" -#: forms.py:456 +#: forms.py:489 msgid "Precise description" msgstr "" -#: forms.py:471 +#: forms.py:504 msgid "Resulting finds" msgstr "" -#: forms.py:476 +#: forms.py:509 msgid "Would you like to delete this find?" msgstr "" -#: forms.py:480 models.py:816 +#: forms.py:513 models_treatments.py:76 msgid "Upstream find" msgstr "" -#: forms.py:493 +#: forms.py:526 msgid "Archaeological find search" msgstr "" -#: forms.py:495 +#: forms.py:528 msgid "You should select an archaeological find." msgstr "" -#: forms.py:500 +#: forms.py:533 msgid "Year of the operation" msgstr "" -#: forms.py:502 +#: forms.py:535 msgid "Numeric reference" msgstr "" -#: forms.py:509 +#: forms.py:542 msgid "Period of the archaeological find" msgstr "" -#: forms.py:511 +#: forms.py:544 msgid "Material type of the archaeological find" msgstr "" -#: forms.py:513 +#: forms.py:546 msgid "Description of the archaeological find" msgstr "" -#: forms.py:525 +#: forms.py:558 forms_treatments.py:563 forms_treatments.py:587 msgid "Documentation search" msgstr "" -#: forms.py:527 +#: forms.py:560 forms_treatments.py:565 forms_treatments.py:589 msgid "You should select a document." msgstr "" -#: forms.py:544 +#: forms.py:577 msgid "Another basket already exists with this name." msgstr "" -#: forms.py:554 forms.py:558 forms.py:713 ishtar_menu.py:55 +#: forms.py:587 forms.py:591 forms_treatments.py:156 ishtar_menu.py:56 msgid "Basket" msgstr "" -#: forms.py:608 forms.py:647 models.py:819 templates/ishtar/sheet_find.html:90 -#: templates/ishtar/sheet_find.html:130 +#: forms_treatments.py:51 forms_treatments.py:90 models_treatments.py:79 +#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:130 msgid "Label" msgstr "" -#: forms.py:609 forms.py:650 models.py:821 +#: forms_treatments.py:52 forms_treatments.py:93 models_treatments.py:81 msgid "Other ref." msgstr "" -#: forms.py:611 forms.py:769 models.py:824 +#: forms_treatments.py:54 forms_treatments.py:212 forms_treatments.py:260 +#: forms_treatments.py:323 forms_treatments.py:332 forms_treatments.py:434 +#: forms_treatments.py:465 forms_treatments.py:530 models_treatments.py:85 +#: models_treatments.py:375 msgid "Index" msgstr "" -#: forms.py:612 forms.py:656 models.py:793 models.py:826 models.py:954 +#: forms_treatments.py:55 forms_treatments.py:99 forms_treatments.py:276 +#: forms_treatments.py:551 models_treatments.py:53 models_treatments.py:89 +#: models_treatments.py:223 msgid "Treatment type" msgstr "" -#: forms.py:624 views.py:302 +#: forms_treatments.py:67 forms_treatments.py:533 views.py:355 msgid "Treatment search" msgstr "" -#: forms.py:636 +#: forms_treatments.py:79 msgid "Base treatment" msgstr "" -#: forms.py:658 +#: forms_treatments.py:101 msgid "Target" msgstr "" -#: forms.py:660 models.py:833 +#: forms_treatments.py:103 forms_treatments.py:392 models_treatments.py:96 msgid "Responsible" msgstr "" -#: forms.py:666 models.py:836 +#: forms_treatments.py:109 models_treatments.py:99 msgid "Organization" msgstr "" -#: forms.py:672 models.py:828 models.py:957 +#: forms_treatments.py:115 models_treatments.py:91 models_treatments.py:226 msgid "Location" msgstr "" -#: forms.py:678 +#: forms_treatments.py:121 msgid "Container (relevant for packaging)" msgstr "" -#: forms.py:684 +#: forms_treatments.py:127 forms_treatments.py:388 msgid "External ref." msgstr "" -#: forms.py:689 models.py:842 +#: forms_treatments.py:132 models_treatments.py:105 msgid "Goal" msgstr "" -#: forms.py:713 +#: forms_treatments.py:156 msgid "Single find" msgstr "" -#: forms.py:741 +#: forms_treatments.py:184 msgid "" "The container field is attached to the treatment. If no packaging treatment " "is done it is not relevant." msgstr "" -#: forms.py:746 +#: forms_treatments.py:189 msgid "If a packaging treatment is done, the container field must be filled." msgstr "" -#: forms.py:750 +#: forms_treatments.py:193 msgid "A responsible or an organization must be defined." msgstr "" -#: forms.py:782 +#: forms_treatments.py:231 msgid "Another treatment with this index exists for {}." msgstr "" -#: forms.py:789 +#: forms_treatments.py:237 +msgid "Associated file" +msgstr "" + +#: forms_treatments.py:241 forms_treatments.py:372 ishtar_menu.py:107 +#: models_treatments.py:406 models_treatments.py:471 wizards.py:182 +#: templates/ishtar/sheet_treatmentfile.html:5 +msgid "Treatment file" +msgstr "" + +#: forms_treatments.py:250 msgid "" "Are you sure you want to delete this treatment? All modification made to the " "associated finds since this treatment record will be lost!" msgstr "" -#: forms.py:792 +#: forms_treatments.py:253 msgid "Would you like to delete this treatment?" msgstr "" -#: ishtar_menu.py:35 ishtar_menu.py:78 ishtar_menu.py:113 +#: forms_treatments.py:261 forms_treatments.py:309 forms_treatments.py:466 +#: forms_treatments.py:515 +msgid "Act type" +msgstr "" + +#: forms_treatments.py:262 forms_treatments.py:467 +msgid "Indexed?" +msgstr "" + +#: forms_treatments.py:263 forms_treatments.py:468 models_finds.py:120 +msgid "Object" +msgstr "" + +#: forms_treatments.py:267 forms_treatments.py:472 +msgid "Signature date after" +msgstr "" + +#: forms_treatments.py:269 forms_treatments.py:474 +msgid "Signature date before" +msgstr "" + +#: forms_treatments.py:271 forms_treatments.py:546 +msgid "Treatment name" +msgstr "" + +#: forms_treatments.py:272 forms_treatments.py:547 +msgid "Treatment year" +msgstr "" + +#: forms_treatments.py:273 forms_treatments.py:548 +msgid "Treatment index" +msgstr "" + +#: forms_treatments.py:275 forms_treatments.py:550 +msgid "Treatment internal reference" +msgstr "" + +#: forms_treatments.py:279 forms_treatments.py:484 +msgid "Modified by" +msgstr "" + +#: forms_treatments.py:329 forms_treatments.py:379 models_treatments.py:380 +msgid "Name" +msgstr "" + +#: forms_treatments.py:330 forms_treatments.py:386 +msgid "Internal ref." +msgstr "" + +#: forms_treatments.py:333 forms_treatments.py:390 forms_treatments.py:481 +#: forms_treatments.py:575 models_treatments.py:362 models_treatments.py:381 +msgid "Treatment file type" +msgstr "" + +#: forms_treatments.py:335 +msgid "In charge" +msgstr "" + +#: forms_treatments.py:341 forms_treatments.py:398 models_treatments.py:389 +msgid "Applicant" +msgstr "" + +#: forms_treatments.py:347 forms_treatments.py:404 models_treatments.py:393 +msgid "Applicant organisation" +msgstr "" + +#: forms_treatments.py:360 forms_treatments.py:538 views.py:458 +msgid "Treatment file search" +msgstr "" + +#: forms_treatments.py:414 models_treatments.py:399 +msgid "Reception date" +msgstr "" + +#: forms_treatments.py:417 models_treatments.py:395 +msgid "Closing date" +msgstr "" + +#: forms_treatments.py:453 +msgid "Another treatment file with this index exists for {}." +msgstr "" + +#: forms_treatments.py:459 +msgid "Are you sure you want to delete this treatment file?" +msgstr "" + +#: forms_treatments.py:460 +msgid "Would you like to delete this treatment file?" +msgstr "" + +#: forms_treatments.py:476 forms_treatments.py:570 +msgid "Treatment file name" +msgstr "" + +#: forms_treatments.py:477 forms_treatments.py:571 +msgid "Treatment file year" +msgstr "" + +#: forms_treatments.py:478 forms_treatments.py:572 +msgid "Treatment file index" +msgstr "" + +#: forms_treatments.py:480 forms_treatments.py:574 +msgid "Treatment file internal reference" +msgstr "" + +#: forms_treatments.py:535 +msgid "You should select an treatment." +msgstr "" + +#: forms_treatments.py:541 +msgid "You should select an treatment file." +msgstr "" + +#: ishtar_menu.py:36 ishtar_menu.py:79 ishtar_menu.py:111 ishtar_menu.py:134 +#: ishtar_menu.py:158 ishtar_menu.py:190 ishtar_menu.py:214 ishtar_menu.py:238 msgid "Search" msgstr "" -#: ishtar_menu.py:40 ishtar_menu.py:58 ishtar_menu.py:83 ishtar_menu.py:118 +#: ishtar_menu.py:41 ishtar_menu.py:59 ishtar_menu.py:84 ishtar_menu.py:116 +#: ishtar_menu.py:138 ishtar_menu.py:163 ishtar_menu.py:195 ishtar_menu.py:218 +#: ishtar_menu.py:243 msgid "Creation" msgstr "" -#: ishtar_menu.py:45 ishtar_menu.py:88 ishtar_menu.py:123 +#: ishtar_menu.py:46 ishtar_menu.py:89 ishtar_menu.py:121 ishtar_menu.py:142 +#: ishtar_menu.py:168 ishtar_menu.py:200 ishtar_menu.py:223 ishtar_menu.py:248 msgid "Modification" msgstr "" -#: ishtar_menu.py:50 ishtar_menu.py:69 ishtar_menu.py:93 ishtar_menu.py:128 +#: ishtar_menu.py:51 ishtar_menu.py:70 ishtar_menu.py:94 ishtar_menu.py:126 +#: ishtar_menu.py:145 ishtar_menu.py:173 ishtar_menu.py:205 ishtar_menu.py:226 +#: ishtar_menu.py:253 msgid "Deletion" msgstr "" -#: ishtar_menu.py:63 +#: ishtar_menu.py:64 msgid "Manage items" msgstr "" -#: ishtar_menu.py:75 +#: ishtar_menu.py:76 msgid "Documentation" msgstr "" -#: ishtar_menu.py:106 models.py:851 models.py:944 models.py:1096 -#: templates/ishtar/sheet_treatment.html:5 +#: ishtar_menu.py:131 ishtar_menu.py:211 models_finds.py:783 +msgid "Administrative act" +msgstr "" + +#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:204 +#: templates/ishtar/sheet_find.html:206 +msgid "Documents" +msgstr "" + +#: ishtar_menu.py:155 ishtar_menu.py:235 +msgid "Source" +msgstr "" + +#: ishtar_menu.py:183 models_treatments.py:115 models_treatments.py:215 +#: models_treatments.py:455 templates/ishtar/sheet_treatment.html:5 msgid "Treatment" msgstr "" -#: ishtar_menu.py:110 +#: ishtar_menu.py:187 msgid "Simple treatments" msgstr "" -#: models.py:45 +#: models_finds.py:43 msgid "Code" msgstr "" -#: models.py:46 +#: models_finds.py:44 msgid "Recommendation" msgstr "" -#: models.py:49 +#: models_finds.py:47 msgid "Parent material" msgstr "" -#: models.py:53 models.py:385 +#: models_finds.py:51 models_finds.py:383 msgid "Material types" msgstr "" -#: models.py:61 +#: models_finds.py:59 msgid "Parent conservatory state" msgstr "" -#: models.py:65 +#: models_finds.py:63 msgid "Conservatory states" msgstr "" -#: models.py:74 +#: models_finds.py:72 msgid "Preservation types" msgstr "" -#: models.py:82 +#: models_finds.py:80 msgid "Integrity / interest type" msgstr "" -#: models.py:83 +#: models_finds.py:81 msgid "Integrity / interest types" msgstr "" -#: models.py:91 +#: models_finds.py:89 msgid "Remarkability type" msgstr "" -#: models.py:92 +#: models_finds.py:90 msgid "Remarkability types" msgstr "" -#: models.py:100 +#: models_finds.py:98 msgid "Parent" msgstr "" -#: models.py:121 +#: models_finds.py:119 msgid "Unknow" msgstr "" -#: models.py:122 -msgid "Object" -msgstr "" - -#: models.py:123 +#: models_finds.py:121 msgid "Batch" msgstr "" -#: models.py:130 models.py:378 models.py:838 +#: models_finds.py:128 models_finds.py:376 models_treatments.py:101 +#: models_treatments.py:378 msgid "External ID" msgstr "" -#: models.py:132 models.py:380 +#: models_finds.py:130 models_finds.py:378 msgid "External ID is set automatically" msgstr "" -#: models.py:136 +#: models_finds.py:134 msgid "Topographic localisation" msgstr "" -#: models.py:137 +#: models_finds.py:135 msgid "Special interest" msgstr "" -#: models.py:141 +#: models_finds.py:139 msgid "Context Record" msgstr "" -#: models.py:142 +#: models_finds.py:140 msgid "Discovery date" msgstr "" -#: models.py:147 +#: models_finds.py:145 msgid "Material index" msgstr "" -#: models.py:148 +#: models_finds.py:146 msgid "Point" msgstr "" -#: models.py:149 +#: models_finds.py:147 msgid "Line" msgstr "" -#: models.py:150 +#: models_finds.py:148 msgid "Polygon" msgstr "" -#: models.py:153 models.py:156 +#: models_finds.py:151 models_finds.py:154 msgid "Cached value - do not edit" msgstr "" -#: models.py:161 models.py:376 +#: models_finds.py:159 models_finds.py:374 msgid "Base find" msgstr "" -#: models.py:162 +#: models_finds.py:160 msgid "Base finds" msgstr "" -#: models.py:164 +#: models_finds.py:162 msgid "Can view all Base finds" msgstr "" -#: models.py:165 +#: models_finds.py:163 msgid "Can view own Base find" msgstr "" -#: models.py:166 +#: models_finds.py:164 msgid "Can add own Base find" msgstr "" -#: models.py:167 +#: models_finds.py:165 msgid "Can change own Base find" msgstr "" -#: models.py:168 +#: models_finds.py:166 msgid "Can delete own Base find" msgstr "" -#: models.py:278 +#: models_finds.py:276 msgid "g" msgstr "" -#: models.py:279 +#: models_finds.py:277 msgid "kg" msgstr "" -#: models.py:281 +#: models_finds.py:279 msgid "Not checked" msgstr "" -#: models.py:282 +#: models_finds.py:280 msgid "Checked but incorrect" msgstr "" -#: models.py:283 +#: models_finds.py:281 msgid "Checked and correct" msgstr "" -#: models.py:316 +#: models_finds.py:314 msgid "Periods" msgstr "" -#: models.py:326 +#: models_finds.py:324 msgid "Base find - Short ID" msgstr "" -#: models.py:327 +#: models_finds.py:325 msgid "Base find - Complete ID" msgstr "" -#: models.py:328 +#: models_finds.py:326 msgid "Base find - Comment" msgstr "" -#: models.py:329 +#: models_finds.py:327 msgid "Base find - Description" msgstr "" -#: models.py:330 +#: models_finds.py:328 msgid "Base find - Topographic localisation" msgstr "" -#: models.py:332 +#: models_finds.py:330 msgid "Base find - Special interest" msgstr "" -#: models.py:333 +#: models_finds.py:331 msgid "Base find - Discovery date" msgstr "" -#: models.py:381 models.py:948 +#: models_finds.py:379 models_treatments.py:219 msgid "Order" msgstr "" -#: models.py:392 +#: models_finds.py:390 msgid "Type of preservation to consider" msgstr "" -#: models.py:396 +#: models_finds.py:394 msgid "Weight unit" msgstr "" -#: models.py:402 templates/ishtar/sheet_find.html:83 +#: models_finds.py:400 templates/ishtar/sheet_find.html:83 msgid "Upstream treatment" msgstr "" -#: models.py:405 templates/ishtar/sheet_find.html:123 +#: models_finds.py:403 templates/ishtar/sheet_find.html:123 msgid "Downstream treatment" msgstr "" -#: models.py:409 models.py:845 models.py:958 +#: models_finds.py:407 models_treatments.py:108 models_treatments.py:227 #: templates/ishtar/sheet_find.html:94 templates/ishtar/sheet_find.html:134 msgid "Container" msgstr "" -#: models.py:445 +#: models_finds.py:443 models_treatments.py:111 models_treatments.py:402 msgid "Cached name" msgstr "" -#: models.py:454 +#: models_finds.py:452 msgid "Can view all Finds" msgstr "" -#: models.py:455 +#: models_finds.py:453 msgid "Can view own Find" msgstr "" -#: models.py:456 +#: models_finds.py:454 msgid "Can add own Find" msgstr "" -#: models.py:457 +#: models_finds.py:455 msgid "Can change own Find" msgstr "" -#: models.py:458 +#: models_finds.py:456 msgid "Can delete own Find" msgstr "" -#: models.py:464 +#: models_finds.py:462 msgid "FIND" msgstr "" -#: models.py:769 +#: models_finds.py:770 msgid "Find documentation" msgstr "" -#: models.py:770 +#: models_finds.py:771 msgid "Find documentations" msgstr "" -#: models.py:780 +#: models_finds.py:784 +msgid "Person" +msgstr "" + +#: models_finds.py:790 +msgid "Property" +msgstr "" + +#: models_finds.py:791 +msgid "Properties" +msgstr "" + +#: models_treatments.py:40 msgid "Virtual" msgstr "" -#: models.py:782 +#: models_treatments.py:42 msgid "Upstream is many" msgstr "" -#: models.py:784 +#: models_treatments.py:44 msgid "Check this if for this treatment from many finds you'll get one." msgstr "" -#: models.py:787 +#: models_treatments.py:47 msgid "Downstream is many" msgstr "" -#: models.py:789 +#: models_treatments.py:49 msgid "Check this if for this treatment from one find you'll get many." msgstr "" -#: models.py:794 +#: models_treatments.py:54 msgid "Treatment types" msgstr "" -#: models.py:815 +#: models_treatments.py:75 msgid "Downstream find" msgstr "" -#: models.py:830 +#: models_treatments.py:93 msgid "Location where the treatment is done. Target warehouse for a move." msgstr "" -#: models.py:847 +#: models_treatments.py:110 msgid "Target a basket" msgstr "" -#: models.py:852 templates/ishtar/sheet_find.html:80 +#: models_treatments.py:116 templates/ishtar/sheet_find.html:80 +#: templates/ishtar/sheet_treatmentfile.html:27 msgid "Treatments" msgstr "" -#: models.py:855 +#: models_treatments.py:119 msgid "Can view all Treatments" msgstr "" -#: models.py:856 +#: models_treatments.py:120 msgid "Can view own Treatment" msgstr "" -#: models.py:857 +#: models_treatments.py:121 msgid "Can add own Treatment" msgstr "" -#: models.py:858 +#: models_treatments.py:122 msgid "Can change own Treatment" msgstr "" -#: models.py:859 +#: models_treatments.py:123 msgid "Can delete own Treatment" msgstr "" -#: models.py:865 +#: models_treatments.py:129 msgid "by" msgstr "" -#: models.py:959 templates/ishtar/sheet_find.html:93 +#: models_treatments.py:228 templates/ishtar/sheet_find.html:93 #: templates/ishtar/sheet_find.html:133 msgid "Doer" msgstr "" -#: models.py:960 models.py:961 templates/ishtar/sheet_find.html:92 -#: templates/ishtar/sheet_find.html:132 +#: models_treatments.py:229 models_treatments.py:230 +#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:132 msgid "Related finds" msgstr "" -#: models.py:1082 +#: models_treatments.py:351 msgid "Is upstream" msgstr "" -#: models.py:1093 -msgid "Treatment documentation" +#: models_treatments.py:363 +msgid "Treatment file types" msgstr "" -#: models.py:1094 -msgid "Treament documentations" +#: models_treatments.py:376 +msgid "Internal reference" msgstr "" -#: models.py:1106 -msgid "Administrative act" +#: models_treatments.py:385 +msgid "Person in charge" msgstr "" -#: models.py:1107 -msgid "Person" +#: models_treatments.py:397 +msgid "Creation date" msgstr "" -#: models.py:1113 -msgid "Property" +#: models_treatments.py:407 +msgid "Treatment files" msgstr "" -#: models.py:1114 -msgid "Properties" +#: models_treatments.py:410 +msgid "Can view all Treatment files" +msgstr "" + +#: models_treatments.py:412 +msgid "Can view own Treatment file" +msgstr "" + +#: models_treatments.py:414 +msgid "Can add own Treatment file" +msgstr "" + +#: models_treatments.py:416 +msgid "Can change own Treatment file" +msgstr "" + +#: models_treatments.py:418 +msgid "Can delete own Treatment file" +msgstr "" + +#: models_treatments.py:461 +msgid "Treatment documentation" msgstr "" -#: views.py:68 +#: models_treatments.py:462 +msgid "Treament documentations" +msgstr "" + +#: models_treatments.py:477 +msgid "Treatment file documentation" +msgstr "" + +#: models_treatments.py:478 +msgid "Treament file documentations" +msgstr "" + +#: views.py:120 msgid "New find" msgstr "" -#: views.py:82 +#: views.py:134 msgid "Find modification" msgstr "" -#: views.py:97 +#: views.py:149 msgid "Find deletion" msgstr "" -#: views.py:102 +#: views.py:154 msgid "Find: source search" msgstr "" -#: views.py:110 +#: views.py:162 msgid "Find: new source" msgstr "" -#: views.py:118 +#: views.py:170 msgid "Find: source modification" msgstr "" -#: views.py:133 +#: views.py:185 msgid "Find: source deletion" msgstr "" -#: views.py:147 +#: views.py:199 msgid "New basket" msgstr "" -#: views.py:166 +#: views.py:218 msgid "Manage items in basket" msgstr "" -#: views.py:186 +#: views.py:238 msgid "Manage basket" msgstr "" -#: views.py:274 +#: views.py:326 msgid "Delete basket" msgstr "" -#: views.py:323 +#: views.py:376 msgid "New treatment" msgstr "" -#: views.py:330 +#: views.py:383 views.py:475 msgid "Modify" msgstr "" -#: views.py:337 +#: views.py:400 msgid "Treatment deletion" msgstr "" -#: wizards.py:59 +#: views.py:407 +msgid "Treatment: search administrative act" +msgstr "" + +#: views.py:416 +msgid "Treatment: new administrative act" +msgstr "" + +#: views.py:426 +msgid "Treatment: administrative act modification" +msgstr "" + +#: views.py:435 +msgid "Treatment: administrative act deletion" +msgstr "" + +#: views.py:468 +msgid "New treatment file" +msgstr "" + +#: views.py:491 +msgid "Treatment file deletion" +msgstr "" + +#: views.py:498 +msgid "Treatment file: search administrative act" +msgstr "" + +#: views.py:508 +msgid "Treatment file: new administrative act" +msgstr "" + +#: views.py:518 +msgid "Treatment file: administrative act modification" +msgstr "" + +#: views.py:527 +msgid "Treatment file: administrative act deletion" +msgstr "" + +#: views.py:553 +msgid "Treatment: source search" +msgstr "" + +#: views.py:568 +msgid "Treatment: source modification" +msgstr "" + +#: views.py:583 +msgid "Treatment: source deletion" +msgstr "" + +#: views.py:596 +msgid "Treatment file: source search" +msgstr "" + +#: views.py:612 +msgid "Treatment file: source modification" +msgstr "" + +#: views.py:630 +msgid "Treatment file: source deletion" +msgstr "" + +#: wizards.py:62 wizards.py:194 msgid "Operation" msgstr "" @@ -836,10 +1098,6 @@ msgstr "" msgid "Associated base finds" msgstr "" -#: templates/ishtar/sheet_find.html:204 templates/ishtar/sheet_find.html:206 -msgid "Documents" -msgstr "" - #: templates/ishtar/sheet_find.html:208 msgid "Title" msgstr "" @@ -863,3 +1121,11 @@ msgstr "" #: templates/ishtar/sheet_treatment.html:41 msgid "Downstream finds" msgstr "" + +#: templates/ishtar/sheet_treatmentfilesource.html:4 +msgid "Treatement file source" +msgstr "" + +#: templates/ishtar/sheet_treatmentsource.html:4 +msgid "Treatment source" +msgstr "" diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 181ca12d0..649e645b3 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -243,6 +243,7 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase): FormData( 'Move treament', form_datas={ + 'file-treatment_creation': {}, 'basetreatment-treatment_creation': { 'treatment_type': 4, # move 'person': 1, # doer diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index 12be6902e..d0b6b7647 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -9,12 +9,12 @@ msgid "" msgstr "" #: forms.py:69 forms.py:371 forms.py:1009 forms.py:1031 forms.py:1035 -#: models.py:1190 templates/ishtar/sheet_operation.html:144 +#: models.py:1213 templates/ishtar/sheet_operation.html:144 #: templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "" -#: forms.py:72 forms.py:205 forms.py:985 models.py:1176 +#: forms.py:72 forms.py:205 forms.py:985 models.py:1199 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -24,21 +24,21 @@ msgid "Town" msgstr "" #: forms.py:74 forms.py:455 forms.py:752 forms.py:1255 models.py:271 -#: models.py:993 models.py:1174 +#: models.py:1005 models.py:1197 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "" -#: forms.py:77 models.py:1177 +#: forms.py:77 models.py:1200 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "" -#: forms.py:80 models.py:1179 +#: forms.py:80 models.py:1202 msgid "Parcel number" msgstr "" -#: forms.py:82 models.py:1181 models.py:1198 models.py:1247 +#: forms.py:82 models.py:1204 models.py:1221 models.py:1270 msgid "Public domain" msgstr "" @@ -75,7 +75,7 @@ msgid "Relation type" msgstr "" #: forms.py:383 ishtar_menu.py:30 models.py:366 models.py:826 models.py:856 -#: models.py:884 models.py:985 models.py:1173 wizards.py:339 wizards.py:350 +#: models.py:884 models.py:987 models.py:1196 wizards.py:344 wizards.py:355 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "" @@ -138,7 +138,7 @@ msgstr "" msgid "In charge" msgstr "" -#: forms.py:485 models.py:979 +#: forms.py:485 models.py:981 msgid "Scientist in charge" msgstr "" @@ -244,8 +244,8 @@ msgstr "" msgid "Associated file" msgstr "" -#: forms.py:640 forms.py:933 models.py:493 models.py:883 models.py:990 -#: wizards.py:76 +#: forms.py:640 forms.py:933 models.py:493 models.py:883 models.py:992 +#: wizards.py:80 msgid "Archaeological file" msgstr "" @@ -313,7 +313,7 @@ msgstr "" msgid "With finds" msgstr "" -#: forms.py:733 forms.py:1327 templates/ishtar/sheet_administrativeact.html:13 +#: forms.py:733 forms.py:1327 templates/ishtar/sheet_administrativeact.html:20 #: templates/ishtar/sheet_operation.html:24 msgid "General" msgstr "" @@ -338,7 +338,7 @@ msgstr "" msgid "Total surface (m2)" msgstr "" -#: forms.py:800 models.py:53 models.py:255 models.py:1363 +#: forms.py:800 models.py:53 models.py:255 models.py:1386 msgid "Start date" msgstr "" @@ -381,7 +381,7 @@ msgstr "" #: forms.py:919 #, python-format msgid "" -"Operation code already exist for year: %(year)d - use a value bigger than " +"Operation code already exists for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" @@ -430,11 +430,11 @@ msgstr "" msgid "Prescription on geoarchaeological context" msgstr "" -#: forms.py:983 forms.py:1005 models.py:283 models.py:1003 +#: forms.py:983 forms.py:1005 models.py:283 models.py:1015 msgid "Towns" msgstr "" -#: forms.py:1012 models.py:1189 models.py:1361 +#: forms.py:1012 models.py:1212 models.py:1384 msgid "Parcel" msgstr "" @@ -480,7 +480,7 @@ msgstr "" msgid "Would you like to delete this operation?" msgstr "" -#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:858 models.py:970 +#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:858 models.py:972 msgid "Index" msgstr "" @@ -507,7 +507,7 @@ msgstr "" msgid "You should select a document." msgstr "" -#: forms.py:1263 forms.py:1330 models.py:895 models.py:964 +#: forms.py:1263 forms.py:1330 models.py:897 models.py:966 msgid "Act type" msgstr "" @@ -515,7 +515,7 @@ msgstr "" msgid "Indexed?" msgstr "" -#: forms.py:1270 forms.py:1335 models.py:994 +#: forms.py:1270 forms.py:1335 models.py:1006 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "" @@ -528,14 +528,14 @@ msgstr "" msgid "You should select an administrative act." msgstr "" -#: forms.py:1338 models.py:991 +#: forms.py:1338 models.py:1003 msgid "Signature date" msgstr "" #: forms.py:1380 #, python-format msgid "" -"This index already exist for year: %(year)d - use a value bigger than " +"This index already exists for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" @@ -584,7 +584,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:58 models.py:1010 +#: ishtar_menu.py:58 models.py:1022 #: templates/ishtar/sheet_administrativeact.html:4 msgid "Administrative act" msgstr "" @@ -614,11 +614,11 @@ msgstr "" msgid "Operations" msgstr "" -#: models.py:52 models.py:70 models.py:1825 +#: models.py:52 models.py:70 models.py:1848 msgid "Order" msgstr "" -#: models.py:54 models.py:1364 +#: models.py:54 models.py:1387 msgid "End date" msgstr "" @@ -738,7 +738,7 @@ msgstr "" msgid "In charge scientist" msgstr "" -#: models.py:276 models.py:1169 +#: models.py:276 models.py:1192 msgid "File" msgstr "" @@ -889,146 +889,154 @@ msgstr "" msgid "Can delete own Operation source" msgstr "" -#: models.py:886 -msgid "Intended to" +#: models.py:885 models.py:997 +msgid "Treatment file" +msgstr "" + +#: models.py:886 models.py:1002 +msgid "Treatment" msgstr "" #: models.py:888 +msgid "Intended to" +msgstr "" + +#: models.py:890 msgid "Code" msgstr "" -#: models.py:891 +#: models.py:893 msgid "Associated template" msgstr "" -#: models.py:892 +#: models.py:894 msgid "Indexed" msgstr "" -#: models.py:896 +#: models.py:898 msgid "Act types" msgstr "" -#: models.py:968 +#: models.py:970 msgid "Person in charge of the operation" msgstr "" -#: models.py:974 +#: models.py:976 msgid "Archaeological preventive operator" msgstr "" -#: models.py:982 +#: models.py:984 msgid "Signatory" msgstr "" -#: models.py:1000 +#: models.py:1012 msgid "Departments" msgstr "" -#: models.py:1001 +#: models.py:1013 msgid "Cached values get from associated departments" msgstr "" -#: models.py:1004 +#: models.py:1016 msgid "Cached values get from associated towns" msgstr "" -#: models.py:1011 templates/ishtar/sheet_operation.html:102 +#: models.py:1023 templates/ishtar/sheet_operation.html:102 #: templates/ishtar/sheet_operation.html:138 msgid "Administrative acts" msgstr "" -#: models.py:1014 +#: models.py:1026 msgid "Can view all Administrative acts" msgstr "" -#: models.py:1016 +#: models.py:1028 msgid "Can view own Administrative act" msgstr "" -#: models.py:1018 +#: models.py:1030 msgid "Can add own Administrative act" msgstr "" -#: models.py:1020 +#: models.py:1032 msgid "Can change own Administrative act" msgstr "" -#: models.py:1022 +#: models.py:1034 msgid "Can delete own Administrative act" msgstr "" -#: models.py:1031 +#: models.py:1043 #: templates/ishtar/blocks/window_tables/administrativacts.html:7 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7 msgid "Ref." msgstr "" -#: models.py:1114 +#: models.py:1137 msgid "This index already exists for this year" msgstr "" -#: models.py:1182 +#: models.py:1205 msgid "External ID" msgstr "" -#: models.py:1185 +#: models.py:1208 msgid "External ID is set automatically" msgstr "" -#: models.py:1186 +#: models.py:1209 msgid "Address - Locality" msgstr "" -#: models.py:1359 +#: models.py:1382 msgid "Owner" msgstr "" -#: models.py:1367 +#: models.py:1390 msgid "Parcel owner" msgstr "" -#: models.py:1368 +#: models.py:1391 msgid "Parcel owners" msgstr "" -#: models.py:1394 +#: models.py:1417 msgid "Recorded" msgstr "" -#: models.py:1395 +#: models.py:1418 msgid "Effective" msgstr "" -#: models.py:1396 +#: models.py:1419 msgid "Active" msgstr "" -#: models.py:1397 +#: models.py:1420 msgid "Field completed" msgstr "" -#: models.py:1398 +#: models.py:1421 msgid "Associated report" msgstr "" -#: models.py:1399 +#: models.py:1422 msgid "Closed" msgstr "" -#: models.py:1400 +#: models.py:1423 msgid "Documented and closed" msgstr "" -#: models.py:1826 +#: models.py:1849 msgid "Is preventive" msgstr "" -#: models.py:1829 +#: models.py:1852 msgid "Operation type old" msgstr "" -#: models.py:1830 +#: models.py:1853 msgid "Operation types old" msgstr "" @@ -1080,61 +1088,17 @@ msgstr "" msgid "Add" msgstr "" -#: wizards.py:199 +#: wizards.py:203 msgid "" "Warning: No Archaeological File is provided. If you have forget it return to " "the first step." msgstr "" -#: templates/ishtar/sheet_administrativeact.html:14 -msgid "Year:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:15 -msgid "Numerical reference:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:16 -msgid "Internal reference:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:17 -msgid "Type:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:18 -msgid "Object:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:19 -msgid "Signature date:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:20 -msgid "In charge:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:21 -msgid "Archaeological preventive operator:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:23 -msgid "Associated file:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:24 -msgid "Associated operation:" -msgstr "" - -#: templates/ishtar/sheet_administrativeact.html:26 +#: templates/ishtar/sheet_administrativeact.html:36 #: templates/ishtar/sheet_operation.html:38 msgid "Surface:" msgstr "" -#: templates/ishtar/sheet_administrativeact.html:27 -msgid "Created by:" -msgstr "" - #: templates/ishtar/sheet_operation.html:14 msgid "This operation is virtual." msgstr "" diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index 109cfbf76..6833d145a 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -3,149 +3,217 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2011. # Valérie-Emma Leroux , 2016. #zanata +# Étienne Loks , 2016. #zanata msgid "" msgstr "" -#: forms.py:34 forms.py:97 models.py:47 models.py:87 +#: forms.py:35 forms.py:91 forms.py:149 ishtar_menu.py:39 models.py:53 +#: models.py:110 msgid "Warehouse" msgstr "" -#: forms.py:43 models.py:38 +#: forms.py:44 forms.py:49 models.py:129 +msgid "Division" +msgstr "" + +#: forms.py:51 models.py:77 +msgid "Order" +msgstr "" + +#: forms.py:62 models.py:46 +msgid "Divisions" +msgstr "" + +#: forms.py:66 forms.py:95 models.py:38 msgid "Name" msgstr "" -#: forms.py:45 models.py:30 models.py:40 +#: forms.py:67 forms.py:97 models.py:30 models.py:40 msgid "Warehouse type" msgstr "" -#: forms.py:48 models.py:43 +#: forms.py:68 forms.py:114 +msgid "Town" +msgstr "" + +#: forms.py:79 +msgid "Warehouse search" +msgstr "" + +#: forms.py:100 models.py:43 msgid "Person in charge" msgstr "" -#: forms.py:54 forms.py:102 models.py:44 models.py:91 +#: forms.py:106 forms.py:154 models.py:44 models.py:114 msgid "Comment" msgstr "" -#: forms.py:56 +#: forms.py:108 msgid "Address" msgstr "" -#: forms.py:58 +#: forms.py:110 msgid "Address complement" msgstr "" -#: forms.py:60 +#: forms.py:112 msgid "Postal code" msgstr "" -#: forms.py:62 forms.py:66 -msgid "Town" -msgstr "" - -#: forms.py:63 +#: forms.py:115 msgid "Country" msgstr "" -#: forms.py:65 +#: forms.py:117 msgid "Phone" msgstr "" -#: forms.py:93 models.py:94 +#: forms.py:118 +msgid "Mobile phone" +msgstr "" + +#: forms.py:145 models.py:117 models.py:127 msgid "Container" msgstr "" -#: forms.py:94 forms.py:129 models.py:66 +#: forms.py:146 forms.py:181 models.py:89 msgid "Ref." msgstr "" -#: forms.py:95 forms.py:128 models.py:69 models.py:89 +#: forms.py:147 forms.py:180 models.py:92 models.py:112 msgid "Container type" msgstr "" -#: forms.py:139 +#: forms.py:191 msgid "Container search" msgstr "" -#: forms.py:141 +#: forms.py:193 msgid "You should select a container." msgstr "" -#: forms.py:142 +#: forms.py:194 msgid "Add a new container" msgstr "" -#: forms.py:146 ishtar_menu.py:33 views.py:87 +#: forms.py:198 ishtar_menu.py:35 views.py:89 msgid "Packaging" msgstr "" -#: forms.py:153 +#: forms.py:205 msgid "Packager" msgstr "" -#: forms.py:159 +#: forms.py:211 msgid "Date" msgstr "" -#: forms.py:168 +#: forms.py:220 msgid "Packaged finds" msgstr "" -#: ishtar_menu.py:30 +#: forms.py:224 +msgid "Localisation" +msgstr "" + +#: ishtar_menu.py:32 msgid "Treatment" msgstr "" +#: ishtar_menu.py:41 +msgid "Creation" +msgstr "" + +#: ishtar_menu.py:44 +msgid "Modification" +msgstr "" + +#: ishtar_menu.py:47 models.py:133 views.py:114 +msgid "Container localisation" +msgstr "" + #: models.py:31 msgid "Warehouse types" msgstr "" -#: models.py:48 +#: models.py:54 msgid "Warehouses" msgstr "" -#: models.py:50 +#: models.py:56 msgid "Can view all Warehouses" msgstr "" -#: models.py:51 +#: models.py:57 msgid "Can view own Warehouse" msgstr "" -#: models.py:52 +#: models.py:58 msgid "Can add own Warehouse" msgstr "" -#: models.py:53 +#: models.py:59 msgid "Can change own Warehouse" msgstr "" -#: models.py:54 +#: models.py:60 msgid "Can delete own Warehouse" msgstr "" -#: models.py:62 +#: models.py:69 +msgid "Warehouse division" +msgstr "" + +#: models.py:70 +msgid "Warehouse divisions" +msgstr "" + +#: models.py:85 msgid "Length (mm)" msgstr "" -#: models.py:63 +#: models.py:86 msgid "Width (mm)" msgstr "" -#: models.py:64 +#: models.py:87 msgid "Height (mm)" msgstr "" -#: models.py:65 +#: models.py:88 msgid "Volume (l)" msgstr "" -#: models.py:70 +#: models.py:93 msgid "Container types" msgstr "" -#: models.py:90 +#: models.py:113 msgid "Container ref." msgstr "" -#: models.py:95 +#: models.py:118 msgid "Containers" msgstr "" + +#: models.py:130 +msgid "Reference" +msgstr "" + +#: models.py:134 +msgid "Container localisations" +msgstr "" + +#: views.py:96 +msgid "Warehouse creation" +msgstr "" + +#: views.py:105 +msgid "Warehouse modification" +msgstr "" + +#: templates/ishtar/wizard/wizard_containerlocalisation.html:5 +msgid "" +"No division set for this warehouse. Define it to localise container in this " +"warehouse." +msgstr "" diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 813f31a3c..0d87043b1 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -127,40 +127,40 @@ msgstr "" msgid "\"%(value)s\" not in %(values)s" msgstr "" -#: forms.py:72 +#: forms.py:73 msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "" -#: forms.py:88 forms_common.py:618 +#: forms.py:89 forms_common.py:618 msgid "Confirm" msgstr "" -#: forms.py:93 +#: forms.py:94 msgid "Are you sure you want to delete?" msgstr "" -#: forms.py:102 +#: forms.py:103 msgid "There are identical items." msgstr "" -#: forms.py:140 forms.py:141 +#: forms.py:141 forms.py:142 msgid "Closing date" msgstr "" -#: forms.py:154 +#: forms.py:155 msgid "You should select an item." msgstr "" -#: forms.py:155 +#: forms.py:156 msgid "Add a new item" msgstr "" -#: forms.py:262 models.py:1360 +#: forms.py:262 models.py:1366 msgid "Template" msgstr "" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1426 models.py:2818 +#: forms_common.py:406 models.py:1432 models.py:2824 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -176,8 +176,8 @@ msgid "" "french town Saint-Denis in the Seine-Saint-Denis department.

      " msgstr "" -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1599 -#: models.py:2445 models.py:2627 models.py:2688 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1605 +#: models.py:2451 models.py:2633 models.py:2694 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" @@ -189,63 +189,63 @@ msgid "" msgstr "" #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1600 models.py:2331 +#: ishtar_menu.py:75 models.py:1606 models.py:2337 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:1027 models.py:1359 -#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2804 +#: forms_common.py:376 forms_common.py:446 models.py:1033 models.py:1365 +#: models.py:1651 models.py:1870 models.py:2331 models.py:2437 models.py:2810 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "" -#: forms_common.py:174 models.py:1581 models.py:1995 +#: forms_common.py:174 models.py:1587 models.py:2001 msgid "Organization type" msgstr "" -#: forms_common.py:176 forms_common.py:400 models.py:1421 +#: forms_common.py:176 forms_common.py:400 models.py:1427 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "" -#: forms_common.py:178 forms_common.py:403 models.py:1422 +#: forms_common.py:178 forms_common.py:403 models.py:1428 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "" -#: forms_common.py:180 forms_common.py:404 models.py:1424 +#: forms_common.py:180 forms_common.py:404 models.py:1430 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "" -#: forms_common.py:183 forms_common.py:407 models.py:1427 +#: forms_common.py:183 forms_common.py:407 models.py:1433 msgid "Country" msgstr "" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1454 +#: forms_common.py:448 forms_common.py:572 models.py:1460 msgid "Email" msgstr "" -#: forms_common.py:186 forms_common.py:383 models.py:1439 +#: forms_common.py:186 forms_common.py:383 models.py:1445 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "" -#: forms_common.py:187 forms_common.py:392 models.py:1451 +#: forms_common.py:187 forms_common.py:392 models.py:1457 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2025 -#: models.py:2327 models.py:2739 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2031 +#: models.py:2333 models.py:2745 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -269,7 +269,7 @@ msgstr "" msgid "Organization to merge" msgstr "" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2429 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2435 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "" @@ -287,25 +287,25 @@ msgstr "" msgid "Identity" msgstr "" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1996 -#: models.py:2423 models.py:2425 models.py:2736 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:2002 +#: models.py:2429 models.py:2431 models.py:2742 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" -#: forms_common.py:372 models.py:2427 +#: forms_common.py:372 models.py:2433 msgid "Salutation" msgstr "" -#: forms_common.py:378 models.py:2433 +#: forms_common.py:378 models.py:2439 msgid "Raw name" msgstr "" -#: forms_common.py:381 models.py:1440 +#: forms_common.py:381 models.py:1446 msgid "Phone description" msgstr "" -#: forms_common.py:384 models.py:1442 models.py:1444 +#: forms_common.py:384 models.py:1448 models.py:1450 msgid "Phone description 2" msgstr "" @@ -313,11 +313,11 @@ msgstr "" msgid "Phone 2" msgstr "" -#: forms_common.py:388 models.py:1448 +#: forms_common.py:388 models.py:1454 msgid "Phone description 3" msgstr "" -#: forms_common.py:390 models.py:1446 +#: forms_common.py:390 models.py:1452 msgid "Phone 3" msgstr "" @@ -325,23 +325,23 @@ msgstr "" msgid "Current organization" msgstr "" -#: forms_common.py:409 models.py:1429 +#: forms_common.py:409 models.py:1435 msgid "Other address: address" msgstr "" -#: forms_common.py:412 models.py:1432 +#: forms_common.py:412 models.py:1438 msgid "Other address: address complement" msgstr "" -#: forms_common.py:414 models.py:1433 +#: forms_common.py:414 models.py:1439 msgid "Other address: postal code" msgstr "" -#: forms_common.py:416 models.py:1435 +#: forms_common.py:416 models.py:1441 msgid "Other address: town" msgstr "" -#: forms_common.py:418 models.py:1437 +#: forms_common.py:418 models.py:1443 msgid "Other address: country" msgstr "" @@ -357,7 +357,7 @@ msgstr "" msgid "Account search" msgstr "" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2379 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2385 msgid "Person type" msgstr "" @@ -365,7 +365,7 @@ msgstr "" msgid "Account" msgstr "" -#: forms_common.py:575 wizards.py:1217 +#: forms_common.py:575 wizards.py:1241 msgid "New password" msgstr "" @@ -389,7 +389,7 @@ msgstr "" msgid "Send the new password by email?" msgstr "" -#: forms_common.py:628 forms_common.py:641 models.py:2819 +#: forms_common.py:628 forms_common.py:641 models.py:2825 msgid "Towns" msgstr "" @@ -405,7 +405,7 @@ msgstr "" msgid "Documentation informations" msgstr "" -#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2713 +#: forms_common.py:775 forms_common.py:823 models.py:2003 models.py:2719 msgid "Source type" msgstr "" @@ -417,37 +417,37 @@ msgstr "" msgid "Internal reference" msgstr "" -#: forms_common.py:783 models.py:2750 +#: forms_common.py:783 models.py:2756 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:784 models.py:2752 +#: forms_common.py:784 models.py:2758 msgid "Receipt date" msgstr "" -#: forms_common.py:786 models.py:2154 models.py:2754 +#: forms_common.py:786 models.py:2160 models.py:2760 msgid "Creation date" msgstr "" -#: forms_common.py:789 models.py:2757 +#: forms_common.py:789 models.py:2763 msgid "Receipt date in documentation" msgstr "" -#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:627 -#: models.py:1891 models.py:2437 models.py:2764 +#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:633 +#: models.py:1897 models.py:2443 models.py:2770 msgid "Comment" msgstr "" -#: forms_common.py:793 forms_common.py:826 models.py:1029 models.py:1649 -#: models.py:1823 models.py:1865 models.py:2763 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1035 models.py:1655 +#: models.py:1829 models.py:1871 models.py:2769 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:796 models.py:2765 +#: forms_common.py:796 models.py:2771 msgid "Additional information" msgstr "" -#: forms_common.py:798 forms_common.py:830 models.py:2767 +#: forms_common.py:798 forms_common.py:830 models.py:2773 msgid "Has a duplicate" msgstr "" @@ -462,7 +462,7 @@ msgid "" "p>" msgstr "" -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2693 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2699 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" @@ -475,7 +475,7 @@ msgstr "" msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:856 models.py:1998 models.py:2681 models.py:2690 +#: forms_common.py:856 models.py:2004 models.py:2687 models.py:2696 msgid "Author type" msgstr "" @@ -487,7 +487,7 @@ msgstr "" msgid "There are identical authors." msgstr "" -#: forms_common.py:893 models.py:2694 models.py:2746 +#: forms_common.py:893 models.py:2700 models.py:2752 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -505,7 +505,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1155 views.py:1513 +#: ishtar_menu.py:39 models.py:1161 views.py:1514 msgid "Global variables" msgstr "" @@ -533,15 +533,15 @@ msgstr "" msgid "Manual merge" msgstr "" -#: ishtar_menu.py:109 models.py:2165 +#: ishtar_menu.py:109 models.py:2171 msgid "Imports" msgstr "" -#: ishtar_menu.py:112 views.py:1521 +#: ishtar_menu.py:112 views.py:1522 msgid "New import" msgstr "" -#: ishtar_menu.py:116 views.py:1535 +#: ishtar_menu.py:116 views.py:1536 msgid "Current imports" msgstr "" @@ -561,7 +561,7 @@ msgstr "" msgid "This item already exists." msgstr "" -#: models.py:318 models.py:626 models.py:1394 models.py:1406 models.py:1820 +#: models.py:318 models.py:632 models.py:1400 models.py:1412 models.py:1826 msgid "Label" msgstr "" @@ -569,192 +569,192 @@ msgstr "" msgid "Textual ID" msgstr "" -#: models.py:323 models.py:629 models.py:1363 +#: models.py:323 models.py:635 models.py:1369 msgid "Available" msgstr "" -#: models.py:648 models.py:1937 +#: models.py:654 models.py:1943 msgid "Key" msgstr "" -#: models.py:654 +#: models.py:660 msgid "Specific key to an import" msgstr "" -#: models.py:746 +#: models.py:752 msgid "Last editor" msgstr "" -#: models.py:749 +#: models.py:755 msgid "Creator" msgstr "" -#: models.py:891 models.py:2830 +#: models.py:897 models.py:2836 msgid "Order" msgstr "" -#: models.py:892 +#: models.py:898 msgid "Symmetrical" msgstr "" -#: models.py:893 +#: models.py:899 msgid "Tiny label" msgstr "" -#: models.py:907 +#: models.py:913 msgid "Cannot have symmetrical and an inverse_relation" msgstr "" -#: models.py:1021 +#: models.py:1027 msgid "Euro" msgstr "" -#: models.py:1022 +#: models.py:1028 msgid "US dollar" msgstr "" -#: models.py:1028 models.py:1647 +#: models.py:1034 models.py:1653 msgid "Slug" msgstr "" -#: models.py:1030 +#: models.py:1036 msgid "Files module" msgstr "" -#: models.py:1031 +#: models.py:1037 msgid "Context records module" msgstr "" -#: models.py:1033 +#: models.py:1039 msgid "Finds module" msgstr "" -#: models.py:1034 +#: models.py:1040 msgid "Need context records module" msgstr "" -#: models.py:1036 +#: models.py:1042 msgid "Warehouses module" msgstr "" -#: models.py:1037 +#: models.py:1043 msgid "Need finds module" msgstr "" -#: models.py:1039 +#: models.py:1045 msgid "Home page" msgstr "" -#: models.py:1040 +#: models.py:1046 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " "markdown syntax. {random_image} can be used to display a random image." msgstr "" -#: models.py:1044 +#: models.py:1050 msgid "File external id" msgstr "" -#: models.py:1046 +#: models.py:1052 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1051 +#: models.py:1057 msgid "Parcel external id" msgstr "" -#: models.py:1054 +#: models.py:1060 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1059 +#: models.py:1065 msgid "Context record external id" msgstr "" -#: models.py:1061 +#: models.py:1067 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1066 +#: models.py:1072 msgid "Base find external id" msgstr "" -#: models.py:1068 +#: models.py:1074 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1073 +#: models.py:1079 msgid "Find external id" msgstr "" -#: models.py:1075 +#: models.py:1081 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1080 +#: models.py:1086 msgid "Raw name for person" msgstr "" -#: models.py:1082 +#: models.py:1088 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1086 +#: models.py:1092 msgid "Current active" msgstr "" -#: models.py:1087 +#: models.py:1093 msgid "Currency" msgstr "" -#: models.py:1091 +#: models.py:1097 msgid "Ishtar site profile" msgstr "" -#: models.py:1092 +#: models.py:1098 msgid "Ishtar site profiles" msgstr "" -#: models.py:1148 +#: models.py:1154 msgid "Variable name" msgstr "" -#: models.py:1149 +#: models.py:1155 msgid "Description of the variable" msgstr "" -#: models.py:1151 models.py:1938 +#: models.py:1157 models.py:1944 msgid "Value" msgstr "" -#: models.py:1154 +#: models.py:1160 msgid "Global variable" msgstr "" -#: models.py:1264 models.py:1294 +#: models.py:1270 models.py:1300 msgid "Total" msgstr "" -#: models.py:1271 models.py:1395 models.py:1407 +#: models.py:1277 models.py:1401 models.py:1413 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -762,609 +762,609 @@ msgstr "" msgid "Number" msgstr "" -#: models.py:1358 +#: models.py:1364 msgid "Administrative Act" msgstr "" -#: models.py:1362 +#: models.py:1368 msgid "Associated object" msgstr "" -#: models.py:1366 +#: models.py:1372 msgid "Document template" msgstr "" -#: models.py:1367 +#: models.py:1373 msgid "Document templates" msgstr "" -#: models.py:1398 models.py:1408 models.py:2149 +#: models.py:1404 models.py:1414 models.py:2155 msgid "State" msgstr "" -#: models.py:1412 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1418 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "" -#: models.py:1413 +#: models.py:1419 msgid "Departments" msgstr "" -#: models.py:1450 +#: models.py:1456 msgid "Raw phone" msgstr "" -#: models.py:1456 +#: models.py:1462 msgid "Alternative address is prefered" msgstr "" -#: models.py:1495 +#: models.py:1501 msgid "Tel: " msgstr "" -#: models.py:1499 +#: models.py:1505 msgid "Mobile: " msgstr "" -#: models.py:1503 +#: models.py:1509 msgid "Email: " msgstr "" -#: models.py:1508 +#: models.py:1514 msgid "Merge key" msgstr "" -#: models.py:1582 +#: models.py:1588 msgid "Organization types" msgstr "" -#: models.py:1601 views.py:237 +#: models.py:1607 views.py:237 msgid "Operation" msgstr "" -#: models.py:1603 +#: models.py:1609 msgid "Archaeological site" msgstr "" -#: models.py:1604 +#: models.py:1610 msgid "Parcels" msgstr "" -#: models.py:1606 +#: models.py:1612 msgid "Operation source" msgstr "" -#: models.py:1609 views.py:1329 views.py:1379 +#: models.py:1615 views.py:1330 views.py:1380 msgid "Archaeological files" msgstr "" -#: models.py:1611 views.py:1332 views.py:1387 +#: models.py:1617 views.py:1333 views.py:1388 msgid "Context records" msgstr "" -#: models.py:1613 +#: models.py:1619 msgid "Context record relations" msgstr "" -#: models.py:1615 +#: models.py:1621 msgid "Base finds" msgstr "" -#: models.py:1651 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1657 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "" -#: models.py:1653 +#: models.py:1659 msgid "Associated model" msgstr "" -#: models.py:1656 +#: models.py:1662 msgid "Is template" msgstr "" -#: models.py:1657 +#: models.py:1663 msgid "Unicity keys (separator \";\")" msgstr "" -#: models.py:1661 +#: models.py:1667 msgid "Importer - Type" msgstr "" -#: models.py:1662 +#: models.py:1668 msgid "Importer - Types" msgstr "" -#: models.py:1752 +#: models.py:1758 msgid "Importer - Default" msgstr "" -#: models.py:1753 +#: models.py:1759 msgid "Importer - Defaults" msgstr "" -#: models.py:1788 +#: models.py:1794 msgid "Importer - Default value" msgstr "" -#: models.py:1789 +#: models.py:1795 msgid "Importer - Default values" msgstr "" -#: models.py:1822 +#: models.py:1828 msgid "Column number" msgstr "" -#: models.py:1825 +#: models.py:1831 msgid "Required" msgstr "" -#: models.py:1828 +#: models.py:1834 msgid "Importer - Column" msgstr "" -#: models.py:1829 +#: models.py:1835 msgid "Importer - Columns" msgstr "" -#: models.py:1849 +#: models.py:1855 msgid "Field name" msgstr "" -#: models.py:1851 models.py:1885 +#: models.py:1857 models.py:1891 msgid "Force creation of new items" msgstr "" -#: models.py:1853 models.py:1887 +#: models.py:1859 models.py:1893 msgid "Concatenate with existing" msgstr "" -#: models.py:1855 models.py:1889 +#: models.py:1861 models.py:1895 msgid "Concatenate character" msgstr "" -#: models.py:1859 +#: models.py:1865 msgid "Importer - Duplicate field" msgstr "" -#: models.py:1860 +#: models.py:1866 msgid "Importer - Duplicate fields" msgstr "" -#: models.py:1867 +#: models.py:1873 msgid "Regular expression" msgstr "" -#: models.py:1870 +#: models.py:1876 msgid "Importer - Regular expression" msgstr "" -#: models.py:1871 +#: models.py:1877 msgid "Importer - Regular expressions" msgstr "" -#: models.py:1894 +#: models.py:1900 msgid "Importer - Target" msgstr "" -#: models.py:1895 +#: models.py:1901 msgid "Importer - Targets" msgstr "" -#: models.py:1919 views.py:520 +#: models.py:1925 views.py:520 msgid "True" msgstr "" -#: models.py:1920 views.py:522 +#: models.py:1926 views.py:522 msgid "False" msgstr "" -#: models.py:1939 +#: models.py:1945 msgid "Is set" msgstr "" -#: models.py:1946 +#: models.py:1952 msgid "Importer - Target key" msgstr "" -#: models.py:1947 +#: models.py:1953 msgid "Importer - Targets keys" msgstr "" -#: models.py:1999 models.py:2729 models.py:2742 +#: models.py:2005 models.py:2735 models.py:2748 msgid "Format" msgstr "" -#: models.py:2000 models.py:2834 +#: models.py:2006 models.py:2840 msgid "Operation type" msgstr "" -#: models.py:2001 +#: models.py:2007 msgid "Period" msgstr "" -#: models.py:2002 +#: models.py:2008 msgid "Report state" msgstr "" -#: models.py:2003 +#: models.py:2009 msgid "Remain type" msgstr "" -#: models.py:2004 +#: models.py:2010 msgid "Unit" msgstr "" -#: models.py:2005 +#: models.py:2011 msgid "Activity type" msgstr "" -#: models.py:2006 +#: models.py:2012 msgid "Material" msgstr "" -#: models.py:2008 +#: models.py:2014 msgid "Conservatory state" msgstr "" -#: models.py:2009 +#: models.py:2015 msgid "Preservation type" msgstr "" -#: models.py:2010 +#: models.py:2016 msgid "Object type" msgstr "" -#: models.py:2012 +#: models.py:2018 msgid "Identification type" msgstr "" -#: models.py:2014 +#: models.py:2020 msgid "Context record relation type" msgstr "" -#: models.py:2015 models.py:2721 +#: models.py:2021 models.py:2727 msgid "Support type" msgstr "" -#: models.py:2021 +#: models.py:2027 msgid "Integer" msgstr "" -#: models.py:2022 +#: models.py:2028 msgid "Float" msgstr "" -#: models.py:2023 +#: models.py:2029 msgid "String" msgstr "" -#: models.py:2024 templates/sheet_ope.html:86 +#: models.py:2030 templates/sheet_ope.html:86 msgid "Date" msgstr "" -#: models.py:2026 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2032 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "" -#: models.py:2027 +#: models.py:2033 msgid "String to boolean" msgstr "" -#: models.py:2028 +#: models.py:2034 msgctxt "filesystem" msgid "File" msgstr "" -#: models.py:2029 +#: models.py:2035 msgid "Unknow type" msgstr "" -#: models.py:2045 +#: models.py:2051 msgid "4 digit year. e.g.: \"2015\"" msgstr "" -#: models.py:2046 +#: models.py:2052 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "" -#: models.py:2047 +#: models.py:2053 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "" -#: models.py:2057 +#: models.py:2063 msgid "Options" msgstr "" -#: models.py:2059 +#: models.py:2065 msgid "Split character(s)" msgstr "" -#: models.py:2063 +#: models.py:2069 msgid "Importer - Formater type" msgstr "" -#: models.py:2064 +#: models.py:2070 msgid "Importer - Formater types" msgstr "" -#: models.py:2113 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2119 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "" -#: models.py:2114 +#: models.py:2120 msgid "Analyse in progress" msgstr "" -#: models.py:2115 +#: models.py:2121 msgid "Analysed" msgstr "" -#: models.py:2116 +#: models.py:2122 msgid "Import pending" msgstr "" -#: models.py:2117 +#: models.py:2123 msgid "Import in progress" msgstr "" -#: models.py:2118 +#: models.py:2124 msgid "Finished with errors" msgstr "" -#: models.py:2119 +#: models.py:2125 msgid "Finished" msgstr "" -#: models.py:2120 +#: models.py:2126 msgid "Archived" msgstr "" -#: models.py:2132 +#: models.py:2138 msgid "Imported file" msgstr "" -#: models.py:2135 +#: models.py:2141 msgid "Associated images (zip file)" msgstr "" -#: models.py:2137 +#: models.py:2143 msgid "Encoding" msgstr "" -#: models.py:2139 +#: models.py:2145 msgid "Skip lines" msgstr "" -#: models.py:2140 templates/ishtar/import_list.html:47 +#: models.py:2146 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "" -#: models.py:2143 +#: models.py:2149 msgid "Result file" msgstr "" -#: models.py:2146 templates/ishtar/import_list.html:53 +#: models.py:2152 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "" -#: models.py:2152 +#: models.py:2158 msgid "Conservative import" msgstr "" -#: models.py:2157 +#: models.py:2163 msgid "End date" msgstr "" -#: models.py:2159 +#: models.py:2165 msgid "Remaining seconds" msgstr "" -#: models.py:2164 +#: models.py:2170 msgid "Import" msgstr "" -#: models.py:2181 +#: models.py:2187 msgid "Analyse" msgstr "" -#: models.py:2183 models.py:2186 +#: models.py:2189 models.py:2192 msgid "Re-analyse" msgstr "" -#: models.py:2184 +#: models.py:2190 msgid "Launch import" msgstr "" -#: models.py:2187 +#: models.py:2193 msgid "Re-import" msgstr "" -#: models.py:2188 +#: models.py:2194 msgid "Archive" msgstr "" -#: models.py:2190 +#: models.py:2196 msgid "Unarchive" msgstr "" -#: models.py:2191 widgets.py:110 templates/ishtar/form_delete.html:11 +#: models.py:2197 widgets.py:129 templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "" -#: models.py:2332 +#: models.py:2338 msgid "Organizations" msgstr "" -#: models.py:2334 +#: models.py:2340 msgid "Can view all Organizations" msgstr "" -#: models.py:2335 +#: models.py:2341 msgid "Can view own Organization" msgstr "" -#: models.py:2336 +#: models.py:2342 msgid "Can add own Organization" msgstr "" -#: models.py:2338 +#: models.py:2344 msgid "Can change own Organization" msgstr "" -#: models.py:2340 +#: models.py:2346 msgid "Can delete own Organization" msgstr "" -#: models.py:2375 +#: models.py:2381 msgid "Groups" msgstr "" -#: models.py:2380 +#: models.py:2386 msgid "Person types" msgstr "" -#: models.py:2391 +#: models.py:2397 msgid "Title type" msgstr "" -#: models.py:2392 +#: models.py:2398 msgid "Title types" msgstr "" -#: models.py:2401 +#: models.py:2407 msgid "Mr" msgstr "" -#: models.py:2402 +#: models.py:2408 msgid "Miss" msgstr "" -#: models.py:2403 +#: models.py:2409 msgid "Mr and Mrs" msgstr "" -#: models.py:2404 +#: models.py:2410 msgid "Mrs" msgstr "" -#: models.py:2405 +#: models.py:2411 msgid "Doctor" msgstr "" -#: models.py:2435 +#: models.py:2441 msgid "Contact type" msgstr "" -#: models.py:2438 models.py:2502 +#: models.py:2444 models.py:2508 msgid "Types" msgstr "" -#: models.py:2441 +#: models.py:2447 msgid "Is attached to" msgstr "" -#: models.py:2446 +#: models.py:2452 msgid "Persons" msgstr "" -#: models.py:2448 +#: models.py:2454 msgid "Can view all Persons" msgstr "" -#: models.py:2449 +#: models.py:2455 msgid "Can view own Person" msgstr "" -#: models.py:2450 +#: models.py:2456 msgid "Can add own Person" msgstr "" -#: models.py:2451 +#: models.py:2457 msgid "Can change own Person" msgstr "" -#: models.py:2452 +#: models.py:2458 msgid "Can delete own Person" msgstr "" -#: models.py:2630 +#: models.py:2636 msgid "Advanced shortcut menu" msgstr "" -#: models.py:2633 +#: models.py:2639 msgid "Ishtar user" msgstr "" -#: models.py:2634 +#: models.py:2640 msgid "Ishtar users" msgstr "" -#: models.py:2676 +#: models.py:2682 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2682 +#: models.py:2688 msgid "Author types" msgstr "" -#: models.py:2714 +#: models.py:2720 msgid "Source types" msgstr "" -#: models.py:2722 +#: models.py:2728 msgid "Support types" msgstr "" -#: models.py:2730 +#: models.py:2736 msgid "Formats" msgstr "" -#: models.py:2737 +#: models.py:2743 msgid "External ID" msgstr "" -#: models.py:2740 +#: models.py:2746 msgid "Support" msgstr "" -#: models.py:2744 +#: models.py:2750 msgid "Scale" msgstr "" -#: models.py:2758 +#: models.py:2764 msgid "Item number" msgstr "" -#: models.py:2759 +#: models.py:2765 msgid "Ref." msgstr "" -#: models.py:2762 +#: models.py:2768 msgid "Internal ref." msgstr "" -#: models.py:2805 +#: models.py:2811 msgid "Surface (m2)" msgstr "" -#: models.py:2806 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2812 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2831 +#: models.py:2837 msgid "Is preventive" msgstr "" -#: models.py:2835 +#: models.py:2841 msgid "Operation types" msgstr "" -#: models.py:2864 +#: models.py:2870 msgid "Preventive" msgstr "" -#: models.py:2865 +#: models.py:2871 msgid "Research" msgstr "" @@ -1420,64 +1420,64 @@ msgstr "" msgid "Find" msgstr "" -#: views.py:1268 views.py:1311 +#: views.py:1269 views.py:1312 msgid "Operation not permitted." msgstr "" -#: views.py:1270 +#: views.py:1271 #, python-format msgid "New %s" msgstr "" -#: views.py:1330 views.py:1383 +#: views.py:1331 views.py:1384 msgid "Operations" msgstr "" -#: views.py:1334 views.py:1390 +#: views.py:1335 views.py:1391 msgid "Finds" msgstr "" -#: views.py:1582 templates/ishtar/import_list.html:43 +#: views.py:1583 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "" -#: views.py:1597 +#: views.py:1598 msgid "Delete import" msgstr "" -#: views.py:1636 +#: views.py:1637 msgid "Merge persons" msgstr "" -#: views.py:1660 +#: views.py:1661 msgid "Select the main person" msgstr "" -#: views.py:1669 +#: views.py:1670 msgid "Merge organization" msgstr "" -#: views.py:1679 +#: views.py:1680 msgid "Select the main organization" msgstr "" -#: views.py:1719 views.py:1735 +#: views.py:1720 views.py:1736 msgid "Corporation manager" msgstr "" -#: widgets.py:239 widgets.py:346 widgets.py:461 +#: widgets.py:258 widgets.py:365 widgets.py:480 msgid "Search..." msgstr "" -#: widgets.py:643 templatetags/window_tables.py:81 +#: widgets.py:671 templatetags/window_tables.py:85 msgid "No results" msgstr "" -#: widgets.py:644 templatetags/window_tables.py:82 +#: widgets.py:672 templatetags/window_tables.py:86 msgid "Loading..." msgstr "" -#: widgets.py:645 +#: widgets.py:673 msgid "Remove" msgstr "" @@ -1489,7 +1489,7 @@ msgstr "" msgid "No" msgstr "" -#: wizards.py:1274 +#: wizards.py:1298 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" @@ -1937,7 +1937,7 @@ msgstr "" #: templates/ishtar/import_list.html:58 templates/ishtar/merge.html:31 #: templates/ishtar/simple_form.html:7 #: templates/ishtar/wizard/confirm_wizard.html:42 -#: templates/ishtar/wizard/default_wizard.html:30 +#: templates/ishtar/wizard/default_wizard.html:31 #: templates/ishtar/wizard/search.html:13 #: templates/ishtar/wizard/validation_bar.html:4 msgid "Validate" @@ -2330,7 +2330,7 @@ msgstr "" msgid "Would you like to save them?" msgstr "" -#: templates/ishtar/wizard/default_wizard.html:36 +#: templates/ishtar/wizard/default_wizard.html:37 #: templates/ishtar/wizard/parcels_wizard.html:24 #: templates/ishtar/wizard/relations_wizard.html:23 #: templates/ishtar/wizard/search.html:20 @@ -2338,7 +2338,7 @@ msgstr "" msgid "Add/Modify" msgstr "" -#: templates/ishtar/wizard/default_wizard.html:58 +#: templates/ishtar/wizard/default_wizard.html:59 msgid "" "The form has changed. If you don't validate it, all your changes will be " "lost." diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 4a9a99f8c..474161ec8 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-16 16:37+0100\n" "PO-Revision-Date: 2016-11-14 05:46-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 2a2c1bdcb..fa89733ff 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-16 16:37+0100\n" "PO-Revision-Date: 2016-11-15 04:16-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -257,7 +259,7 @@ msgstr "Dossier : responsable" msgid "File permit reference" msgstr "Dossier : réf. du permis" -#: ishtar_menu.py:33 models.py:220 wizards.py:154 wizards.py:164 +#: ishtar_menu.py:33 models.py:220 wizards.py:155 wizards.py:165 #: templates/ishtar/sheet_file.html:4 msgid "Archaeological file" msgstr "Dossier" diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index 949555adc..3aad0a7f8 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-16 16:37+0100\n" "PO-Revision-Date: 2016-11-14 05:33-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 320ad2ebb..b9be16973 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -6,147 +6,153 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-16 16:37+0100\n" "PO-Revision-Date: 2016-12-12 02:55-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" -#: forms.py:55 forms.py:59 wizards.py:60 +#: forms.py:88 forms.py:92 wizards.py:63 msgid "Context record" msgstr "Unité d'Enregistrement" -#: forms.py:88 ishtar_menu.py:31 models.py:451 models.py:771 models.py:942 -#: models.py:1104 templates/ishtar/sheet_find.html:5 +#: forms.py:121 ishtar_menu.py:32 models_finds.py:449 models_finds.py:772 +#: models_finds.py:781 models_treatments.py:213 +#: templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "Mobilier" -#: forms.py:99 forms.py:230 forms.py:454 models.py:129 models.py:382 +#: forms.py:132 forms.py:263 forms.py:487 models_finds.py:127 +#: models_finds.py:380 msgid "Free ID" msgstr "ID libre" -#: forms.py:101 models.py:437 +#: forms.py:134 models_finds.py:435 msgid "Previous ID" msgstr "Identifiant précédent" -#: forms.py:102 forms.py:262 forms.py:687 models.py:133 models.py:383 -#: models.py:841 +#: forms.py:135 forms.py:295 forms_treatments.py:130 models_finds.py:131 +#: models_finds.py:381 models_treatments.py:104 msgid "Description" msgstr "Description" -#: forms.py:105 forms.py:264 models.py:144 +#: forms.py:138 forms.py:297 models_finds.py:142 msgid "Batch/object" msgstr "Lot/objet" -#: forms.py:107 models.py:411 +#: forms.py:140 models_finds.py:409 msgid "Is complete?" msgstr "Est complet ?" -#: forms.py:110 forms.py:252 forms.py:458 models.py:52 +#: forms.py:143 forms.py:285 forms.py:491 models_finds.py:50 msgid "Material type" msgstr "Type de matériau" -#: forms.py:111 forms.py:256 models.py:64 models.py:387 +#: forms.py:144 forms.py:289 models_finds.py:62 models_finds.py:385 msgid "Conservatory state" msgstr "État sanitaire" -#: forms.py:114 models.py:389 +#: forms.py:147 models_finds.py:387 msgid "Conservatory comment" msgstr "Commentaire relatif à la conservation" -#: forms.py:117 models.py:104 models.py:414 +#: forms.py:150 models_finds.py:102 models_finds.py:412 msgid "Object types" msgstr "Types d'objet" -#: forms.py:119 forms.py:255 models.py:73 +#: forms.py:152 forms.py:288 models_finds.py:71 msgid "Preservation type" msgstr "Type de conservation" -#: forms.py:122 forms.py:258 models.py:416 +#: forms.py:155 forms.py:291 models_finds.py:414 msgid "Integrity / interest" msgstr "Intégrité / intérêt" -#: forms.py:125 forms.py:260 models.py:419 +#: forms.py:158 forms.py:293 models_finds.py:417 msgid "Remarkability" msgstr "Remarquabilité" -#: forms.py:128 models.py:429 +#: forms.py:161 models_finds.py:427 msgid "Point of topographic reference" msgstr "Point de référence topographique" -#: forms.py:131 models.py:423 +#: forms.py:164 models_finds.py:421 msgid "Length (cm)" msgstr "Longueur (cm)" -#: forms.py:132 models.py:424 +#: forms.py:165 models_finds.py:422 msgid "Width (cm)" msgstr "Largeur (cm)" -#: forms.py:133 models.py:425 +#: forms.py:166 models_finds.py:423 msgid "Height (cm)" msgstr "Hauteur (cm)" -#: forms.py:134 models.py:426 +#: forms.py:167 models_finds.py:424 msgid "Diameter (cm)" msgstr "Diamètre (cm)" -#: forms.py:135 models.py:427 +#: forms.py:168 models_finds.py:425 msgid "Thickness (cm)" msgstr "Épaisseur (cm)" -#: forms.py:136 forms.py:459 models.py:394 +#: forms.py:169 forms.py:492 models_finds.py:392 msgid "Volume (l)" msgstr "Volume (l)" -#: forms.py:137 forms.py:460 models.py:395 +#: forms.py:170 forms.py:493 models_finds.py:393 msgid "Weight (g)" msgstr "Poids (g)" -#: forms.py:139 models.py:431 +#: forms.py:172 models_finds.py:429 msgid "Dimensions comment" msgstr "Commentaire concernant les dimensions" -#: forms.py:140 forms.py:461 models.py:398 +#: forms.py:173 forms.py:494 models_finds.py:396 msgid "Find number" msgstr "Mobilier (en nombre)" -#: forms.py:142 models.py:422 +#: forms.py:175 models_finds.py:420 msgid "Minimum number of individuals (MNI)" msgstr "Nombre minimum d'individus (NMI)" -#: forms.py:143 models.py:433 +#: forms.py:176 models_finds.py:431 msgid "Mark" msgstr "Marque" -#: forms.py:144 forms.py:266 models.py:439 +#: forms.py:177 forms.py:299 models_finds.py:437 msgid "Check" msgstr "Vérification" -#: forms.py:146 models.py:441 +#: forms.py:179 models_finds.py:439 msgid "Check date" msgstr "Date de vérification" -#: forms.py:147 forms.py:685 models.py:134 models.py:434 models.py:840 +#: forms.py:180 forms_treatments.py:128 forms_treatments.py:409 +#: models_finds.py:132 models_finds.py:432 models_treatments.py:103 +#: models_treatments.py:401 msgid "Comment" msgstr "Commentaires" -#: forms.py:150 models.py:435 +#: forms.py:183 models_finds.py:433 msgid "Comment on dating" msgstr "Commentaire général sur les datations" -#: forms.py:151 models.py:443 +#: forms.py:184 models_finds.py:441 msgid "Estimated value" msgstr "Valeur estimée" -#: forms.py:153 forms.py:696 +#: forms.py:186 forms_treatments.py:139 msgid "Image" msgstr "Image" -#: forms.py:154 forms.py:697 +#: forms.py:187 forms_treatments.py:140 #, python-format msgid "" "

      Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

      " -#: forms.py:193 forms.py:224 models.py:406 +#: forms.py:226 forms.py:257 models_finds.py:404 msgid "Dating" msgstr "Datation" -#: forms.py:198 forms.py:250 +#: forms.py:231 forms.py:283 msgid "Period" msgstr "Période" -#: forms.py:199 forms.py:691 models.py:843 models.py:955 models.py:1109 +#: forms.py:232 forms_treatments.py:134 forms_treatments.py:411 +#: models_finds.py:786 models_treatments.py:106 models_treatments.py:224 #: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 msgid "Start date" msgstr "Date de début" -#: forms.py:201 forms.py:693 models.py:844 models.py:956 models.py:1110 +#: forms.py:234 forms_treatments.py:136 models_finds.py:787 +#: models_treatments.py:107 models_treatments.py:225 #: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 msgid "End date" msgstr "Date de fin" -#: forms.py:202 +#: forms.py:235 msgid "Quality" msgstr "Qualité" -#: forms.py:204 +#: forms.py:237 msgid "Dating type" msgstr "Type de datation" -#: forms.py:206 +#: forms.py:239 msgid "Precise dating" msgstr "Datation précise" -#: forms.py:228 models.py:152 +#: forms.py:261 models_finds.py:150 msgid "Short ID" msgstr "ID court" -#: forms.py:229 models.py:155 +#: forms.py:262 models_finds.py:153 msgid "Complete ID" msgstr "ID complet" -#: forms.py:233 forms.py:610 forms.py:651 models.py:823 +#: forms.py:266 forms_treatments.py:53 forms_treatments.py:94 +#: forms_treatments.py:259 forms_treatments.py:331 forms_treatments.py:381 +#: forms_treatments.py:464 models_treatments.py:83 models_treatments.py:373 msgid "Year" msgstr "Année" -#: forms.py:235 +#: forms.py:268 msgid "Operation's number (index by year)" msgstr "Numéro de l'opération (index par année)" -#: forms.py:238 +#: forms.py:271 msgid "Code PATRIARCHE" msgstr "Code PATRIARCHE" -#: forms.py:242 +#: forms.py:275 msgid "Archaeological site" msgstr "Entité archéologique" -#: forms.py:248 +#: forms.py:281 msgid "Search within related operations" msgstr "Rechercher parmi les opérations liées" -#: forms.py:253 models.py:103 +#: forms.py:286 models_finds.py:101 msgid "Object type" msgstr "Type d'objet" -#: forms.py:267 forms.py:613 +#: forms.py:300 forms_treatments.py:56 msgid "Has an image?" msgstr "Dispose d'une image ?" -#: forms.py:309 forms.py:322 views.py:73 +#: forms.py:342 forms.py:355 views.py:125 msgid "Find search" msgstr "Rechercher un mobilier" -#: forms.py:336 templates/ishtar/sheet_treatment.html:36 +#: forms.py:369 templates/ishtar/sheet_treatment.html:36 msgid "Upstream finds" msgstr "Mobilier amont" -#: forms.py:338 models.py:452 +#: forms.py:371 models_finds.py:450 msgid "Finds" msgstr "Mobilier" -#: forms.py:348 +#: forms.py:381 msgid "You should at least select one archaeological find." msgstr "Vous devez sélectionner au moins un mobilier archéologique." -#: forms.py:451 +#: forms.py:484 msgid "Resulting find" msgstr "Mobilier résultant" -#: forms.py:456 +#: forms.py:489 msgid "Precise description" msgstr "Description précise" -#: forms.py:471 +#: forms.py:504 msgid "Resulting finds" msgstr "Mobiliers résultants" -#: forms.py:476 +#: forms.py:509 msgid "Would you like to delete this find?" msgstr "Voulez-vous supprimer ce mobilier ?" -#: forms.py:480 models.py:816 +#: forms.py:513 models_treatments.py:76 msgid "Upstream find" msgstr "Mobilier amont" -#: forms.py:493 +#: forms.py:526 msgid "Archaeological find search" msgstr "Rechercher un mobilier" -#: forms.py:495 +#: forms.py:528 msgid "You should select an archaeological find." msgstr "Vous devez sélectionner du mobilier." -#: forms.py:500 +#: forms.py:533 msgid "Year of the operation" msgstr "Année de l'opération" -#: forms.py:502 +#: forms.py:535 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:509 +#: forms.py:542 msgid "Period of the archaeological find" msgstr "Période du mobilier" -#: forms.py:511 +#: forms.py:544 msgid "Material type of the archaeological find" msgstr "Type de matériau du mobilier" -#: forms.py:513 +#: forms.py:546 msgid "Description of the archaeological find" msgstr "Description du mobilier" -#: forms.py:525 +#: forms.py:558 forms_treatments.py:563 forms_treatments.py:587 msgid "Documentation search" msgstr "Rechercher une documentation" -#: forms.py:527 +#: forms.py:560 forms_treatments.py:565 forms_treatments.py:589 msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: forms.py:544 +#: forms.py:577 msgid "Another basket already exists with this name." msgstr "Un autre panier existant utilise déjà ce nom." -#: forms.py:554 forms.py:558 forms.py:713 ishtar_menu.py:55 +#: forms.py:587 forms.py:591 forms_treatments.py:156 ishtar_menu.py:56 msgid "Basket" msgstr "Panier" -#: forms.py:608 forms.py:647 models.py:819 templates/ishtar/sheet_find.html:90 -#: templates/ishtar/sheet_find.html:130 +#: forms_treatments.py:51 forms_treatments.py:90 models_treatments.py:79 +#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:130 msgid "Label" msgstr "Intitulé" -#: forms.py:609 forms.py:650 models.py:821 +#: forms_treatments.py:52 forms_treatments.py:93 models_treatments.py:81 msgid "Other ref." msgstr "Autre réf." -#: forms.py:611 forms.py:769 models.py:824 +#: forms_treatments.py:54 forms_treatments.py:212 forms_treatments.py:260 +#: forms_treatments.py:323 forms_treatments.py:332 forms_treatments.py:434 +#: forms_treatments.py:465 forms_treatments.py:530 models_treatments.py:85 +#: models_treatments.py:375 msgid "Index" msgstr "Index" -#: forms.py:612 forms.py:656 models.py:793 models.py:826 models.py:954 +#: forms_treatments.py:55 forms_treatments.py:99 forms_treatments.py:276 +#: forms_treatments.py:551 models_treatments.py:53 models_treatments.py:89 +#: models_treatments.py:223 msgid "Treatment type" msgstr "Type de traitement" -#: forms.py:624 views.py:302 +#: forms_treatments.py:67 forms_treatments.py:533 views.py:355 msgid "Treatment search" msgstr "Rechercher un traitement" -#: forms.py:636 +#: forms_treatments.py:79 msgid "Base treatment" msgstr "Traitement de base" -#: forms.py:658 +#: forms_treatments.py:101 msgid "Target" msgstr "Destination" -#: forms.py:660 models.py:833 +#: forms_treatments.py:103 forms_treatments.py:392 models_treatments.py:96 msgid "Responsible" msgstr "Responsable" -#: forms.py:666 models.py:836 +#: forms_treatments.py:109 models_treatments.py:99 msgid "Organization" msgstr "Organisation" -#: forms.py:672 models.py:828 models.py:957 +#: forms_treatments.py:115 models_treatments.py:91 models_treatments.py:226 msgid "Location" msgstr "Lieu" -#: forms.py:678 +#: forms_treatments.py:121 msgid "Container (relevant for packaging)" msgstr "Conteneur (pertinent dans le cadre du conditionnement)" -#: forms.py:684 +#: forms_treatments.py:127 forms_treatments.py:388 msgid "External ref." msgstr "Réf. externe" -#: forms.py:689 models.py:842 +#: forms_treatments.py:132 models_treatments.py:105 msgid "Goal" msgstr "But" -#: forms.py:713 +#: forms_treatments.py:156 msgid "Single find" msgstr "Mobilier isolé" -#: forms.py:741 +#: forms_treatments.py:184 msgid "" "The container field is attached to the treatment. If no packaging treatment " "is done it is not relevant." @@ -366,20 +381,32 @@ msgstr "" "Le champ concernant le conteneur est rattaché au traitement. Si aucun " "conditionnement n'est réalisé, il n'est pas pertinent." -#: forms.py:746 +#: forms_treatments.py:189 msgid "If a packaging treatment is done, the container field must be filled." msgstr "" "Si un conditionnement est fait, le champ du conteneur doit être rempli." -#: forms.py:750 +#: forms_treatments.py:193 msgid "A responsible or an organization must be defined." msgstr "Un responsable ou une organisation doit être défini." -#: forms.py:782 +#: forms_treatments.py:231 msgid "Another treatment with this index exists for {}." msgstr "Un autre traitement avec cet index existe pour {}." -#: forms.py:789 +#: forms_treatments.py:237 +#, fuzzy +msgid "Associated file" +msgstr "Mobilier de base associé" + +#: forms_treatments.py:241 forms_treatments.py:372 ishtar_menu.py:107 +#: models_treatments.py:406 models_treatments.py:471 wizards.py:182 +#: templates/ishtar/sheet_treatmentfile.html:5 +#, fuzzy +msgid "Treatment file" +msgstr "Type de traitement" + +#: forms_treatments.py:250 msgid "" "Are you sure you want to delete this treatment? All modification made to the " "associated finds since this treatment record will be lost!" @@ -388,453 +415,735 @@ msgstr "" "sur le mobilier associé réalisées depuis l'enregistrement de ce traitement " "seront perdues !" -#: forms.py:792 +#: forms_treatments.py:253 msgid "Would you like to delete this treatment?" msgstr "Voulez-vous supprimer ce traitement ?" -#: ishtar_menu.py:35 ishtar_menu.py:78 ishtar_menu.py:113 +#: forms_treatments.py:261 forms_treatments.py:309 forms_treatments.py:466 +#: forms_treatments.py:515 +#, fuzzy +msgid "Act type" +msgstr "Type d'objet" + +#: forms_treatments.py:262 forms_treatments.py:467 +#, fuzzy +msgid "Indexed?" +msgstr "Index" + +#: forms_treatments.py:263 forms_treatments.py:468 models_finds.py:120 +msgid "Object" +msgstr "Objet" + +#: forms_treatments.py:267 forms_treatments.py:472 +msgid "Signature date after" +msgstr "" + +#: forms_treatments.py:269 forms_treatments.py:474 +msgid "Signature date before" +msgstr "" + +#: forms_treatments.py:271 forms_treatments.py:546 +#, fuzzy +msgid "Treatment name" +msgstr "Type de traitement" + +#: forms_treatments.py:272 forms_treatments.py:547 +#, fuzzy +msgid "Treatment year" +msgstr "Rechercher un traitement" + +#: forms_treatments.py:273 forms_treatments.py:548 +#, fuzzy +msgid "Treatment index" +msgstr "Type de traitement" + +#: forms_treatments.py:275 forms_treatments.py:550 +#, fuzzy +msgid "Treatment internal reference" +msgstr "Rechercher un traitement" + +#: forms_treatments.py:279 forms_treatments.py:484 +#, fuzzy +msgid "Modified by" +msgstr "Modifier" + +#: forms_treatments.py:329 forms_treatments.py:379 models_treatments.py:380 +msgid "Name" +msgstr "" + +#: forms_treatments.py:330 forms_treatments.py:386 +#, fuzzy +msgid "Internal ref." +msgstr "Réf. externe" + +#: forms_treatments.py:333 forms_treatments.py:390 forms_treatments.py:481 +#: forms_treatments.py:575 models_treatments.py:362 models_treatments.py:381 +#, fuzzy +msgid "Treatment file type" +msgstr "Type de traitement" + +#: forms_treatments.py:335 +msgid "In charge" +msgstr "" + +#: forms_treatments.py:341 forms_treatments.py:398 models_treatments.py:389 +msgid "Applicant" +msgstr "" + +#: forms_treatments.py:347 forms_treatments.py:404 models_treatments.py:393 +#, fuzzy +msgid "Applicant organisation" +msgstr "Localisation topogaphique" + +#: forms_treatments.py:360 forms_treatments.py:538 views.py:458 +#, fuzzy +msgid "Treatment file search" +msgstr "Rechercher un traitement" + +#: forms_treatments.py:414 models_treatments.py:399 +msgid "Reception date" +msgstr "" + +#: forms_treatments.py:417 models_treatments.py:395 +#, fuzzy +msgid "Closing date" +msgstr "Date de fin" + +#: forms_treatments.py:453 +#, fuzzy +msgid "Another treatment file with this index exists for {}." +msgstr "Un autre traitement avec cet index existe pour {}." + +#: forms_treatments.py:459 +#, fuzzy +msgid "Are you sure you want to delete this treatment file?" +msgstr "Voulez-vous supprimer ce traitement ?" + +#: forms_treatments.py:460 +#, fuzzy +msgid "Would you like to delete this treatment file?" +msgstr "Voulez-vous supprimer ce traitement ?" + +#: forms_treatments.py:476 forms_treatments.py:570 +#, fuzzy +msgid "Treatment file name" +msgstr "Supprimer un traitement" + +#: forms_treatments.py:477 forms_treatments.py:571 +#, fuzzy +msgid "Treatment file year" +msgstr "Rechercher un traitement" + +#: forms_treatments.py:478 forms_treatments.py:572 +#, fuzzy +msgid "Treatment file index" +msgstr "Supprimer un traitement" + +#: forms_treatments.py:480 forms_treatments.py:574 +msgid "Treatment file internal reference" +msgstr "" + +#: forms_treatments.py:535 +#, fuzzy +msgid "You should select an treatment." +msgstr "Vous devez sélectionner un document." + +#: forms_treatments.py:541 +#, fuzzy +msgid "You should select an treatment file." +msgstr "Vous devez sélectionner un document." + +#: ishtar_menu.py:36 ishtar_menu.py:79 ishtar_menu.py:111 ishtar_menu.py:134 +#: ishtar_menu.py:158 ishtar_menu.py:190 ishtar_menu.py:214 ishtar_menu.py:238 msgid "Search" msgstr "Recherche" -#: ishtar_menu.py:40 ishtar_menu.py:58 ishtar_menu.py:83 ishtar_menu.py:118 +#: ishtar_menu.py:41 ishtar_menu.py:59 ishtar_menu.py:84 ishtar_menu.py:116 +#: ishtar_menu.py:138 ishtar_menu.py:163 ishtar_menu.py:195 ishtar_menu.py:218 +#: ishtar_menu.py:243 msgid "Creation" msgstr "Ajout" -#: ishtar_menu.py:45 ishtar_menu.py:88 ishtar_menu.py:123 +#: ishtar_menu.py:46 ishtar_menu.py:89 ishtar_menu.py:121 ishtar_menu.py:142 +#: ishtar_menu.py:168 ishtar_menu.py:200 ishtar_menu.py:223 ishtar_menu.py:248 msgid "Modification" msgstr "Modification" -#: ishtar_menu.py:50 ishtar_menu.py:69 ishtar_menu.py:93 ishtar_menu.py:128 +#: ishtar_menu.py:51 ishtar_menu.py:70 ishtar_menu.py:94 ishtar_menu.py:126 +#: ishtar_menu.py:145 ishtar_menu.py:173 ishtar_menu.py:205 ishtar_menu.py:226 +#: ishtar_menu.py:253 msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:63 +#: ishtar_menu.py:64 msgid "Manage items" msgstr "Gérer les éléments" -#: ishtar_menu.py:75 +#: ishtar_menu.py:76 msgid "Documentation" msgstr "Documentation" -#: ishtar_menu.py:106 models.py:851 models.py:944 models.py:1096 -#: templates/ishtar/sheet_treatment.html:5 +#: ishtar_menu.py:131 ishtar_menu.py:211 models_finds.py:783 +msgid "Administrative act" +msgstr "Acte administratif" + +#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:204 +#: templates/ishtar/sheet_find.html:206 +msgid "Documents" +msgstr "Documents" + +#: ishtar_menu.py:155 ishtar_menu.py:235 +msgid "Source" +msgstr "" + +#: ishtar_menu.py:183 models_treatments.py:115 models_treatments.py:215 +#: models_treatments.py:455 templates/ishtar/sheet_treatment.html:5 msgid "Treatment" msgstr "Traitement" -#: ishtar_menu.py:110 +#: ishtar_menu.py:187 msgid "Simple treatments" msgstr "Traitements simples" -#: models.py:45 +#: models_finds.py:43 msgid "Code" msgstr "Code" -#: models.py:46 +#: models_finds.py:44 msgid "Recommendation" msgstr "Recommandation" -#: models.py:49 +#: models_finds.py:47 msgid "Parent material" msgstr "Matériau parent" -#: models.py:53 models.py:385 +#: models_finds.py:51 models_finds.py:383 msgid "Material types" msgstr "Types de matériau" -#: models.py:61 +#: models_finds.py:59 msgid "Parent conservatory state" msgstr "État sanitaire - parent" -#: models.py:65 +#: models_finds.py:63 msgid "Conservatory states" msgstr "États sanitaires" -#: models.py:74 +#: models_finds.py:72 msgid "Preservation types" msgstr "Types de conservation" -#: models.py:82 +#: models_finds.py:80 msgid "Integrity / interest type" msgstr "Type d'intégrité / intérêt" -#: models.py:83 +#: models_finds.py:81 msgid "Integrity / interest types" msgstr "Types d'intégrité / intérêt" -#: models.py:91 +#: models_finds.py:89 msgid "Remarkability type" msgstr "Type de remarquabilité" -#: models.py:92 +#: models_finds.py:90 msgid "Remarkability types" msgstr "Types de remarquabilité" -#: models.py:100 +#: models_finds.py:98 msgid "Parent" msgstr "Parent" -#: models.py:121 +#: models_finds.py:119 msgid "Unknow" msgstr "Inconnu" -#: models.py:122 -msgid "Object" -msgstr "Objet" - -#: models.py:123 +#: models_finds.py:121 msgid "Batch" msgstr "Lot" -#: models.py:130 models.py:378 models.py:838 +#: models_finds.py:128 models_finds.py:376 models_treatments.py:101 +#: models_treatments.py:378 msgid "External ID" msgstr "ID externe" -#: models.py:132 models.py:380 +#: models_finds.py:130 models_finds.py:378 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:136 +#: models_finds.py:134 msgid "Topographic localisation" msgstr "Localisation topogaphique" -#: models.py:137 +#: models_finds.py:135 msgid "Special interest" msgstr "Intérêt spécifique" -#: models.py:141 +#: models_finds.py:139 msgid "Context Record" msgstr "Unité d'Enregistrement" -#: models.py:142 +#: models_finds.py:140 msgid "Discovery date" msgstr "Date de découverte" -#: models.py:147 +#: models_finds.py:145 msgid "Material index" msgstr "Index matériel" -#: models.py:148 +#: models_finds.py:146 msgid "Point" msgstr "Point" -#: models.py:149 +#: models_finds.py:147 msgid "Line" msgstr "Ligne" -#: models.py:150 +#: models_finds.py:148 msgid "Polygon" msgstr "Polygon" -#: models.py:153 models.py:156 +#: models_finds.py:151 models_finds.py:154 msgid "Cached value - do not edit" msgstr "Valeur en cache - ne pas éditer" -#: models.py:161 models.py:376 +#: models_finds.py:159 models_finds.py:374 msgid "Base find" msgstr "Mobilier de base" -#: models.py:162 +#: models_finds.py:160 msgid "Base finds" msgstr "Mobilier de base" -#: models.py:164 +#: models_finds.py:162 msgid "Can view all Base finds" msgstr "Peut voir tout le Mobilier de base" -#: models.py:165 +#: models_finds.py:163 msgid "Can view own Base find" msgstr "Peut voir son propre Mobilier de base" -#: models.py:166 +#: models_finds.py:164 msgid "Can add own Base find" msgstr "Peut ajouter son propre Mobilier de base" -#: models.py:167 +#: models_finds.py:165 msgid "Can change own Base find" msgstr "Peut modifier son propre Mobilier de base" -#: models.py:168 +#: models_finds.py:166 msgid "Can delete own Base find" msgstr "Peut supprimer son propre Mobilier de base" -#: models.py:278 +#: models_finds.py:276 msgid "g" msgstr "g" -#: models.py:279 +#: models_finds.py:277 msgid "kg" msgstr "kg" -#: models.py:281 +#: models_finds.py:279 msgid "Not checked" msgstr "Non vérifié" -#: models.py:282 +#: models_finds.py:280 msgid "Checked but incorrect" msgstr "Vérifié mais incorrect" -#: models.py:283 +#: models_finds.py:281 msgid "Checked and correct" msgstr "Vérifié et correct" -#: models.py:316 +#: models_finds.py:314 msgid "Periods" msgstr "Périodes" -#: models.py:326 +#: models_finds.py:324 msgid "Base find - Short ID" msgstr "Mobilier de base - ID court" -#: models.py:327 +#: models_finds.py:325 msgid "Base find - Complete ID" msgstr "Mobilier de base - ID complet" -#: models.py:328 +#: models_finds.py:326 msgid "Base find - Comment" msgstr "Mobilier de base - Commentaires" -#: models.py:329 +#: models_finds.py:327 msgid "Base find - Description" msgstr "Mobilier de base - Description" -#: models.py:330 +#: models_finds.py:328 msgid "Base find - Topographic localisation" msgstr "Mobilier de base - Localisation topographique" -#: models.py:332 +#: models_finds.py:330 msgid "Base find - Special interest" msgstr "Mobilier de base - Intérêt spécifique" -#: models.py:333 +#: models_finds.py:331 msgid "Base find - Discovery date" msgstr "Mobilier de base - Date de découverte" -#: models.py:381 models.py:948 +#: models_finds.py:379 models_treatments.py:219 msgid "Order" msgstr "Ordre" -#: models.py:392 +#: models_finds.py:390 msgid "Type of preservation to consider" msgstr "Mesures de conservation à envisager" -#: models.py:396 +#: models_finds.py:394 msgid "Weight unit" msgstr "Unité de poids" -#: models.py:402 templates/ishtar/sheet_find.html:83 +#: models_finds.py:400 templates/ishtar/sheet_find.html:83 msgid "Upstream treatment" msgstr "Traitement amont" -#: models.py:405 templates/ishtar/sheet_find.html:123 +#: models_finds.py:403 templates/ishtar/sheet_find.html:123 msgid "Downstream treatment" msgstr "Traitement aval" -#: models.py:409 models.py:845 models.py:958 +#: models_finds.py:407 models_treatments.py:108 models_treatments.py:227 #: templates/ishtar/sheet_find.html:94 templates/ishtar/sheet_find.html:134 msgid "Container" msgstr "Contenant" -#: models.py:445 +#: models_finds.py:443 models_treatments.py:111 models_treatments.py:402 msgid "Cached name" msgstr "Nom en cache" -#: models.py:454 +#: models_finds.py:452 msgid "Can view all Finds" msgstr "Peut voir tout le Mobilier" -#: models.py:455 +#: models_finds.py:453 msgid "Can view own Find" msgstr "Peut voir son propre Mobilier" -#: models.py:456 +#: models_finds.py:454 msgid "Can add own Find" msgstr "Peut ajouter son propre Mobilier" -#: models.py:457 +#: models_finds.py:455 msgid "Can change own Find" msgstr "Peut modifier son propre Mobilier" -#: models.py:458 +#: models_finds.py:456 msgid "Can delete own Find" msgstr "Peut supprimer son propre Mobilier" -#: models.py:464 +#: models_finds.py:462 msgid "FIND" msgstr "MOBILIER" -#: models.py:769 +#: models_finds.py:770 msgid "Find documentation" msgstr "Documentation de mobilier" -#: models.py:770 +#: models_finds.py:771 msgid "Find documentations" msgstr "Documentations de mobilier" -#: models.py:780 +#: models_finds.py:784 +msgid "Person" +msgstr "Individu" + +#: models_finds.py:790 +msgid "Property" +msgstr "Propriété" + +#: models_finds.py:791 +msgid "Properties" +msgstr "Propriétés" + +#: models_treatments.py:40 msgid "Virtual" msgstr "Virtuel" -#: models.py:782 +#: models_treatments.py:42 msgid "Upstream is many" msgstr "Les éléments amont sont multiples" -#: models.py:784 +#: models_treatments.py:44 msgid "Check this if for this treatment from many finds you'll get one." msgstr "" "Cochez cela si, pour ce traitement, à partir de plusieurs éléments vous en " "obtenez un seul." -#: models.py:787 +#: models_treatments.py:47 msgid "Downstream is many" msgstr "Les éléments aval sont multiples" -#: models.py:789 +#: models_treatments.py:49 msgid "Check this if for this treatment from one find you'll get many." msgstr "" "Cochez cela si, pour ce traitement, à partir d'un seul élément vous en " "obtenez plusieurs." -#: models.py:794 +#: models_treatments.py:54 msgid "Treatment types" msgstr "Types de traitement" -#: models.py:815 +#: models_treatments.py:75 msgid "Downstream find" msgstr "Mobilier aval" -#: models.py:830 +#: models_treatments.py:93 msgid "Location where the treatment is done. Target warehouse for a move." msgstr "" "Endroit où le traitement est réalisé. Renseignez le dépôt de destination " "pour un déplacement." -#: models.py:847 +#: models_treatments.py:110 msgid "Target a basket" msgstr "Cibler un panier" -#: models.py:852 templates/ishtar/sheet_find.html:80 +#: models_treatments.py:116 templates/ishtar/sheet_find.html:80 +#: templates/ishtar/sheet_treatmentfile.html:27 msgid "Treatments" msgstr "Traitements" -#: models.py:855 +#: models_treatments.py:119 msgid "Can view all Treatments" msgstr "Peut voir tous les Traitements" -#: models.py:856 +#: models_treatments.py:120 msgid "Can view own Treatment" msgstr "Peut voir son propre Traitement" -#: models.py:857 +#: models_treatments.py:121 msgid "Can add own Treatment" msgstr "Peut ajouter son propre Traitement" -#: models.py:858 +#: models_treatments.py:122 msgid "Can change own Treatment" msgstr "Peut modifier son propre Traitement" -#: models.py:859 +#: models_treatments.py:123 msgid "Can delete own Treatment" msgstr "Peut supprimer son propre Traitement" -#: models.py:865 +#: models_treatments.py:129 msgid "by" msgstr "par" -#: models.py:959 templates/ishtar/sheet_find.html:93 +#: models_treatments.py:228 templates/ishtar/sheet_find.html:93 #: templates/ishtar/sheet_find.html:133 msgid "Doer" msgstr "Opérateur" -#: models.py:960 models.py:961 templates/ishtar/sheet_find.html:92 -#: templates/ishtar/sheet_find.html:132 +#: models_treatments.py:229 models_treatments.py:230 +#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:132 msgid "Related finds" msgstr "Mobilier associé" -#: models.py:1082 +#: models_treatments.py:351 msgid "Is upstream" msgstr "Est en amont" -#: models.py:1093 +#: models_treatments.py:363 +#, fuzzy +msgid "Treatment file types" +msgstr "Types de traitement" + +#: models_treatments.py:376 +#, fuzzy +msgid "Internal reference" +msgstr "Référence numérique" + +#: models_treatments.py:385 +msgid "Person in charge" +msgstr "" + +#: models_treatments.py:397 +#, fuzzy +msgid "Creation date" +msgstr "Ajout" + +#: models_treatments.py:407 +#, fuzzy +msgid "Treatment files" +msgstr "Types de traitement" + +#: models_treatments.py:410 +#, fuzzy +msgid "Can view all Treatment files" +msgstr "Peut voir tous les Traitements" + +#: models_treatments.py:412 +#, fuzzy +msgid "Can view own Treatment file" +msgstr "Peut voir son propre Traitement" + +#: models_treatments.py:414 +#, fuzzy +msgid "Can add own Treatment file" +msgstr "Peut ajouter son propre Traitement" + +#: models_treatments.py:416 +#, fuzzy +msgid "Can change own Treatment file" +msgstr "Peut modifier son propre Traitement" + +#: models_treatments.py:418 +#, fuzzy +msgid "Can delete own Treatment file" +msgstr "Peut supprimer son propre Traitement" + +#: models_treatments.py:461 msgid "Treatment documentation" msgstr "Documentation d'un traitement" -#: models.py:1094 +#: models_treatments.py:462 msgid "Treament documentations" msgstr "Documentations des traitements" -#: models.py:1106 -msgid "Administrative act" -msgstr "Acte administratif" - -#: models.py:1107 -msgid "Person" -msgstr "Individu" - -#: models.py:1113 -msgid "Property" -msgstr "Propriété" +#: models_treatments.py:477 +#, fuzzy +msgid "Treatment file documentation" +msgstr "Documentation d'un traitement" -#: models.py:1114 -msgid "Properties" -msgstr "Propriétés" +#: models_treatments.py:478 +#, fuzzy +msgid "Treament file documentations" +msgstr "Documentations des traitements" -#: views.py:68 +#: views.py:120 msgid "New find" msgstr "Ajouter un mobilier" -#: views.py:82 +#: views.py:134 msgid "Find modification" msgstr "Modifier un mobilier" -#: views.py:97 +#: views.py:149 msgid "Find deletion" msgstr "Supprimer un mobilier" -#: views.py:102 +#: views.py:154 msgid "Find: source search" msgstr "Mobilier : rechercher une documentation associée" -#: views.py:110 +#: views.py:162 msgid "Find: new source" msgstr "Mobilier : ajouter une documentation associée" -#: views.py:118 +#: views.py:170 msgid "Find: source modification" msgstr "Mobilier : modifier une documentation associée" -#: views.py:133 +#: views.py:185 msgid "Find: source deletion" msgstr "Mobilier : supprimer un mobilier associé" -#: views.py:147 +#: views.py:199 msgid "New basket" msgstr "Ajouter un panier" -#: views.py:166 +#: views.py:218 msgid "Manage items in basket" msgstr "Gérer les éléments dans un panier" -#: views.py:186 +#: views.py:238 msgid "Manage basket" msgstr "Gérer un panier" -#: views.py:274 +#: views.py:326 msgid "Delete basket" msgstr "Supprimer un panier" -#: views.py:323 +#: views.py:376 msgid "New treatment" msgstr "Ajouter un traitement" -#: views.py:330 +#: views.py:383 views.py:475 msgid "Modify" msgstr "Modifier" -#: views.py:337 +#: views.py:400 msgid "Treatment deletion" msgstr "Supprimer un traitement" -#: wizards.py:59 +#: views.py:407 +#, fuzzy +msgid "Treatment: search administrative act" +msgstr "Acte administratif" + +#: views.py:416 +#, fuzzy +msgid "Treatment: new administrative act" +msgstr "Acte administratif" + +#: views.py:426 +msgid "Treatment: administrative act modification" +msgstr "" + +#: views.py:435 +#, fuzzy +msgid "Treatment: administrative act deletion" +msgstr "Supprimer un traitement" + +#: views.py:468 +#, fuzzy +msgid "New treatment file" +msgstr "Ajouter un traitement" + +#: views.py:491 +#, fuzzy +msgid "Treatment file deletion" +msgstr "Supprimer un traitement" + +#: views.py:498 +msgid "Treatment file: search administrative act" +msgstr "" + +#: views.py:508 +#, fuzzy +msgid "Treatment file: new administrative act" +msgstr "Acte administratif" + +#: views.py:518 +msgid "Treatment file: administrative act modification" +msgstr "" + +#: views.py:527 +msgid "Treatment file: administrative act deletion" +msgstr "" + +#: views.py:553 +#, fuzzy +msgid "Treatment: source search" +msgstr "Rechercher un traitement" + +#: views.py:568 +#, fuzzy +msgid "Treatment: source modification" +msgstr "Mobilier : modifier une documentation associée" + +#: views.py:583 +#, fuzzy +msgid "Treatment: source deletion" +msgstr "Supprimer un traitement" + +#: views.py:596 +#, fuzzy +msgid "Treatment file: source search" +msgstr "Rechercher un traitement" + +#: views.py:612 +#, fuzzy +msgid "Treatment file: source modification" +msgstr "Mobilier : modifier une documentation associée" + +#: views.py:630 +#, fuzzy +msgid "Treatment file: source deletion" +msgstr "Supprimer un traitement" + +#: wizards.py:62 wizards.py:194 msgid "Operation" msgstr "Opération" @@ -859,10 +1168,6 @@ msgstr "CSV" msgid "Associated base finds" msgstr "Mobilier de base associé" -#: templates/ishtar/sheet_find.html:204 templates/ishtar/sheet_find.html:206 -msgid "Documents" -msgstr "Documents" - #: templates/ishtar/sheet_find.html:208 msgid "Title" msgstr "Titre" @@ -886,3 +1191,13 @@ msgstr "Documentation associée au mobilier" #: templates/ishtar/sheet_treatment.html:41 msgid "Downstream finds" msgstr "Mobilier aval" + +#: templates/ishtar/sheet_treatmentfilesource.html:4 +#, fuzzy +msgid "Treatement file source" +msgstr "Rechercher un traitement" + +#: templates/ishtar/sheet_treatmentsource.html:4 +#, fuzzy +msgid "Treatment source" +msgstr "Rechercher un traitement" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index 9fdd9d373..4b6a6214c 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -7,23 +7,25 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-16 16:37+0100\n" "PO-Revision-Date: 2016-12-04 07:53-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" #: forms.py:69 forms.py:371 forms.py:1009 forms.py:1031 forms.py:1035 -#: models.py:1190 templates/ishtar/sheet_operation.html:144 +#: models.py:1213 templates/ishtar/sheet_operation.html:144 #: templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "Parcelles" -#: forms.py:72 forms.py:205 forms.py:985 models.py:1176 +#: forms.py:72 forms.py:205 forms.py:985 models.py:1199 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -33,21 +35,21 @@ msgid "Town" msgstr "Commune" #: forms.py:74 forms.py:455 forms.py:752 forms.py:1255 models.py:271 -#: models.py:993 models.py:1174 +#: models.py:1005 models.py:1197 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "Année" -#: forms.py:77 models.py:1177 +#: forms.py:77 models.py:1200 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "Section" -#: forms.py:80 models.py:1179 +#: forms.py:80 models.py:1202 msgid "Parcel number" msgstr "Numéro de parcelle" -#: forms.py:82 models.py:1181 models.py:1198 models.py:1247 +#: forms.py:82 models.py:1204 models.py:1221 models.py:1270 msgid "Public domain" msgstr "Domaine public" @@ -84,7 +86,7 @@ msgid "Relation type" msgstr "Type de relation" #: forms.py:383 ishtar_menu.py:30 models.py:366 models.py:826 models.py:856 -#: models.py:884 models.py:985 models.py:1173 wizards.py:339 wizards.py:350 +#: models.py:884 models.py:987 models.py:1196 wizards.py:344 wizards.py:355 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "Opération" @@ -147,7 +149,7 @@ msgstr "Est ouvert ?" msgid "In charge" msgstr "Responsable" -#: forms.py:485 models.py:979 +#: forms.py:485 models.py:981 msgid "Scientist in charge" msgstr "Responsable scientifique" @@ -253,8 +255,8 @@ msgstr "Rechercher une opération" msgid "Associated file" msgstr "Dossier associé" -#: forms.py:640 forms.py:933 models.py:493 models.py:883 models.py:990 -#: wizards.py:76 +#: forms.py:640 forms.py:933 models.py:493 models.py:883 models.py:992 +#: wizards.py:80 msgid "Archaeological file" msgstr "Dossier archéologique" @@ -322,7 +324,7 @@ msgstr "Avec un rapport" msgid "With finds" msgstr "Avec du mobilier" -#: forms.py:733 forms.py:1327 templates/ishtar/sheet_administrativeact.html:13 +#: forms.py:733 forms.py:1327 templates/ishtar/sheet_administrativeact.html:20 #: templates/ishtar/sheet_operation.html:24 msgid "General" msgstr "Général" @@ -347,7 +349,7 @@ msgstr "Référence de l'opérateur" msgid "Total surface (m2)" msgstr "Surface totale (m2)" -#: forms.py:800 models.py:53 models.py:255 models.py:1363 +#: forms.py:800 models.py:53 models.py:255 models.py:1386 msgid "Start date" msgstr "Date de début" @@ -389,13 +391,12 @@ msgstr "" #: forms.py:891 msgid "The excavation end date cannot be before the start date." -msgstr "" -"La date de fin de chantier ne peut être antérieure à la date de début." +msgstr "La date de fin de chantier ne peut être antérieure à la date de début." #: forms.py:919 -#, python-format +#, fuzzy, python-format msgid "" -"Operation code already exist for year: %(year)d - use a value bigger than " +"Operation code already exists for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" "Ce code d'opération existe déjà pour l'année %(year)d - utilisez une valeur " @@ -446,11 +447,11 @@ msgstr "Prescription sur une vaste surface" msgid "Prescription on geoarchaeological context" msgstr "Prescription sur un contexte géoarchéologique" -#: forms.py:983 forms.py:1005 models.py:283 models.py:1003 +#: forms.py:983 forms.py:1005 models.py:283 models.py:1015 msgid "Towns" msgstr "Communes" -#: forms.py:1012 models.py:1189 models.py:1361 +#: forms.py:1012 models.py:1212 models.py:1384 msgid "Parcel" msgstr "Parcelle" @@ -496,7 +497,7 @@ msgstr "Voulez-vous clore cette opération ?" msgid "Would you like to delete this operation?" msgstr "Voulez-vous supprimer cette opération ?" -#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:858 models.py:970 +#: forms.py:1186 forms.py:1256 forms.py:1392 models.py:858 models.py:972 msgid "Index" msgstr "Index" @@ -525,7 +526,7 @@ msgstr "Rechercher une documentation" msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: forms.py:1263 forms.py:1330 models.py:895 models.py:964 +#: forms.py:1263 forms.py:1330 models.py:897 models.py:966 msgid "Act type" msgstr "Type d'acte" @@ -533,7 +534,7 @@ msgstr "Type d'acte" msgid "Indexed?" msgstr "Indexé ?" -#: forms.py:1270 forms.py:1335 models.py:994 +#: forms.py:1270 forms.py:1335 models.py:1006 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "Objet" @@ -546,14 +547,14 @@ msgstr "Rechercher un acte administratif" msgid "You should select an administrative act." msgstr "Vous devez sélectionner un acte administratif." -#: forms.py:1338 models.py:991 +#: forms.py:1338 models.py:1003 msgid "Signature date" msgstr "Date de signature" #: forms.py:1380 -#, python-format +#, fuzzy, python-format msgid "" -"This index already exist for year: %(year)d - use a value bigger than " +"This index already exists for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" "Cet index existe déjà pour l'année : %(year)d, utilisez une valeur plus " @@ -604,7 +605,7 @@ msgstr "Clôture" msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:58 models.py:1010 +#: ishtar_menu.py:58 models.py:1022 #: templates/ishtar/sheet_administrativeact.html:4 msgid "Administrative act" msgstr "Acte administratif" @@ -634,11 +635,11 @@ msgstr "Informations générales" msgid "Operations" msgstr "Opérations" -#: models.py:52 models.py:70 models.py:1825 +#: models.py:52 models.py:70 models.py:1848 msgid "Order" msgstr "Ordre" -#: models.py:54 models.py:1364 +#: models.py:54 models.py:1387 msgid "End date" msgstr "Date de fin" @@ -758,7 +759,7 @@ msgstr "Date de clôture" msgid "In charge scientist" msgstr "Responsable scientifique" -#: models.py:276 models.py:1169 +#: models.py:276 models.py:1192 msgid "File" msgstr "Dossier" @@ -911,146 +912,156 @@ msgstr "Peut modifier sa propre Documentation d'opération" msgid "Can delete own Operation source" msgstr "Peut supprimer sa propre Documentation d'opération" -#: models.py:886 +#: models.py:885 models.py:997 +#, fuzzy +msgid "Treatment file" +msgstr "Détail par département" + +#: models.py:886 models.py:1002 +#, fuzzy +msgid "Treatment" +msgstr "Département" + +#: models.py:888 msgid "Intended to" msgstr "Destiné à" -#: models.py:888 +#: models.py:890 msgid "Code" msgstr "Code" -#: models.py:891 +#: models.py:893 msgid "Associated template" msgstr "Patron associé" -#: models.py:892 +#: models.py:894 msgid "Indexed" msgstr "Indexé" -#: models.py:896 +#: models.py:898 msgid "Act types" msgstr "Types d'acte" -#: models.py:968 +#: models.py:970 msgid "Person in charge of the operation" msgstr "Responsable d'opération" -#: models.py:974 +#: models.py:976 msgid "Archaeological preventive operator" msgstr "Opérateur d'archéologie préventive" -#: models.py:982 +#: models.py:984 msgid "Signatory" msgstr "Signataire" -#: models.py:1000 +#: models.py:1012 msgid "Departments" msgstr "Départements" -#: models.py:1001 +#: models.py:1013 msgid "Cached values get from associated departments" msgstr "Valeur en cache des départements associés" -#: models.py:1004 +#: models.py:1016 msgid "Cached values get from associated towns" msgstr "Valeur en cache des communes associées" -#: models.py:1011 templates/ishtar/sheet_operation.html:102 +#: models.py:1023 templates/ishtar/sheet_operation.html:102 #: templates/ishtar/sheet_operation.html:138 msgid "Administrative acts" msgstr "Actes administratifs" -#: models.py:1014 +#: models.py:1026 msgid "Can view all Administrative acts" msgstr "Peut voir tous les Actes administratifs" -#: models.py:1016 +#: models.py:1028 msgid "Can view own Administrative act" msgstr "Peut voir son propre Acte administratif" -#: models.py:1018 +#: models.py:1030 msgid "Can add own Administrative act" msgstr "Peut ajouter son propre Acte administratif" -#: models.py:1020 +#: models.py:1032 msgid "Can change own Administrative act" msgstr "Peut modifier son propre Acte administratif" -#: models.py:1022 +#: models.py:1034 msgid "Can delete own Administrative act" msgstr "Peut supprimer son propre Acte administratif" -#: models.py:1031 +#: models.py:1043 #: templates/ishtar/blocks/window_tables/administrativacts.html:7 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7 msgid "Ref." msgstr "Réf." -#: models.py:1114 +#: models.py:1137 msgid "This index already exists for this year" msgstr "Cet index existe déjà pour cette année." -#: models.py:1182 +#: models.py:1205 msgid "External ID" msgstr "ID externe" -#: models.py:1185 +#: models.py:1208 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:1186 +#: models.py:1209 msgid "Address - Locality" msgstr "Adresse - Lieu-dit" -#: models.py:1359 +#: models.py:1382 msgid "Owner" msgstr "Propriétaire" -#: models.py:1367 +#: models.py:1390 msgid "Parcel owner" msgstr "Propriétaire de parcelle" -#: models.py:1368 +#: models.py:1391 msgid "Parcel owners" msgstr "Propriétaires de parcelle" -#: models.py:1394 +#: models.py:1417 msgid "Recorded" msgstr "Enregistré" -#: models.py:1395 +#: models.py:1418 msgid "Effective" msgstr "Effectif" -#: models.py:1396 +#: models.py:1419 msgid "Active" msgstr "Actif" -#: models.py:1397 +#: models.py:1420 msgid "Field completed" msgstr "Terrain achevé" -#: models.py:1398 +#: models.py:1421 msgid "Associated report" msgstr "Rapport associé" -#: models.py:1399 +#: models.py:1422 msgid "Closed" msgstr "Clos" -#: models.py:1400 +#: models.py:1423 msgid "Documented and closed" msgstr "Documenté et clos" -#: models.py:1826 +#: models.py:1849 msgid "Is preventive" msgstr "Préventif" -#: models.py:1829 +#: models.py:1852 msgid "Operation type old" msgstr "Type d'opération - ancien" -#: models.py:1830 +#: models.py:1853 msgid "Operation types old" msgstr "Types d'opération - ancien" @@ -1102,7 +1113,7 @@ msgstr "Opération : supprimer un acte administratif" msgid "Add" msgstr "Ajouter" -#: wizards.py:199 +#: wizards.py:203 msgid "" "Warning: No Archaeological File is provided. If you have forget it return to " "the first step." @@ -1110,55 +1121,11 @@ msgstr "" "Attention : Aucun dossier archéologique n'a été précisé. S'il s'agit d'un " "oubli, définissez-le à la première étape." -#: templates/ishtar/sheet_administrativeact.html:14 -msgid "Year:" -msgstr "Année :" - -#: templates/ishtar/sheet_administrativeact.html:15 -msgid "Numerical reference:" -msgstr "Identifiant numérique :" - -#: templates/ishtar/sheet_administrativeact.html:16 -msgid "Internal reference:" -msgstr "Référence interne :" - -#: templates/ishtar/sheet_administrativeact.html:17 -msgid "Type:" -msgstr "Type :" - -#: templates/ishtar/sheet_administrativeact.html:18 -msgid "Object:" -msgstr "Objet :" - -#: templates/ishtar/sheet_administrativeact.html:19 -msgid "Signature date:" -msgstr "Date de signature :" - -#: templates/ishtar/sheet_administrativeact.html:20 -msgid "In charge:" -msgstr "Responsable :" - -#: templates/ishtar/sheet_administrativeact.html:21 -msgid "Archaeological preventive operator:" -msgstr "Opérateur d'archéologie préventive :" - -#: templates/ishtar/sheet_administrativeact.html:23 -msgid "Associated file:" -msgstr "Dossier associé :" - -#: templates/ishtar/sheet_administrativeact.html:24 -msgid "Associated operation:" -msgstr "Opération associée :" - -#: templates/ishtar/sheet_administrativeact.html:26 +#: templates/ishtar/sheet_administrativeact.html:36 #: templates/ishtar/sheet_operation.html:38 msgid "Surface:" msgstr "Surface :" -#: templates/ishtar/sheet_administrativeact.html:27 -msgid "Created by:" -msgstr "Créé par :" - #: templates/ishtar/sheet_operation.html:14 msgid "This operation is virtual." msgstr "Cette opération est virtuelle." @@ -1516,3 +1483,36 @@ msgstr "communes principales par coût" #: templates/ishtar/wizard/wizard_adminact_deletion.html:6 msgid "This act is indexed!" msgstr "Cet acte est indexé !" + +#~ msgid "Year:" +#~ msgstr "Année :" + +#~ msgid "Numerical reference:" +#~ msgstr "Identifiant numérique :" + +#~ msgid "Internal reference:" +#~ msgstr "Référence interne :" + +#~ msgid "Type:" +#~ msgstr "Type :" + +#~ msgid "Object:" +#~ msgstr "Objet :" + +#~ msgid "Signature date:" +#~ msgstr "Date de signature :" + +#~ msgid "In charge:" +#~ msgstr "Responsable :" + +#~ msgid "Archaeological preventive operator:" +#~ msgstr "Opérateur d'archéologie préventive :" + +#~ msgid "Associated file:" +#~ msgstr "Dossier associé :" + +#~ msgid "Associated operation:" +#~ msgstr "Opération associée :" + +#~ msgid "Created by:" +#~ msgstr "Créé par :" diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index 0537f91a9..0d540f0f5 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -6,156 +6,232 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-16 16:37+0100\n" "PO-Revision-Date: 2016-12-04 07:54-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" -#: forms.py:34 forms.py:97 models.py:47 models.py:87 +#: forms.py:35 forms.py:91 forms.py:149 ishtar_menu.py:39 models.py:53 +#: models.py:110 msgid "Warehouse" msgstr "Dépôt" -#: forms.py:43 models.py:38 +#: forms.py:44 forms.py:49 models.py:129 +msgid "Division" +msgstr "" + +#: forms.py:51 models.py:77 +msgid "Order" +msgstr "" + +#: forms.py:62 models.py:46 +msgid "Divisions" +msgstr "" + +#: forms.py:66 forms.py:95 models.py:38 msgid "Name" msgstr "Nom" -#: forms.py:45 models.py:30 models.py:40 +#: forms.py:67 forms.py:97 models.py:30 models.py:40 msgid "Warehouse type" msgstr "Type de dépôt" -#: forms.py:48 models.py:43 +#: forms.py:68 forms.py:114 +msgid "Town" +msgstr "Commune" + +#: forms.py:79 +#, fuzzy +msgid "Warehouse search" +msgstr "Dépôts" + +#: forms.py:100 models.py:43 msgid "Person in charge" msgstr "Responsable" -#: forms.py:54 forms.py:102 models.py:44 models.py:91 +#: forms.py:106 forms.py:154 models.py:44 models.py:114 msgid "Comment" msgstr "Commentaires" -#: forms.py:56 +#: forms.py:108 msgid "Address" msgstr "Adresse" -#: forms.py:58 +#: forms.py:110 msgid "Address complement" msgstr "Complément d'adresse" -#: forms.py:60 +#: forms.py:112 msgid "Postal code" msgstr "Code postal" -#: forms.py:62 forms.py:66 -msgid "Town" -msgstr "Commune" - -#: forms.py:63 +#: forms.py:115 msgid "Country" msgstr "Pays" -#: forms.py:65 +#: forms.py:117 msgid "Phone" msgstr "Téléphone" -#: forms.py:93 models.py:94 +#: forms.py:118 +msgid "Mobile phone" +msgstr "" + +#: forms.py:145 models.py:117 models.py:127 msgid "Container" msgstr "Contenant" -#: forms.py:94 forms.py:129 models.py:66 +#: forms.py:146 forms.py:181 models.py:89 msgid "Ref." msgstr "Réf." -#: forms.py:95 forms.py:128 models.py:69 models.py:89 +#: forms.py:147 forms.py:180 models.py:92 models.py:112 msgid "Container type" msgstr "Type de contenant" -#: forms.py:139 +#: forms.py:191 msgid "Container search" msgstr "Rechercher un contenant" -#: forms.py:141 +#: forms.py:193 msgid "You should select a container." msgstr "Vous devez sélectionner un contenant." -#: forms.py:142 +#: forms.py:194 msgid "Add a new container" msgstr "Ajouter un nouveau contenant" -#: forms.py:146 ishtar_menu.py:33 views.py:87 +#: forms.py:198 ishtar_menu.py:35 views.py:89 msgid "Packaging" msgstr "Conditionnement" -#: forms.py:153 +#: forms.py:205 msgid "Packager" msgstr "Personne assurant le conditionnement" -#: forms.py:159 +#: forms.py:211 msgid "Date" msgstr "Date" -#: forms.py:168 +#: forms.py:220 msgid "Packaged finds" msgstr "Mobilier conditionné" -#: ishtar_menu.py:30 +#: forms.py:224 +msgid "Localisation" +msgstr "" + +#: ishtar_menu.py:32 msgid "Treatment" msgstr "Traitement" +#: ishtar_menu.py:41 +msgid "Creation" +msgstr "" + +#: ishtar_menu.py:44 +msgid "Modification" +msgstr "" + +#: ishtar_menu.py:47 models.py:133 views.py:114 +#, fuzzy +msgid "Container localisation" +msgstr "Rechercher un contenant" + #: models.py:31 msgid "Warehouse types" msgstr "Types de dépôts" -#: models.py:48 +#: models.py:54 msgid "Warehouses" msgstr "Dépôts" -#: models.py:50 +#: models.py:56 msgid "Can view all Warehouses" msgstr "Peut voir tous les Dépôts" -#: models.py:51 +#: models.py:57 msgid "Can view own Warehouse" msgstr "Peut voir son propre Dépôt" -#: models.py:52 +#: models.py:58 msgid "Can add own Warehouse" msgstr "Peut ajouter son propre Dépôt" -#: models.py:53 +#: models.py:59 msgid "Can change own Warehouse" msgstr "Peut modifier son propre Dépôt" -#: models.py:54 +#: models.py:60 msgid "Can delete own Warehouse" msgstr "Peut supprimer son propre Dépôt" -#: models.py:62 +#: models.py:69 +#, fuzzy +msgid "Warehouse division" +msgstr "Dépôts" + +#: models.py:70 +#, fuzzy +msgid "Warehouse divisions" +msgstr "Dépôts" + +#: models.py:85 msgid "Length (mm)" msgstr "Longueur (mm)" -#: models.py:63 +#: models.py:86 msgid "Width (mm)" msgstr "Largeur (mm)" -#: models.py:64 +#: models.py:87 msgid "Height (mm)" msgstr "Hauteur (mm)" -#: models.py:65 +#: models.py:88 msgid "Volume (l)" msgstr "Volume (l)" -#: models.py:70 +#: models.py:93 msgid "Container types" msgstr "Types de contenant" -#: models.py:90 +#: models.py:113 msgid "Container ref." msgstr "Réf. du contenant" -#: models.py:95 +#: models.py:118 msgid "Containers" msgstr "Contenants" + +#: models.py:130 +msgid "Reference" +msgstr "" + +#: models.py:134 +#, fuzzy +msgid "Container localisations" +msgstr "Types de contenant" + +#: views.py:96 +#, fuzzy +msgid "Warehouse creation" +msgstr "Type de dépôt" + +#: views.py:105 +#, fuzzy +msgid "Warehouse modification" +msgstr "Type de dépôt" + +#: templates/ishtar/wizard/wizard_containerlocalisation.html:5 +msgid "" +"No division set for this warehouse. Define it to localise container in this " +"warehouse." +msgstr "" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index 532fb09ce..f6d8eab97 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-16 16:37+0100\n" "PO-Revision-Date: 2016-11-16 03:05-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -141,40 +143,40 @@ msgstr "résultat" msgid "\"%(value)s\" not in %(values)s" msgstr "\"%(value)s\" n'est pas dans %(values)s" -#: forms.py:72 +#: forms.py:73 msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "Entrez un nom correct composé de lettres, espaces et tirets." -#: forms.py:88 forms_common.py:618 +#: forms.py:89 forms_common.py:618 msgid "Confirm" msgstr "Confirmer" -#: forms.py:93 +#: forms.py:94 msgid "Are you sure you want to delete?" msgstr "Êtes-vous sûr de vouloir supprimer ?" -#: forms.py:102 +#: forms.py:103 msgid "There are identical items." msgstr "Il y a des éléments identiques." -#: forms.py:140 forms.py:141 +#: forms.py:141 forms.py:142 msgid "Closing date" msgstr "Date de clôture" -#: forms.py:154 +#: forms.py:155 msgid "You should select an item." msgstr "Vous devez sélectionner un élément." -#: forms.py:155 +#: forms.py:156 msgid "Add a new item" msgstr "Ajouter un nouvel élément" -#: forms.py:262 models.py:1360 +#: forms.py:262 models.py:1366 msgid "Template" msgstr "Patron" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1426 models.py:2818 +#: forms_common.py:406 models.py:1432 models.py:2824 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -197,8 +199,8 @@ msgstr "" "

      Par exemple tapez « saint denis 93 » pour obtenir la " "commune Saint-Denis dans le département français de Seine-Saint-Denis.

      " -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1599 -#: models.py:2445 models.py:2627 models.py:2688 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1605 +#: models.py:2451 models.py:2633 models.py:2694 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "Personne" @@ -212,63 +214,63 @@ msgstr "" "pas possible." #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1600 models.py:2331 +#: ishtar_menu.py:75 models.py:1606 models.py:2337 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "Organisation" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:1027 models.py:1359 -#: models.py:1645 models.py:1864 models.py:2325 models.py:2431 models.py:2804 +#: forms_common.py:376 forms_common.py:446 models.py:1033 models.py:1365 +#: models.py:1651 models.py:1870 models.py:2331 models.py:2437 models.py:2810 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "Nom" -#: forms_common.py:174 models.py:1581 models.py:1995 +#: forms_common.py:174 models.py:1587 models.py:2001 msgid "Organization type" msgstr "Type d'organisation" -#: forms_common.py:176 forms_common.py:400 models.py:1421 +#: forms_common.py:176 forms_common.py:400 models.py:1427 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "Adresse" -#: forms_common.py:178 forms_common.py:403 models.py:1422 +#: forms_common.py:178 forms_common.py:403 models.py:1428 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "Complément d'adresse" -#: forms_common.py:180 forms_common.py:404 models.py:1424 +#: forms_common.py:180 forms_common.py:404 models.py:1430 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "Code postal" -#: forms_common.py:183 forms_common.py:407 models.py:1427 +#: forms_common.py:183 forms_common.py:407 models.py:1433 msgid "Country" msgstr "Pays" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1454 +#: forms_common.py:448 forms_common.py:572 models.py:1460 msgid "Email" msgstr "Courriel" -#: forms_common.py:186 forms_common.py:383 models.py:1439 +#: forms_common.py:186 forms_common.py:383 models.py:1445 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "Téléphone" -#: forms_common.py:187 forms_common.py:392 models.py:1451 +#: forms_common.py:187 forms_common.py:392 models.py:1457 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "Téléphone portable" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2025 -#: models.py:2327 models.py:2739 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2031 +#: models.py:2333 models.py:2745 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -292,7 +294,7 @@ msgstr "Fusionner tous les éléments dans" msgid "Organization to merge" msgstr "Organisation à fusionner" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2429 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2435 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "Prénom" @@ -310,25 +312,25 @@ msgstr "Personne à fusionner" msgid "Identity" msgstr "Identité" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1996 -#: models.py:2423 models.py:2425 models.py:2736 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:2002 +#: models.py:2429 models.py:2431 models.py:2742 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "Titre" -#: forms_common.py:372 models.py:2427 +#: forms_common.py:372 models.py:2433 msgid "Salutation" msgstr "Formule d'appel" -#: forms_common.py:378 models.py:2433 +#: forms_common.py:378 models.py:2439 msgid "Raw name" msgstr "Nom brut" -#: forms_common.py:381 models.py:1440 +#: forms_common.py:381 models.py:1446 msgid "Phone description" msgstr "Type de téléphone" -#: forms_common.py:384 models.py:1442 models.py:1444 +#: forms_common.py:384 models.py:1448 models.py:1450 msgid "Phone description 2" msgstr "Type de téléphone 2" @@ -336,11 +338,11 @@ msgstr "Type de téléphone 2" msgid "Phone 2" msgstr "Téléphone 2" -#: forms_common.py:388 models.py:1448 +#: forms_common.py:388 models.py:1454 msgid "Phone description 3" msgstr "Type de téléphone 3" -#: forms_common.py:390 models.py:1446 +#: forms_common.py:390 models.py:1452 msgid "Phone 3" msgstr "Téléphone 3" @@ -348,23 +350,23 @@ msgstr "Téléphone 3" msgid "Current organization" msgstr "Organisation actuelle" -#: forms_common.py:409 models.py:1429 +#: forms_common.py:409 models.py:1435 msgid "Other address: address" msgstr "Autre adresse : adresse" -#: forms_common.py:412 models.py:1432 +#: forms_common.py:412 models.py:1438 msgid "Other address: address complement" msgstr "Autre adresse : complément d'adresse" -#: forms_common.py:414 models.py:1433 +#: forms_common.py:414 models.py:1439 msgid "Other address: postal code" msgstr "Autre adresse : code postal" -#: forms_common.py:416 models.py:1435 +#: forms_common.py:416 models.py:1441 msgid "Other address: town" msgstr "Autre adresse : ville" -#: forms_common.py:418 models.py:1437 +#: forms_common.py:418 models.py:1443 msgid "Other address: country" msgstr "Autre adresse : pays" @@ -380,7 +382,7 @@ msgstr "Nom d'utilisateur" msgid "Account search" msgstr "Rechercher un compte" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2379 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2385 msgid "Person type" msgstr "Type de personne" @@ -388,7 +390,7 @@ msgstr "Type de personne" msgid "Account" msgstr "Compte" -#: forms_common.py:575 wizards.py:1217 +#: forms_common.py:575 wizards.py:1241 msgid "New password" msgstr "Nouveau mot de passe" @@ -412,7 +414,7 @@ msgstr "Ce nom d'utilisateur existe déjà." msgid "Send the new password by email?" msgstr "Envoyer le nouveau mot de passe par courriel ?" -#: forms_common.py:628 forms_common.py:641 models.py:2819 +#: forms_common.py:628 forms_common.py:641 models.py:2825 msgid "Towns" msgstr "Communes" @@ -428,7 +430,7 @@ msgstr "Seul un choix peut être coché." msgid "Documentation informations" msgstr "Information sur le document" -#: forms_common.py:775 forms_common.py:823 models.py:1997 models.py:2713 +#: forms_common.py:775 forms_common.py:823 models.py:2003 models.py:2719 msgid "Source type" msgstr "Type de document" @@ -440,37 +442,37 @@ msgstr "Référence" msgid "Internal reference" msgstr "Référence interne" -#: forms_common.py:783 models.py:2750 +#: forms_common.py:783 models.py:2756 msgid "Numerical ressource (web address)" msgstr "Ressource numérique (adresse web)" -#: forms_common.py:784 models.py:2752 +#: forms_common.py:784 models.py:2758 msgid "Receipt date" msgstr "Date de réception" -#: forms_common.py:786 models.py:2154 models.py:2754 +#: forms_common.py:786 models.py:2160 models.py:2760 msgid "Creation date" msgstr "Date de création" -#: forms_common.py:789 models.py:2757 +#: forms_common.py:789 models.py:2763 msgid "Receipt date in documentation" msgstr "Date de réception en documentation" -#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:627 -#: models.py:1891 models.py:2437 models.py:2764 +#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:633 +#: models.py:1897 models.py:2443 models.py:2770 msgid "Comment" msgstr "Commentaire" -#: forms_common.py:793 forms_common.py:826 models.py:1029 models.py:1649 -#: models.py:1823 models.py:1865 models.py:2763 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1035 models.py:1655 +#: models.py:1829 models.py:1871 models.py:2769 templates/sheet_ope.html:128 msgid "Description" msgstr "Description" -#: forms_common.py:796 models.py:2765 +#: forms_common.py:796 models.py:2771 msgid "Additional information" msgstr "Informations supplémentaires" -#: forms_common.py:798 forms_common.py:830 models.py:2767 +#: forms_common.py:798 forms_common.py:830 models.py:2773 msgid "Has a duplicate" msgstr "Existe en doublon" @@ -487,7 +489,7 @@ msgstr "" "

      Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

      " -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2693 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2699 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "Auteur" @@ -500,7 +502,7 @@ msgstr "Informations complémentaires" msgid "Would you like to delete this documentation?" msgstr "Voulez-vous supprimer ce document ?" -#: forms_common.py:856 models.py:1998 models.py:2681 models.py:2690 +#: forms_common.py:856 models.py:2004 models.py:2687 models.py:2696 msgid "Author type" msgstr "Type d'auteur" @@ -512,7 +514,7 @@ msgstr "Sélection d'auteur" msgid "There are identical authors." msgstr "Il y a des auteurs identiques." -#: forms_common.py:893 models.py:2694 models.py:2746 +#: forms_common.py:893 models.py:2700 models.py:2752 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -530,7 +532,7 @@ msgstr "Ajout/modification" msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:39 models.py:1155 views.py:1513 +#: ishtar_menu.py:39 models.py:1161 views.py:1514 msgid "Global variables" msgstr "Variables globales" @@ -558,15 +560,15 @@ msgstr "Fusion automatique" msgid "Manual merge" msgstr "Fusion manuelle" -#: ishtar_menu.py:109 models.py:2165 +#: ishtar_menu.py:109 models.py:2171 msgid "Imports" msgstr "Imports" -#: ishtar_menu.py:112 views.py:1521 +#: ishtar_menu.py:112 views.py:1522 msgid "New import" msgstr "Nouvel import" -#: ishtar_menu.py:116 views.py:1535 +#: ishtar_menu.py:116 views.py:1536 msgid "Current imports" msgstr "Imports en cours" @@ -586,7 +588,7 @@ msgstr "Un élément sélectionné n'est pas valide." msgid "This item already exists." msgstr "Cet élément existe déjà." -#: models.py:318 models.py:626 models.py:1394 models.py:1406 models.py:1820 +#: models.py:318 models.py:632 models.py:1400 models.py:1412 models.py:1826 msgid "Label" msgstr "Libellé" @@ -594,83 +596,83 @@ msgstr "Libellé" msgid "Textual ID" msgstr "Identifiant textuel" -#: models.py:323 models.py:629 models.py:1363 +#: models.py:323 models.py:635 models.py:1369 msgid "Available" msgstr "Disponible" -#: models.py:648 models.py:1937 +#: models.py:654 models.py:1943 msgid "Key" msgstr "Clé" -#: models.py:654 +#: models.py:660 msgid "Specific key to an import" msgstr "Clé spécifique à un import" -#: models.py:746 +#: models.py:752 msgid "Last editor" msgstr "Dernier éditeur" -#: models.py:749 +#: models.py:755 msgid "Creator" msgstr "Créateur" -#: models.py:891 models.py:2830 +#: models.py:897 models.py:2836 msgid "Order" msgstr "Ordre" -#: models.py:892 +#: models.py:898 msgid "Symmetrical" msgstr "Symétrique" -#: models.py:893 +#: models.py:899 msgid "Tiny label" msgstr "Libellé court" -#: models.py:907 +#: models.py:913 msgid "Cannot have symmetrical and an inverse_relation" msgstr "Ne peut pas être symétrique et avoir une relation inverse" -#: models.py:1021 +#: models.py:1027 msgid "Euro" msgstr "Euro" -#: models.py:1022 +#: models.py:1028 msgid "US dollar" msgstr "Dollars US" -#: models.py:1028 models.py:1647 +#: models.py:1034 models.py:1653 msgid "Slug" msgstr "Identifiant texte" -#: models.py:1030 +#: models.py:1036 msgid "Files module" msgstr "Module Dossiers" -#: models.py:1031 +#: models.py:1037 msgid "Context records module" msgstr "Module Unités d'Enregistrement" -#: models.py:1033 +#: models.py:1039 msgid "Finds module" msgstr "Module Mobilier" -#: models.py:1034 +#: models.py:1040 msgid "Need context records module" msgstr "Nécessite le module Unités d'Enregistrement" -#: models.py:1036 +#: models.py:1042 msgid "Warehouses module" msgstr "Module Dépôts" -#: models.py:1037 +#: models.py:1043 msgid "Need finds module" msgstr "Nécessite le module mobilier" -#: models.py:1039 +#: models.py:1045 msgid "Home page" msgstr "Page d'accueil" -#: models.py:1040 +#: models.py:1046 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " @@ -680,11 +682,11 @@ msgstr "" "défaut apparaît. Utiliser la syntaxe Markdown. {random_image} peut être " "utilisé pour afficher une image au hasard." -#: models.py:1044 +#: models.py:1050 msgid "File external id" msgstr "Identifiant externe de fichier" -#: models.py:1046 +#: models.py:1052 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -694,11 +696,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1051 +#: models.py:1057 msgid "Parcel external id" msgstr "Identifiant externe de parcelle" -#: models.py:1054 +#: models.py:1060 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -708,11 +710,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1059 +#: models.py:1065 msgid "Context record external id" msgstr "Identifiant externe d'unité d'enregistrement" -#: models.py:1061 +#: models.py:1067 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -722,11 +724,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1066 +#: models.py:1072 msgid "Base find external id" msgstr "Identifiant externe de mobilier de base" -#: models.py:1068 +#: models.py:1074 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -736,11 +738,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1073 +#: models.py:1079 msgid "Find external id" msgstr "Identifiant externe de mobilier" -#: models.py:1075 +#: models.py:1081 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -750,11 +752,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1080 +#: models.py:1086 msgid "Raw name for person" msgstr "Nom brut pour une personne" -#: models.py:1082 +#: models.py:1088 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -764,43 +766,43 @@ msgstr "" "Une formule incorrecte peut rendre l'application inutilisable et l'import de " "données externes peut alors être destructif." -#: models.py:1086 +#: models.py:1092 msgid "Current active" msgstr "Actuellement utilisé" -#: models.py:1087 +#: models.py:1093 msgid "Currency" msgstr "Devise" -#: models.py:1091 +#: models.py:1097 msgid "Ishtar site profile" msgstr "Profil d'instance Ishtar" -#: models.py:1092 +#: models.py:1098 msgid "Ishtar site profiles" msgstr "Profils d'instance Ishtar" -#: models.py:1148 +#: models.py:1154 msgid "Variable name" msgstr "Nom de la variable" -#: models.py:1149 +#: models.py:1155 msgid "Description of the variable" msgstr "Description de la variable" -#: models.py:1151 models.py:1938 +#: models.py:1157 models.py:1944 msgid "Value" msgstr "Valeur" -#: models.py:1154 +#: models.py:1160 msgid "Global variable" msgstr "Variable globale" -#: models.py:1264 models.py:1294 +#: models.py:1270 models.py:1300 msgid "Total" msgstr "Total" -#: models.py:1271 models.py:1395 models.py:1407 +#: models.py:1277 models.py:1401 models.py:1413 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -808,611 +810,611 @@ msgstr "Total" msgid "Number" msgstr "Nombre" -#: models.py:1358 +#: models.py:1364 msgid "Administrative Act" msgstr "Acte administratif" -#: models.py:1362 +#: models.py:1368 msgid "Associated object" msgstr "Objet associé" -#: models.py:1366 +#: models.py:1372 msgid "Document template" msgstr "Patron de document" -#: models.py:1367 +#: models.py:1373 msgid "Document templates" msgstr "Patrons de document" -#: models.py:1398 models.py:1408 models.py:2149 +#: models.py:1404 models.py:1414 models.py:2155 msgid "State" msgstr "État" -#: models.py:1412 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1418 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "Département" -#: models.py:1413 +#: models.py:1419 msgid "Departments" msgstr "Départements" -#: models.py:1450 +#: models.py:1456 msgid "Raw phone" msgstr "Téléphone brut" -#: models.py:1456 +#: models.py:1462 msgid "Alternative address is prefered" msgstr "L'adresse alternative est préférée" -#: models.py:1495 +#: models.py:1501 msgid "Tel: " msgstr "Tél :" -#: models.py:1499 +#: models.py:1505 msgid "Mobile: " msgstr "Mobile :" -#: models.py:1503 +#: models.py:1509 msgid "Email: " msgstr "Courriel :" -#: models.py:1508 +#: models.py:1514 msgid "Merge key" msgstr "Clé de fusion" -#: models.py:1582 +#: models.py:1588 msgid "Organization types" msgstr "Types d'organisation" -#: models.py:1601 views.py:237 +#: models.py:1607 views.py:237 msgid "Operation" msgstr "Opération" -#: models.py:1603 +#: models.py:1609 msgid "Archaeological site" msgstr "Entité Archéologique" -#: models.py:1604 +#: models.py:1610 msgid "Parcels" msgstr "Parcelles" -#: models.py:1606 +#: models.py:1612 msgid "Operation source" msgstr "Documentation de l'opération" -#: models.py:1609 views.py:1329 views.py:1379 +#: models.py:1615 views.py:1330 views.py:1380 msgid "Archaeological files" msgstr "Dossiers" -#: models.py:1611 views.py:1332 views.py:1387 +#: models.py:1617 views.py:1333 views.py:1388 msgid "Context records" msgstr "Unités d'Enregistrement" -#: models.py:1613 +#: models.py:1619 msgid "Context record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:1615 +#: models.py:1621 msgid "Base finds" msgstr "Mobilier de base" -#: models.py:1651 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1657 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "Utilisateurs" -#: models.py:1653 +#: models.py:1659 msgid "Associated model" msgstr "Modèle associé" -#: models.py:1656 +#: models.py:1662 msgid "Is template" msgstr "Est un patron" -#: models.py:1657 +#: models.py:1663 msgid "Unicity keys (separator \";\")" msgstr "Clés d'unicité (séparateur « ; »)" -#: models.py:1661 +#: models.py:1667 msgid "Importer - Type" msgstr "Importeur - Type" -#: models.py:1662 +#: models.py:1668 msgid "Importer - Types" msgstr "Importeur - Types" -#: models.py:1752 +#: models.py:1758 msgid "Importer - Default" msgstr "Importeur - Par défaut" -#: models.py:1753 +#: models.py:1759 msgid "Importer - Defaults" msgstr "Importeur - Par défaut" -#: models.py:1788 +#: models.py:1794 msgid "Importer - Default value" msgstr "Importeur - Valeur par défaut" -#: models.py:1789 +#: models.py:1795 msgid "Importer - Default values" msgstr "Importeur - Valeurs par défaut" -#: models.py:1822 +#: models.py:1828 msgid "Column number" msgstr "Numéro de colonne" -#: models.py:1825 +#: models.py:1831 msgid "Required" msgstr "Requis" -#: models.py:1828 +#: models.py:1834 msgid "Importer - Column" msgstr "Importeur - Colonne" -#: models.py:1829 +#: models.py:1835 msgid "Importer - Columns" msgstr "Importeur - Colonnes" -#: models.py:1849 +#: models.py:1855 msgid "Field name" msgstr "Nom du champ" -#: models.py:1851 models.py:1885 +#: models.py:1857 models.py:1891 msgid "Force creation of new items" msgstr "Forcer la création de nouveaux éléments" -#: models.py:1853 models.py:1887 +#: models.py:1859 models.py:1893 msgid "Concatenate with existing" msgstr "Concaténer avec l'existant" -#: models.py:1855 models.py:1889 +#: models.py:1861 models.py:1895 msgid "Concatenate character" msgstr "Caractère de concaténation" -#: models.py:1859 +#: models.py:1865 msgid "Importer - Duplicate field" msgstr "Importeur - Champ dupliqué" -#: models.py:1860 +#: models.py:1866 msgid "Importer - Duplicate fields" msgstr "Importeur - Champs dupliqués" -#: models.py:1867 +#: models.py:1873 msgid "Regular expression" msgstr "Expression régulière" -#: models.py:1870 +#: models.py:1876 msgid "Importer - Regular expression" msgstr "Importeur - Expression régulière" -#: models.py:1871 +#: models.py:1877 msgid "Importer - Regular expressions" msgstr "Importeur - Expressions régulières" -#: models.py:1894 +#: models.py:1900 msgid "Importer - Target" msgstr "Importeur - Cible" -#: models.py:1895 +#: models.py:1901 msgid "Importer - Targets" msgstr "Importeur - Cibles" -#: models.py:1919 views.py:520 +#: models.py:1925 views.py:520 msgid "True" msgstr "Oui" -#: models.py:1920 views.py:522 +#: models.py:1926 views.py:522 msgid "False" msgstr "Non" -#: models.py:1939 +#: models.py:1945 msgid "Is set" msgstr "Est défini" -#: models.py:1946 +#: models.py:1952 msgid "Importer - Target key" msgstr "Importeur - Clé de rapprochement" -#: models.py:1947 +#: models.py:1953 msgid "Importer - Targets keys" msgstr "Importeur - Clés de rapprochement" -#: models.py:1999 models.py:2729 models.py:2742 +#: models.py:2005 models.py:2735 models.py:2748 msgid "Format" msgstr "Format" -#: models.py:2000 models.py:2834 +#: models.py:2006 models.py:2840 msgid "Operation type" msgstr "Type d'opération" -#: models.py:2001 +#: models.py:2007 msgid "Period" msgstr "Périodes" -#: models.py:2002 +#: models.py:2008 msgid "Report state" msgstr "État de rapport" -#: models.py:2003 +#: models.py:2009 msgid "Remain type" msgstr "Type de vestige" -#: models.py:2004 +#: models.py:2010 msgid "Unit" msgstr "Unité" -#: models.py:2005 +#: models.py:2011 msgid "Activity type" msgstr "Type d'activité" -#: models.py:2006 +#: models.py:2012 msgid "Material" msgstr "Matériau" -#: models.py:2008 +#: models.py:2014 msgid "Conservatory state" msgstr "État de conservation" -#: models.py:2009 +#: models.py:2015 msgid "Preservation type" msgstr "Type de conservation" -#: models.py:2010 +#: models.py:2016 msgid "Object type" msgstr "Type d'objet" -#: models.py:2012 +#: models.py:2018 msgid "Identification type" msgstr "Type d'identification" -#: models.py:2014 +#: models.py:2020 msgid "Context record relation type" msgstr "Type de relations entre Unités d'Enregistrement" -#: models.py:2015 models.py:2721 +#: models.py:2021 models.py:2727 msgid "Support type" msgstr "Type de support" -#: models.py:2021 +#: models.py:2027 msgid "Integer" msgstr "Entier" -#: models.py:2022 +#: models.py:2028 msgid "Float" msgstr "Nombre à virgule" -#: models.py:2023 +#: models.py:2029 msgid "String" msgstr "Chaîne de caractères" -#: models.py:2024 templates/sheet_ope.html:86 +#: models.py:2030 templates/sheet_ope.html:86 msgid "Date" msgstr "Date" -#: models.py:2026 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2032 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "Année" -#: models.py:2027 +#: models.py:2033 msgid "String to boolean" msgstr "Chaîne de caractères vers booléen" -#: models.py:2028 +#: models.py:2034 msgctxt "filesystem" msgid "File" msgstr "Fichier" -#: models.py:2029 +#: models.py:2035 msgid "Unknow type" msgstr "Type inconnu" -#: models.py:2045 +#: models.py:2051 msgid "4 digit year. e.g.: \"2015\"" msgstr "Année sur 4 chiffres. Exemple : « 2015 »" -#: models.py:2046 +#: models.py:2052 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "Année sur 4 chiffres/mois/jour. Exemple : « 2015/02/04 »" -#: models.py:2047 +#: models.py:2053 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "Jour/mois/année sur 4 chiffres. Exemple : « 04/02/2015 »" -#: models.py:2057 +#: models.py:2063 msgid "Options" msgstr "Options" -#: models.py:2059 +#: models.py:2065 msgid "Split character(s)" msgstr "Caractère(s) de séparation" -#: models.py:2063 +#: models.py:2069 msgid "Importer - Formater type" msgstr "Importeur - Type de mise en forme" -#: models.py:2064 +#: models.py:2070 msgid "Importer - Formater types" msgstr "Importeur - Types de mise en forme" -#: models.py:2113 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2119 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "Créé" -#: models.py:2114 +#: models.py:2120 msgid "Analyse in progress" msgstr "Analyse en cours" -#: models.py:2115 +#: models.py:2121 msgid "Analysed" msgstr "Analysé" -#: models.py:2116 +#: models.py:2122 msgid "Import pending" msgstr "Import en attente" -#: models.py:2117 +#: models.py:2123 msgid "Import in progress" msgstr "Import en cours" -#: models.py:2118 +#: models.py:2124 msgid "Finished with errors" msgstr "Terminé avec des erreurs" -#: models.py:2119 +#: models.py:2125 msgid "Finished" msgstr "Terminé" -#: models.py:2120 +#: models.py:2126 msgid "Archived" msgstr "Archivé" -#: models.py:2132 +#: models.py:2138 msgid "Imported file" msgstr "Fichier importé" -#: models.py:2135 +#: models.py:2141 msgid "Associated images (zip file)" msgstr "Images associées (fichier zip)" -#: models.py:2137 +#: models.py:2143 msgid "Encoding" msgstr "Codage" -#: models.py:2139 +#: models.py:2145 msgid "Skip lines" msgstr "Nombre de lignes d'entête" -#: models.py:2140 templates/ishtar/import_list.html:47 +#: models.py:2146 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "Fichier erreur" -#: models.py:2143 +#: models.py:2149 msgid "Result file" msgstr "Fichier résultant" -#: models.py:2146 templates/ishtar/import_list.html:53 +#: models.py:2152 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "Fichier de correspondance" -#: models.py:2152 +#: models.py:2158 msgid "Conservative import" msgstr "Import conservateur" -#: models.py:2157 +#: models.py:2163 msgid "End date" msgstr "Date de fin" -#: models.py:2159 +#: models.py:2165 msgid "Remaining seconds" msgstr "Secondes restantes" -#: models.py:2164 +#: models.py:2170 msgid "Import" msgstr "Import" -#: models.py:2181 +#: models.py:2187 msgid "Analyse" msgstr "Analyser" -#: models.py:2183 models.py:2186 +#: models.py:2189 models.py:2192 msgid "Re-analyse" msgstr "Analyser de nouveau " -#: models.py:2184 +#: models.py:2190 msgid "Launch import" msgstr "Lancer l'import" -#: models.py:2187 +#: models.py:2193 msgid "Re-import" msgstr "Ré-importer" -#: models.py:2188 +#: models.py:2194 msgid "Archive" msgstr "Archiver" -#: models.py:2190 +#: models.py:2196 msgid "Unarchive" msgstr "Désarchiver" -#: models.py:2191 widgets.py:110 templates/ishtar/form_delete.html:11 +#: models.py:2197 widgets.py:129 templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "Supprimer" -#: models.py:2332 +#: models.py:2338 msgid "Organizations" msgstr "Organisations" -#: models.py:2334 +#: models.py:2340 msgid "Can view all Organizations" msgstr "Peut voir toutes les Organisations" -#: models.py:2335 +#: models.py:2341 msgid "Can view own Organization" msgstr "Peut voir sa propre Organisation" -#: models.py:2336 +#: models.py:2342 msgid "Can add own Organization" msgstr "Peut ajouter sa propre Organisation" -#: models.py:2338 +#: models.py:2344 msgid "Can change own Organization" msgstr "Peut modifier sa propre Organisation" -#: models.py:2340 +#: models.py:2346 msgid "Can delete own Organization" msgstr "Peut supprimer sa propre Organisation" -#: models.py:2375 +#: models.py:2381 msgid "Groups" msgstr "Groupes" -#: models.py:2380 +#: models.py:2386 msgid "Person types" msgstr "Types de personne" -#: models.py:2391 +#: models.py:2397 msgid "Title type" msgstr "Type de titre" -#: models.py:2392 +#: models.py:2398 msgid "Title types" msgstr "Types de titre" -#: models.py:2401 +#: models.py:2407 msgid "Mr" msgstr "M." -#: models.py:2402 +#: models.py:2408 msgid "Miss" msgstr "Mlle" -#: models.py:2403 +#: models.py:2409 msgid "Mr and Mrs" msgstr "M. et Mme" -#: models.py:2404 +#: models.py:2410 msgid "Mrs" msgstr "Mme" -#: models.py:2405 +#: models.py:2411 msgid "Doctor" msgstr "Dr." -#: models.py:2435 +#: models.py:2441 msgid "Contact type" msgstr "Type de contact" -#: models.py:2438 models.py:2502 +#: models.py:2444 models.py:2508 msgid "Types" msgstr "Types" -#: models.py:2441 +#: models.py:2447 msgid "Is attached to" msgstr "Est rattaché à" -#: models.py:2446 +#: models.py:2452 msgid "Persons" msgstr "Personnes" -#: models.py:2448 +#: models.py:2454 msgid "Can view all Persons" msgstr "Peut voir toutes les Personnes" -#: models.py:2449 +#: models.py:2455 msgid "Can view own Person" msgstr "Peut voir sa propre Personne" -#: models.py:2450 +#: models.py:2456 msgid "Can add own Person" msgstr "Peut ajouter sa propre Personne" -#: models.py:2451 +#: models.py:2457 msgid "Can change own Person" msgstr "Peut modifier sa propre Personne" -#: models.py:2452 +#: models.py:2458 msgid "Can delete own Person" msgstr "Peut supprimer sa propre Personne" -#: models.py:2630 +#: models.py:2636 msgid "Advanced shortcut menu" msgstr "Menu de raccourci (avancé)" -#: models.py:2633 +#: models.py:2639 msgid "Ishtar user" msgstr "Utilisateur d'Ishtar" -#: models.py:2634 +#: models.py:2640 msgid "Ishtar users" msgstr "Utilisateurs d'Ishtar" -#: models.py:2676 +#: models.py:2682 msgid "To modify the password use the form in Auth > User" msgstr "" "Pour modifier le mot de passe, utilisez le formulaire dans Authentification " "> Utilisateurs" -#: models.py:2682 +#: models.py:2688 msgid "Author types" msgstr "Types d'auteur" -#: models.py:2714 +#: models.py:2720 msgid "Source types" msgstr "Types de document" -#: models.py:2722 +#: models.py:2728 msgid "Support types" msgstr "Types de support" -#: models.py:2730 +#: models.py:2736 msgid "Formats" msgstr "Formats" -#: models.py:2737 +#: models.py:2743 msgid "External ID" msgstr "Identifiant externe" -#: models.py:2740 +#: models.py:2746 msgid "Support" msgstr "Support" -#: models.py:2744 +#: models.py:2750 msgid "Scale" msgstr "Échelle" -#: models.py:2758 +#: models.py:2764 msgid "Item number" msgstr "Numéro d'élément" -#: models.py:2759 +#: models.py:2765 msgid "Ref." msgstr "Réf." -#: models.py:2762 +#: models.py:2768 msgid "Internal ref." msgstr "Réf. interne" -#: models.py:2805 +#: models.py:2811 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:2806 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2812 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "Localisation" -#: models.py:2831 +#: models.py:2837 msgid "Is preventive" msgstr "Est du préventif" -#: models.py:2835 +#: models.py:2841 msgid "Operation types" msgstr "Types d'opération" -#: models.py:2864 +#: models.py:2870 msgid "Preventive" msgstr "Préventif" -#: models.py:2865 +#: models.py:2871 msgid "Research" msgstr "Programmé" @@ -1468,64 +1470,64 @@ msgstr "Unité d'Enregistrement" msgid "Find" msgstr "Mobilier" -#: views.py:1268 views.py:1311 +#: views.py:1269 views.py:1312 msgid "Operation not permitted." msgstr "Opération non permise." -#: views.py:1270 +#: views.py:1271 #, python-format msgid "New %s" msgstr "Nouveau %s" -#: views.py:1330 views.py:1383 +#: views.py:1331 views.py:1384 msgid "Operations" msgstr "Opérations" -#: views.py:1334 views.py:1390 +#: views.py:1335 views.py:1391 msgid "Finds" msgstr "Mobilier" -#: views.py:1582 templates/ishtar/import_list.html:43 +#: views.py:1583 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "Associer les éléments non rapprochés" -#: views.py:1597 +#: views.py:1598 msgid "Delete import" msgstr "Supprimer un import" -#: views.py:1636 +#: views.py:1637 msgid "Merge persons" msgstr "Fusionner des personnes" -#: views.py:1660 +#: views.py:1661 msgid "Select the main person" msgstr "Choisir la personne principale" -#: views.py:1669 +#: views.py:1670 msgid "Merge organization" msgstr "Fusionner des organisations" -#: views.py:1679 +#: views.py:1680 msgid "Select the main organization" msgstr "Sélectionner l'organisation principale" -#: views.py:1719 views.py:1735 +#: views.py:1720 views.py:1736 msgid "Corporation manager" msgstr "Représentant de la personne morale" -#: widgets.py:239 widgets.py:346 widgets.py:461 +#: widgets.py:258 widgets.py:365 widgets.py:480 msgid "Search..." msgstr "Recherche..." -#: widgets.py:643 templatetags/window_tables.py:81 +#: widgets.py:671 templatetags/window_tables.py:85 msgid "No results" msgstr "Pas de résultats" -#: widgets.py:644 templatetags/window_tables.py:82 +#: widgets.py:672 templatetags/window_tables.py:86 msgid "Loading..." msgstr "Chargement..." -#: widgets.py:645 +#: widgets.py:673 msgid "Remove" msgstr "Enlever" @@ -1537,7 +1539,7 @@ msgstr "Oui" msgid "No" msgstr "Non" -#: wizards.py:1274 +#: wizards.py:1298 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "[%(app_name)s] Création/modification du compte" @@ -1578,8 +1580,7 @@ msgstr "L'équipe %(app_name)s" #: templates/base.html:41 msgid "Searches in the shortcut menu deal with all items." -msgstr "" -"Les recherches dans le menu de raccourci concernent tous les éléments." +msgstr "Les recherches dans le menu de raccourci concernent tous les éléments." #: templates/base.html:42 msgid "Searches in the shortcut menu deal with only your items." @@ -1993,7 +1994,7 @@ msgstr "supprimer" #: templates/ishtar/import_list.html:58 templates/ishtar/merge.html:31 #: templates/ishtar/simple_form.html:7 #: templates/ishtar/wizard/confirm_wizard.html:42 -#: templates/ishtar/wizard/default_wizard.html:30 +#: templates/ishtar/wizard/default_wizard.html:31 #: templates/ishtar/wizard/search.html:13 #: templates/ishtar/wizard/validation_bar.html:4 msgid "Validate" @@ -2395,7 +2396,7 @@ msgstr "Vous avez entré les informations suivantes :" msgid "Would you like to save them?" msgstr "Voulez-vous sauvegarder ces informations ?" -#: templates/ishtar/wizard/default_wizard.html:36 +#: templates/ishtar/wizard/default_wizard.html:37 #: templates/ishtar/wizard/parcels_wizard.html:24 #: templates/ishtar/wizard/relations_wizard.html:23 #: templates/ishtar/wizard/search.html:20 @@ -2403,7 +2404,7 @@ msgstr "Voulez-vous sauvegarder ces informations ?" msgid "Add/Modify" msgstr "Ajouter/Modifier" -#: templates/ishtar/wizard/default_wizard.html:58 +#: templates/ishtar/wizard/default_wizard.html:59 msgid "" "The form has changed. If you don't validate it, all your changes will be " "lost." -- cgit v1.2.3 From 9c6bfb0cb898b974f0f1b741e78729e597996383 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 18 Dec 2016 10:35:20 +0100 Subject: Tests: change test order to fix strange initialization (temporary) --- archaeological_finds/tests.py | 94 +++++++++++++++++++++---------------------- ishtar_common/wizards.py | 3 -- 2 files changed, 47 insertions(+), 50 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 649e645b3..085671be3 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -175,53 +175,6 @@ class FindTest(FindInit, TestCase): base_find.label)) -class PackagingTest(FindInit, TestCase): - fixtures = [settings.ROOT_PATH + - '../fixtures/initial_data.json', - settings.ROOT_PATH + - '../ishtar_common/fixtures/initial_data.json', - settings.ROOT_PATH + - '../archaeological_files/fixtures/initial_data.json', - settings.ROOT_PATH + - '../archaeological_operations/fixtures/initial_data-fr.json', - settings.ROOT_PATH + - '../archaeological_finds/fixtures/initial_data-fr.json', - ] - model = models.Find - - def setUp(self): - self.create_finds({"label": u"Find 1"}, force=True) - self.create_finds({"label": u"Find 2"}, force=True) - self.basket = models.FindBasket.objects.create( - label="My basket", user=IshtarUser.objects.get( - pk=self.get_default_user().pk)) - self.other_basket = models.FindBasket.objects.create( - label="My other basket", user=IshtarUser.objects.get( - pk=self.get_default_user().pk)) - for find in self.finds: - self.basket.items.add(find) - self.other_basket.items.add(find) - - def testPackaging(self): - treatment_type = models.TreatmentType.objects.get(txt_idx='packaging') - treatment = models.Treatment() - items_nb = models.Find.objects.count() - treatment.save(user=self.get_default_user(), items=self.basket) - self.assertEqual(items_nb + self.basket.items.count(), - models.Find.objects.count(), - msg="Packaging doesn't generate enough new finds") - treatment.treatment_types.add(treatment_type) - # new version of the find is in the basket - for item in self.basket.items.all(): - self.assertNotIn( - item, self.finds, - msg="Original basket have not been upgraded after packaging") - for item in self.other_basket.items.all(): - self.assertNotIn( - item, self.finds, - msg="Other basket have not been upgraded after packaging") - - class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase): fixtures = [settings.ROOT_PATH + '../fixtures/initial_data.json', @@ -282,3 +235,50 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase): self.assertEqual(models.Treatment.objects.count(), self.treatment_number + 1) pass + + +class ZPackagingTest(FindInit, TestCase): + fixtures = [settings.ROOT_PATH + + '../fixtures/initial_data.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_files/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_operations/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../archaeological_finds/fixtures/initial_data-fr.json', + ] + model = models.Find + + def setUp(self): + self.create_finds({"label": u"Find 1"}, force=True) + self.create_finds({"label": u"Find 2"}, force=True) + self.basket = models.FindBasket.objects.create( + label="My basket", user=IshtarUser.objects.get( + pk=self.get_default_user().pk)) + self.other_basket = models.FindBasket.objects.create( + label="My other basket", user=IshtarUser.objects.get( + pk=self.get_default_user().pk)) + for find in self.finds: + self.basket.items.add(find) + self.other_basket.items.add(find) + + def testPackaging(self): + treatment_type = models.TreatmentType.objects.get(txt_idx='packaging') + treatment = models.Treatment() + items_nb = models.Find.objects.count() + treatment.save(user=self.get_default_user(), items=self.basket) + self.assertEqual(items_nb + self.basket.items.count(), + models.Find.objects.count(), + msg="Packaging doesn't generate enough new finds") + treatment.treatment_types.add(treatment_type) + # new version of the find is in the basket + for item in self.basket.items.all(): + self.assertNotIn( + item, self.finds, + msg="Original basket have not been upgraded after packaging") + for item in self.other_basket.items.all(): + self.assertNotIn( + item, self.finds, + msg="Other basket have not been upgraded after packaging") diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 6439a85c0..2fbe30e0e 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -562,18 +562,15 @@ class Wizard(NamedUrlWizardView): for k in saved_args: if k in dct: saved_args[k] = dct.pop(k) - print(dct) obj = self.get_saved_model()(**dct) if hasattr(obj, 'pre_save'): obj.pre_save() try: obj.full_clean() except ValidationError as e: - print(e) logger.warning(unicode(e)) return self.render(form_list[-1]) obj.save(**saved_args) - print("hop") for k in adds: getattr(obj, k).add(adds[k]) # necessary to manage interaction between models like -- cgit v1.2.3 From f42ea0f49a4d5c5a6cb15758d2bc8edaacc49ec3 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 18 Dec 2016 18:34:43 +0100 Subject: Containers / Warehouse: actions, sheets and fixes. --- archaeological_finds/models_finds.py | 2 +- archaeological_finds/models_treatments.py | 2 ++ archaeological_warehouse/forms.py | 6 ---- archaeological_warehouse/ishtar_menu.py | 21 ++++++------ archaeological_warehouse/models.py | 38 ++++++++++++++++++++-- .../templates/ishtar/sheet_container.html | 21 ++++++++++++ .../templates/ishtar/sheet_container_pdf.html | 18 ++++++++++ .../templates/ishtar/sheet_container_window.html | 3 ++ .../templates/ishtar/sheet_warehouse.html | 21 ++++++++++++ .../templates/ishtar/sheet_warehouse_pdf.html | 18 ++++++++++ .../templates/ishtar/sheet_warehouse_window.html | 3 ++ archaeological_warehouse/urls.py | 5 +++ archaeological_warehouse/views.py | 5 ++- archaeological_warehouse/wizards.py | 14 ++++++-- ishtar_common/templatetags/window_tables.py | 3 ++ ishtar_common/wizards.py | 4 +-- 16 files changed, 159 insertions(+), 25 deletions(-) create mode 100644 archaeological_warehouse/templates/ishtar/sheet_container.html create mode 100644 archaeological_warehouse/templates/ishtar/sheet_container_pdf.html create mode 100644 archaeological_warehouse/templates/ishtar/sheet_container_window.html create mode 100644 archaeological_warehouse/templates/ishtar/sheet_warehouse.html create mode 100644 archaeological_warehouse/templates/ishtar/sheet_warehouse_pdf.html create mode 100644 archaeological_warehouse/templates/ishtar/sheet_warehouse_window.html (limited to 'ishtar_common') diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 1f55ee1a0..be6037eaa 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -291,7 +291,7 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): CHECK_DICT = dict(CHECK_CHOICES) SHOW_URL = 'show-find' SLUG = 'find' - TABLE_COLS = ['label', 'material_types', 'datings__period', + TABLE_COLS = ['label', 'material_types', 'datings__period__label', 'base_finds__context_record__parcel__town', 'base_finds__context_record__operation__year', 'base_finds__context_record__operation__operation_code', diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 8de10c417..95817fc40 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -362,6 +362,8 @@ class TreatmentFileType(GeneralType): verbose_name = _(u"Treatment file type") verbose_name_plural = _(u"Treatment file types") ordering = ('label',) +post_save.connect(post_save_cache, sender=TreatmentFileType) +post_delete.connect(post_save_cache, sender=TreatmentFileType) class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter): diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index 8e0328880..4ed8e7aed 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -200,7 +200,6 @@ class BasePackagingForm(SelectFindBasketForm): 'person': Person, 'location': models.Warehouse, 'basket': FindBasket} - treatment_type = forms.IntegerField(label="", widget=forms.HiddenInput) person = forms.IntegerField( label=_(u"Packager"), widget=widgets.JQueryAutoComplete( @@ -210,11 +209,6 @@ class BasePackagingForm(SelectFindBasketForm): start_date = forms.DateField( label=_(u"Date"), required=False, widget=widgets.JQueryDate) - def __init__(self, *args, **kwargs): - super(BasePackagingForm, self).__init__(*args, **kwargs) - self.fields['treatment_type'].initial = \ - TreatmentType.objects.get(txt_idx='packaging').pk - class FindPackagingFormSelection(FindMultipleFormSelection): form_label = _(u"Packaged finds") diff --git a/archaeological_warehouse/ishtar_menu.py b/archaeological_warehouse/ishtar_menu.py index 4fe84e516..7f182d02b 100644 --- a/archaeological_warehouse/ishtar_menu.py +++ b/archaeological_warehouse/ishtar_menu.py @@ -37,16 +37,17 @@ MENU_SECTIONS = [ access_controls=['add_treatment', 'add_own_treatment']), ])), (80, SectionItem('warehouse', _(u"Warehouse"), - childs=[ - MenuItem('warehouse_creation', _(u"Creation"), - model=models.Warehouse, - access_controls=['add_warehouse',]), - MenuItem('warehouse_modification', _(u"Modification"), - model=models.Warehouse, - access_controls=['change_warehouse',]), - MenuItem('container_localisation', _(u"Container localisation"), - model=models.Warehouse, - access_controls=['change_warehouse',]), + profile_restriction='warehouse', + childs=[ + MenuItem('warehouse_creation', _(u"Creation"), + model=models.Warehouse, + access_controls=['add_warehouse',]), + MenuItem('warehouse_modification', _(u"Modification"), + model=models.Warehouse, + access_controls=['change_warehouse',]), + MenuItem('container_localisation', _(u"Container localisation"), + model=models.Warehouse, + access_controls=['change_warehouse',]), ])) ] """ diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 57068f374..0872df220 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -17,8 +17,11 @@ # See the file COPYING for details. -from django.db.models.signals import post_save, post_delete +import datetime + from django.contrib.gis.db import models +from django.db.models.signals import post_save, post_delete +from django.template.defaultfilters import slugify from django.utils.translation import ugettext_lazy as _, ugettext from ishtar_common.models import GeneralType, \ @@ -35,6 +38,7 @@ post_delete.connect(post_save_cache, sender=WarehouseType) class Warehouse(Address, OwnPerms): + SHOW_URL = 'show-warehouse' name = models.CharField(_(u"Name"), max_length=200) warehouse_type = models.ForeignKey(WarehouseType, verbose_name=_(u"Warehouse type")) @@ -63,11 +67,18 @@ class Warehouse(Address, OwnPerms): def __unicode__(self): return u"%s (%s)" % (self.name, unicode(self.warehouse_type)) + @property + def associated_filename(self): + return datetime.date.today().strftime('%Y-%m-%d') + '-' + \ + slugify(unicode(self)) + class WarehouseDivision(GeneralType): class Meta: verbose_name = _(u"Warehouse division") verbose_name_plural = _(u"Warehouse divisions") +post_save.connect(post_save_cache, sender=WarehouseDivision) +post_delete.connect(post_save_cache, sender=WarehouseDivision) class WarehouseDivisionLink(models.Model): @@ -80,6 +91,9 @@ class WarehouseDivisionLink(models.Model): ordering = ('warehouse', 'order') unique_together = ('warehouse', 'division') + def __unicode__(self): + return u"{} - {}".format(self.warehouse, self.division) + class ContainerType(GeneralType): length = models.IntegerField(_(u"Length (mm)"), blank=True, null=True) @@ -105,9 +119,11 @@ class Container(LightHistorizedItem): 'container_type': 'container_type__pk', 'reference': 'reference__icontains', } + SHOW_URL = 'show-container' # fields - location = models.ForeignKey(Warehouse, verbose_name=_(u"Warehouse")) + location = models.ForeignKey(Warehouse, verbose_name=_(u"Warehouse"), + related_name='containers') container_type = models.ForeignKey(ContainerType, verbose_name=_("Container type")) reference = models.CharField(_(u"Container ref."), max_length=40) @@ -122,6 +138,23 @@ class Container(LightHistorizedItem): unicode(self.location))) return lbl + @property + def associated_filename(self): + return datetime.date.today().strftime('%Y-%m-%d') + '-' + \ + "-".join([str(slugify(getattr(self, attr))) + for attr in ('location', 'container_type', + 'reference')]) + + @property + def precise_location(self): + location = unicode(self.location) + locas = [ + u"{} {}".format(loca.division.division, loca.reference) + for loca in ContainerLocalisation.objects.filter( + container=self) + ] + return location + u" - " + u", ".join(locas) + class ContainerLocalisation(models.Model): container = models.ForeignKey(Container, verbose_name=_(u"Container")) @@ -133,6 +166,7 @@ class ContainerLocalisation(models.Model): verbose_name = _(u"Container localisation") verbose_name_plural = _(u"Container localisations") unique_together = ('container', 'division') + ordering = ('container', 'division__order') def __unicode__(self): lbl = u" - ".join((unicode(self.container), diff --git a/archaeological_warehouse/templates/ishtar/sheet_container.html b/archaeological_warehouse/templates/ishtar/sheet_container.html new file mode 100644 index 000000000..fd3c6510a --- /dev/null +++ b/archaeological_warehouse/templates/ishtar/sheet_container.html @@ -0,0 +1,21 @@ +{% extends "ishtar/sheet.html" %} +{% load i18n window_header window_field window_tables %} + +{% block head_title %}{% trans "Container" %}{% endblock %} + +{% block content %} +{% window_nav item window_id 'show-container' '' '' '' previous next 1 %} + +
        + {% field_li "Reference" item.reference %} + {% field_li "Container type" item.container_type %} +
      +{% field "Comment" item.comment "
      " "
      " %} +{% field "Location" item.precise_location %} + +{% if item.finds.count %} +

      {% trans "Content" %}

      +{% dynamic_table_document finds 'finds' 'container' item.pk 'TABLE_COLS' output 'large' %} +{% endif %} + +{% endblock %} diff --git a/archaeological_warehouse/templates/ishtar/sheet_container_pdf.html b/archaeological_warehouse/templates/ishtar/sheet_container_pdf.html new file mode 100644 index 000000000..5e4947cfa --- /dev/null +++ b/archaeological_warehouse/templates/ishtar/sheet_container_pdf.html @@ -0,0 +1,18 @@ +{% extends "ishtar/sheet_container.html" %} +{% block header %} + +{% endblock %} +{% block main_head %} +{{ block.super }} +
      +Ishtar – {{APP_NAME}} – {{item}} +
      +{% endblock %} +{%block head_sheet%}{%endblock%} +{%block main_foot%} +
      +– – +
      + + +{%endblock%} diff --git a/archaeological_warehouse/templates/ishtar/sheet_container_window.html b/archaeological_warehouse/templates/ishtar/sheet_container_window.html new file mode 100644 index 000000000..28aeaf9aa --- /dev/null +++ b/archaeological_warehouse/templates/ishtar/sheet_container_window.html @@ -0,0 +1,3 @@ +{% extends "ishtar/sheet_container.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} diff --git a/archaeological_warehouse/templates/ishtar/sheet_warehouse.html b/archaeological_warehouse/templates/ishtar/sheet_warehouse.html new file mode 100644 index 000000000..6304dc3a5 --- /dev/null +++ b/archaeological_warehouse/templates/ishtar/sheet_warehouse.html @@ -0,0 +1,21 @@ +{% extends "ishtar/sheet.html" %} +{% load i18n window_header window_field window_tables %} + +{% block head_title %}{% trans "Warehouse" %}{% endblock %} + +{% block content %} +{% window_nav item window_id 'show-warehouse' '' '' '' previous next 1 %} + +
        + {% field_li "Name" item.name %} + {% field_li "Warehouse type" item.warehouse_type %} + {% field_li "Person in charge" item.person_in_charge %} +
      +{% field "Comment" item.comment "
      " "
      " %} + +{% if item.containers.count %} +

      {% trans "Containers" %}

      +{% dynamic_table_document '' 'containers' 'location' item.pk 'TABLE_COLS' output 'large' %} +{% endif %} + +{% endblock %} diff --git a/archaeological_warehouse/templates/ishtar/sheet_warehouse_pdf.html b/archaeological_warehouse/templates/ishtar/sheet_warehouse_pdf.html new file mode 100644 index 000000000..260834ac6 --- /dev/null +++ b/archaeological_warehouse/templates/ishtar/sheet_warehouse_pdf.html @@ -0,0 +1,18 @@ +{% extends "ishtar/sheet_warehouse.html" %} +{% block header %} + +{% endblock %} +{% block main_head %} +{{ block.super }} +
      +Ishtar – {{APP_NAME}} – {{item}} +
      +{% endblock %} +{%block head_sheet%}{%endblock%} +{%block main_foot%} +
      +– – +
      + + +{%endblock%} diff --git a/archaeological_warehouse/templates/ishtar/sheet_warehouse_window.html b/archaeological_warehouse/templates/ishtar/sheet_warehouse_window.html new file mode 100644 index 000000000..e77c2c2a3 --- /dev/null +++ b/archaeological_warehouse/templates/ishtar/sheet_warehouse_window.html @@ -0,0 +1,3 @@ +{% extends "ishtar/sheet_warehouse.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py index ab1437a04..5c18200db 100644 --- a/archaeological_warehouse/urls.py +++ b/archaeological_warehouse/urls.py @@ -21,6 +21,7 @@ from django.conf.urls.defaults import * from ishtar_common.wizards import check_rights import views +from archaeological_warehouse import models # be carreful: each check_rights must be relevant with ishtar_menu @@ -35,6 +36,8 @@ urlpatterns += patterns( 'archaeological_warehouse.views', url(r'new-warehouse/(?P.+)?/$', 'new_warehouse', name='new-warehouse'), + url(r'^show-warehouse(?:/(?P.+))?/(?P.+)?$', 'show_warehouse', + name=models.Warehouse.SHOW_URL), url(r'autocomplete-warehouse/$', 'autocomplete_warehouse', name='autocomplete-warehouse'), url(r'new-container/(?P.+)?/$', @@ -45,6 +48,8 @@ urlpatterns += patterns( name='get-warehouse'), url(r'autocomplete-container/?$', 'autocomplete_container', name='autocomplete-container'), + url(r'^show-container(?:/(?P.+))?/(?P.+)?$', 'show_container', + name=models.Container.SHOW_URL), url(r'^warehouse_creation/(?P.+)?$', check_rights(['add_warehouse'])( views.warehouse_creation_wizard), name='warehouse_creation'), diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index 1b9288ed1..5366aa53b 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -23,15 +23,18 @@ from django.db.models import Q from django.http import HttpResponse from django.utils.translation import ugettext_lazy as _ -from ishtar_common.views import get_item, new_item import models + +from ishtar_common.views import get_item, new_item, show_item from wizards import * from ishtar_common.forms import FinalForm from forms import * get_container = get_item(models.Container, 'get_container', 'container') +show_container = show_item(models.Container, 'container') get_warehouse = get_item(models.Warehouse, 'get_warehouse', 'warehouse') +show_warehouse = show_item(models.Warehouse, 'warehouse') new_warehouse = new_item(models.Warehouse, WarehouseForm) new_container = new_item(models.Container, ContainerForm) diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py index 407a58ad6..cfe5be4d4 100644 --- a/archaeological_warehouse/wizards.py +++ b/archaeological_warehouse/wizards.py @@ -17,13 +17,12 @@ # See the file COPYING for details. -from django.contrib.formtools.wizard.views import NamedUrlWizardView from django.shortcuts import render_to_response from django.template import RequestContext from ishtar_common.wizards import Wizard from archaeological_finds.wizards import TreatmentWizard -from archaeological_finds.models import Treatment +from archaeological_finds.models import Treatment, TreatmentType import models @@ -36,11 +35,20 @@ class PackagingWizard(TreatmentWizard): dct = self.get_extra_model(dct, form_list) obj = self.get_current_saved_object() dct['location'] = dct['container'].location - items = dct.pop('basket') + items = None + if 'items' in dct: + items = dct.pop('items') + if 'basket' in dct: + if not items: + items = dct.pop('basket') + else: + dct.pop('basket') treatment = Treatment(**dct) extra_args_for_new = {"container": dct['container']} treatment.save(items=items, user=self.request.user, extra_args_for_new=extra_args_for_new) + packaging = TreatmentType.objects.get(txt_idx='packaging') + treatment.treatment_types.add(packaging) res = render_to_response('ishtar/wizard/wizard_done.html', {}, context_instance=RequestContext(self.request)) return return_object and (obj, res) or res diff --git a/ishtar_common/templatetags/window_tables.py b/ishtar_common/templatetags/window_tables.py index 377b6e435..e9f628ab6 100644 --- a/ishtar_common/templatetags/window_tables.py +++ b/ishtar_common/templatetags/window_tables.py @@ -18,6 +18,7 @@ from archaeological_context_records.models import ContextRecord, \ ContextRecordSource, RecordRelations as CRRecordRelations from archaeological_finds.models import Find, FindSource, \ FindUpstreamTreatments, FindDownstreamTreatments, FindTreatments +from archaeological_warehouse.models import Container register = template.Library() @@ -55,6 +56,8 @@ ASSOCIATED_MODELS['finds_downstreamtreatments'] = ( FindDownstreamTreatments, 'get-downstreamtreatment', '') ASSOCIATED_MODELS['treatments'] = ( FindTreatments, 'get-treatment', '') +ASSOCIATED_MODELS['containers'] = ( + Container, 'get-container', '') @register.simple_tag(takes_context=True) diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 2fbe30e0e..6e5216c6a 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -647,8 +647,8 @@ class Wizard(NamedUrlWizardView): model.RELATIVE_MODELS: value[model.RELATIVE_MODELS[ self.get_saved_model()]] = obj - value = model.objects.create(**value) - value.save() + value, created = model.objects.get_or_create(**value) + value.save() # force post_save # check that an item is not add multiple times (forged forms) if value not in related_model.all() and\ hasattr(related_model, 'add'): -- cgit v1.2.3 From 8b2ce8ee16a8ce40c09c5e5cb7bd9e8cd48a3368 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 20 Dec 2016 13:50:37 +0100 Subject: Fix find creation (refs #3399) - improve wizard test management --- archaeological_finds/tests.py | 53 ++++++++++++++++++++++++++++++++++++++ archaeological_finds/views.py | 8 ++++-- archaeological_finds/wizards.py | 5 ++-- archaeological_operations/tests.py | 6 ++--- archaeological_warehouse/models.py | 4 +-- ishtar_common/tests.py | 27 +++++++++++-------- 6 files changed, 83 insertions(+), 20 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index b5096ae01..4153a79ad 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -17,6 +17,8 @@ # See the file COPYING for details. +import datetime + from django.conf import settings from django.core.files.uploadedfile import SimpleUploadedFile from django.test import TestCase @@ -24,6 +26,7 @@ from ishtar_common.models import ImporterType, IshtarUser, ImporterColumn,\ FormaterType, ImportTarget from ishtar_common.models import Person +from archaeological_context_records.models import ContextRecord from archaeological_finds import models, views from archaeological_warehouse.models import Warehouse, WarehouseType @@ -80,6 +83,56 @@ class FindInit(ContextRecordInit): self.base_find = [] +class AFindWizardCreationTest(WizardTest, FindInit, TestCase): + # TODO: first to be run because of strange init things... + fixtures = [settings.ROOT_PATH + + '../fixtures/initial_data.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_files/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_operations/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../archaeological_finds/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../archaeological_warehouse/fixtures/initial_data-fr.json', + ] + url_name = 'find_creation' + wizard_name = 'find_wizard' + steps = views.find_creation_steps + form_datas = [ + FormData( + 'Find creation', + form_datas={ + 'selecrecord-find_creation': {'pk': 1}, + 'find-find_creation': { + 'label': 'hop', + 'checked': 'NC', + 'check_date': '2016-01-01' + }, + 'dating-find_creation': [] + }, + ) + ] + + def pre_wizard(self): + q = ContextRecord.objects.filter(pk=1) + if not q.count(): + cr = self.create_context_record()[0] + cr.pk = 1 + cr.save() + self.find_number = models.Find.objects.count() + self.basefind_number = models.BaseFind.objects.count() + super(AFindWizardCreationTest, self).pre_wizard() + + def post_wizard(self): + self.assertEqual(models.BaseFind.objects.count(), + self.basefind_number + 1) + self.assertEqual(models.Find.objects.count(), + self.find_number + 1) + + class ATreatmentWizardCreationTest(WizardTest, FindInit, TestCase): # TODO: first to be run because of strange init things... fixtures = [settings.ROOT_PATH + diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 52144cadd..ef8dfb16b 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -112,11 +112,15 @@ revert_find = revert_item(models.Find) show_findbasket = show_item(models.FindBasket, 'findbasket') -find_creation_wizard = FindWizard.as_view([ +find_creation_steps = [ ('selecrecord-find_creation', RecordFormSelectionTable), ('find-find_creation', FindForm), ('dating-find_creation', DatingFormSet), - ('final-find_creation', FinalForm)], + ('final-find_creation', FinalForm) +] + +find_creation_wizard = FindWizard.as_view( + find_creation_steps, label=_(u"New find"), url_name='find_creation',) diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index c9d492329..d7e3dbac0 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -25,6 +25,7 @@ from ishtar_common.wizards import Wizard, DeletionWizard, SourceWizard from archaeological_operations.wizards import OperationAdministrativeActWizard from archaeological_operations.models import AdministrativeAct +from archaeological_context_records.models import ContextRecord import models @@ -40,7 +41,7 @@ class FindWizard(Wizard): main_form_key = 'selecrecord-' + self.url_name try: idx = int(self.session_get_value(main_form_key, 'pk')) - current_cr = models.ContextRecord.objects.get(pk=idx) + current_cr = ContextRecord.objects.get(pk=idx) return current_cr except(TypeError, ValueError, ObjectDoesNotExist): pass @@ -66,7 +67,7 @@ class FindWizard(Wizard): def get_extra_model(self, dct, form_list): dct = super(FindWizard, self).get_extra_model(dct, form_list) dct['order'] = 1 - if 'pk' in dct and type(dct['pk']) == models.ContextRecord: + if 'pk' in dct and type(dct['pk']) == ContextRecord: dct['base_finds__context_record'] = dct.pop('pk') return dct diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 80569fb1b..93c4fbe92 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -673,9 +673,9 @@ class OperationWizardCreationTest(WizardTest, OperationInitTest, TestCase): FormData( "Create a preventive diag", form_datas={ - 'general-operation_creation': { - 'operation_type': 1, # preventive diag - 'year': 2016} + 'general-operation_creation': { + 'operation_type': 1, # preventive diag + 'year': 2016} }, ignored=('filechoice-operation_creation', 'preventive-operation_creation', diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 0872df220..0eb19814d 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -149,8 +149,8 @@ class Container(LightHistorizedItem): def precise_location(self): location = unicode(self.location) locas = [ - u"{} {}".format(loca.division.division, loca.reference) - for loca in ContainerLocalisation.objects.filter( + u"{} {}".format(loca.division.division, loca.reference) + for loca in ContainerLocalisation.objects.filter( container=self) ] return location + u" - " + u", ".join(locas) diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index dbe3df4a5..095956090 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -118,6 +118,18 @@ class WizardTest(object): def post_wizard(self): pass + def check_response(self, response, current_step): + if "errorlist" in response.content: + soup = Soup(response.content) + errorlist = soup.findAll( + "ul", {"class": "errorlist"}) + errors = [] + for li in errorlist: + lbl = li.findParent().findParent().findChild().text + errors.append(u"{} - {}".format(lbl, li.text)) + raise ValidationError(u"Errors: {} on {}.".format( + u" ".join(errors), current_step)) + def test_wizard(self): url = reverse(self.url_name) self.pre_wizard() @@ -144,28 +156,21 @@ class WizardTest(object): next_form = self.steps[idx + 1][0] break next_idx = next_idx + 1 - if next_form: try: response = self.client.post(url, data) except ValidationError as e: + # on ManagementForm data is missing or has been tampered + # error verify the wizard_name or step name raise ValidationError(u"Errors: {} on {}.".format( u" - ".join(e.messages), current_step)) - if "errorlist" in response.content: - soup = Soup(response.content) - errorlist = soup.findAll( - "ul", {"class": "errorlist"}) - errors = [] - for li in errorlist: - lbl = li.findParent().findParent().findChild().text - errors.append(u"{} - {}".format(lbl, li.text)) - raise ValidationError(u"Errors: {} on {}.".format( - u" ".join(errors), current_step)) + self.check_response(response, current_step) self.assertRedirects( response, '/{}/{}'.format(self.url_name, next_form)) else: response = self.client.post(url, data, follow=True) + self.check_response(response, current_step) test_form_data.tests(self, response) self.post_wizard() -- cgit v1.2.3 From 018ee6dbaae3ac3e07f562c474a075a962881600 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 21 Dec 2016 01:01:15 +0100 Subject: Translation file update --- archaeological_finds/locale/django.pot | 128 +++++++++---------- archaeological_warehouse/locale/django.pot | 85 +++++++------ ishtar_common/locale/django.pot | 4 +- translations/fr/archaeological_context_records.po | 8 +- translations/fr/archaeological_files.po | 8 +- translations/fr/archaeological_files_pdl.po | 8 +- translations/fr/archaeological_finds.po | 143 +++++++++++----------- translations/fr/archaeological_operations.po | 11 +- translations/fr/archaeological_warehouse.po | 94 +++++++------- translations/fr/ishtar_common.po | 15 +-- 10 files changed, 265 insertions(+), 239 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index b679a1adf..7cd97a601 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" -#: forms.py:88 forms.py:92 wizards.py:63 +#: forms.py:88 forms.py:92 wizards.py:64 msgid "Context record" msgstr "" @@ -125,7 +125,7 @@ msgstr "" #: forms.py:180 forms_treatments.py:128 forms_treatments.py:409 #: models_finds.py:132 models_finds.py:432 models_treatments.py:103 -#: models_treatments.py:401 +#: models_treatments.py:403 msgid "Comment" msgstr "" @@ -190,7 +190,7 @@ msgstr "" #: forms.py:266 forms_treatments.py:53 forms_treatments.py:94 #: forms_treatments.py:259 forms_treatments.py:331 forms_treatments.py:381 -#: forms_treatments.py:464 models_treatments.py:83 models_treatments.py:373 +#: forms_treatments.py:464 models_treatments.py:83 models_treatments.py:375 msgid "Year" msgstr "" @@ -218,7 +218,7 @@ msgstr "" msgid "Has an image?" msgstr "" -#: forms.py:342 forms.py:355 views.py:125 +#: forms.py:342 forms.py:355 views.py:129 msgid "Find search" msgstr "" @@ -310,7 +310,7 @@ msgstr "" #: forms_treatments.py:54 forms_treatments.py:212 forms_treatments.py:260 #: forms_treatments.py:323 forms_treatments.py:332 forms_treatments.py:434 #: forms_treatments.py:465 forms_treatments.py:530 models_treatments.py:85 -#: models_treatments.py:375 +#: models_treatments.py:377 msgid "Index" msgstr "" @@ -320,7 +320,7 @@ msgstr "" msgid "Treatment type" msgstr "" -#: forms_treatments.py:67 forms_treatments.py:533 views.py:355 +#: forms_treatments.py:67 forms_treatments.py:533 views.py:359 msgid "Treatment search" msgstr "" @@ -383,14 +383,14 @@ msgid "Associated file" msgstr "" #: forms_treatments.py:241 forms_treatments.py:372 ishtar_menu.py:107 -#: models_treatments.py:406 models_treatments.py:471 wizards.py:182 +#: models_treatments.py:408 models_treatments.py:473 wizards.py:183 #: templates/ishtar/sheet_treatmentfile.html:5 msgid "Treatment file" msgstr "" #: forms_treatments.py:250 msgid "" -"Are you sure you want to delete this treatment? All modification made to the " +"Are you sure you want to delete this treatment? All changes made to the " "associated finds since this treatment record will be lost!" msgstr "" @@ -439,7 +439,7 @@ msgstr "" msgid "Modified by" msgstr "" -#: forms_treatments.py:329 forms_treatments.py:379 models_treatments.py:380 +#: forms_treatments.py:329 forms_treatments.py:379 models_treatments.py:382 msgid "Name" msgstr "" @@ -448,7 +448,7 @@ msgid "Internal ref." msgstr "" #: forms_treatments.py:333 forms_treatments.py:390 forms_treatments.py:481 -#: forms_treatments.py:575 models_treatments.py:362 models_treatments.py:381 +#: forms_treatments.py:575 models_treatments.py:362 models_treatments.py:383 msgid "Treatment file type" msgstr "" @@ -456,23 +456,23 @@ msgstr "" msgid "In charge" msgstr "" -#: forms_treatments.py:341 forms_treatments.py:398 models_treatments.py:389 +#: forms_treatments.py:341 forms_treatments.py:398 models_treatments.py:391 msgid "Applicant" msgstr "" -#: forms_treatments.py:347 forms_treatments.py:404 models_treatments.py:393 +#: forms_treatments.py:347 forms_treatments.py:404 models_treatments.py:395 msgid "Applicant organisation" msgstr "" -#: forms_treatments.py:360 forms_treatments.py:538 views.py:458 +#: forms_treatments.py:360 forms_treatments.py:538 views.py:462 msgid "Treatment file search" msgstr "" -#: forms_treatments.py:414 models_treatments.py:399 +#: forms_treatments.py:414 models_treatments.py:401 msgid "Reception date" msgstr "" -#: forms_treatments.py:417 models_treatments.py:395 +#: forms_treatments.py:417 models_treatments.py:397 msgid "Closing date" msgstr "" @@ -505,11 +505,11 @@ msgid "Treatment file internal reference" msgstr "" #: forms_treatments.py:535 -msgid "You should select an treatment." +msgid "You should select a treatment." msgstr "" #: forms_treatments.py:541 -msgid "You should select an treatment file." +msgid "You should select a treatment file." msgstr "" #: ishtar_menu.py:36 ishtar_menu.py:79 ishtar_menu.py:111 ishtar_menu.py:134 @@ -556,7 +556,7 @@ msgid "Source" msgstr "" #: ishtar_menu.py:183 models_treatments.py:115 models_treatments.py:215 -#: models_treatments.py:455 templates/ishtar/sheet_treatment.html:5 +#: models_treatments.py:457 templates/ishtar/sheet_treatment.html:5 msgid "Treatment" msgstr "" @@ -621,7 +621,7 @@ msgid "Batch" msgstr "" #: models_finds.py:128 models_finds.py:376 models_treatments.py:101 -#: models_treatments.py:378 +#: models_treatments.py:380 msgid "External ID" msgstr "" @@ -770,7 +770,7 @@ msgstr "" msgid "Container" msgstr "" -#: models_finds.py:443 models_treatments.py:111 models_treatments.py:402 +#: models_finds.py:443 models_treatments.py:111 models_treatments.py:404 msgid "Cached name" msgstr "" @@ -901,179 +901,179 @@ msgstr "" msgid "Treatment file types" msgstr "" -#: models_treatments.py:376 +#: models_treatments.py:378 msgid "Internal reference" msgstr "" -#: models_treatments.py:385 +#: models_treatments.py:387 msgid "Person in charge" msgstr "" -#: models_treatments.py:397 +#: models_treatments.py:399 msgid "Creation date" msgstr "" -#: models_treatments.py:407 +#: models_treatments.py:409 msgid "Treatment files" msgstr "" -#: models_treatments.py:410 +#: models_treatments.py:412 msgid "Can view all Treatment files" msgstr "" -#: models_treatments.py:412 +#: models_treatments.py:414 msgid "Can view own Treatment file" msgstr "" -#: models_treatments.py:414 +#: models_treatments.py:416 msgid "Can add own Treatment file" msgstr "" -#: models_treatments.py:416 +#: models_treatments.py:418 msgid "Can change own Treatment file" msgstr "" -#: models_treatments.py:418 +#: models_treatments.py:420 msgid "Can delete own Treatment file" msgstr "" -#: models_treatments.py:461 +#: models_treatments.py:463 msgid "Treatment documentation" msgstr "" -#: models_treatments.py:462 +#: models_treatments.py:464 msgid "Treament documentations" msgstr "" -#: models_treatments.py:477 +#: models_treatments.py:479 msgid "Treatment file documentation" msgstr "" -#: models_treatments.py:478 +#: models_treatments.py:480 msgid "Treament file documentations" msgstr "" -#: views.py:120 +#: views.py:124 msgid "New find" msgstr "" -#: views.py:134 +#: views.py:138 msgid "Find modification" msgstr "" -#: views.py:149 +#: views.py:153 msgid "Find deletion" msgstr "" -#: views.py:154 +#: views.py:158 msgid "Find: source search" msgstr "" -#: views.py:162 +#: views.py:166 msgid "Find: new source" msgstr "" -#: views.py:170 +#: views.py:174 msgid "Find: source modification" msgstr "" -#: views.py:185 +#: views.py:189 msgid "Find: source deletion" msgstr "" -#: views.py:199 +#: views.py:203 msgid "New basket" msgstr "" -#: views.py:218 +#: views.py:222 msgid "Manage items in basket" msgstr "" -#: views.py:238 +#: views.py:242 msgid "Manage basket" msgstr "" -#: views.py:326 +#: views.py:330 msgid "Delete basket" msgstr "" -#: views.py:376 +#: views.py:380 msgid "New treatment" msgstr "" -#: views.py:383 views.py:475 +#: views.py:387 views.py:479 msgid "Modify" msgstr "" -#: views.py:400 +#: views.py:404 msgid "Treatment deletion" msgstr "" -#: views.py:407 +#: views.py:411 msgid "Treatment: search administrative act" msgstr "" -#: views.py:416 +#: views.py:420 msgid "Treatment: new administrative act" msgstr "" -#: views.py:426 +#: views.py:430 msgid "Treatment: administrative act modification" msgstr "" -#: views.py:435 +#: views.py:439 msgid "Treatment: administrative act deletion" msgstr "" -#: views.py:468 +#: views.py:472 msgid "New treatment file" msgstr "" -#: views.py:491 +#: views.py:495 msgid "Treatment file deletion" msgstr "" -#: views.py:498 +#: views.py:502 msgid "Treatment file: search administrative act" msgstr "" -#: views.py:508 +#: views.py:512 msgid "Treatment file: new administrative act" msgstr "" -#: views.py:518 +#: views.py:522 msgid "Treatment file: administrative act modification" msgstr "" -#: views.py:527 +#: views.py:531 msgid "Treatment file: administrative act deletion" msgstr "" -#: views.py:553 +#: views.py:557 msgid "Treatment: source search" msgstr "" -#: views.py:568 +#: views.py:572 msgid "Treatment: source modification" msgstr "" -#: views.py:583 +#: views.py:587 msgid "Treatment: source deletion" msgstr "" -#: views.py:596 +#: views.py:600 msgid "Treatment file: source search" msgstr "" -#: views.py:612 +#: views.py:616 msgid "Treatment file: source modification" msgstr "" -#: views.py:630 +#: views.py:634 msgid "Treatment file: source deletion" msgstr "" -#: wizards.py:62 wizards.py:194 +#: wizards.py:63 wizards.py:195 msgid "Operation" msgstr "" diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index 6833d145a..717f674e9 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -7,28 +7,28 @@ msgid "" msgstr "" -#: forms.py:35 forms.py:91 forms.py:149 ishtar_menu.py:39 models.py:53 -#: models.py:110 +#: forms.py:35 forms.py:91 forms.py:149 ishtar_menu.py:39 models.py:57 +#: models.py:125 templates/ishtar/sheet_warehouse.html:4 msgid "Warehouse" msgstr "" -#: forms.py:44 forms.py:49 models.py:129 +#: forms.py:44 forms.py:49 models.py:162 msgid "Division" msgstr "" -#: forms.py:51 models.py:77 +#: forms.py:51 models.py:88 msgid "Order" msgstr "" -#: forms.py:62 models.py:46 +#: forms.py:62 models.py:50 msgid "Divisions" msgstr "" -#: forms.py:66 forms.py:95 models.py:38 +#: forms.py:66 forms.py:95 models.py:42 msgid "Name" msgstr "" -#: forms.py:67 forms.py:97 models.py:30 models.py:40 +#: forms.py:67 forms.py:97 models.py:33 models.py:44 msgid "Warehouse type" msgstr "" @@ -40,11 +40,11 @@ msgstr "" msgid "Warehouse search" msgstr "" -#: forms.py:100 models.py:43 +#: forms.py:100 models.py:47 msgid "Person in charge" msgstr "" -#: forms.py:106 forms.py:154 models.py:44 models.py:114 +#: forms.py:106 forms.py:154 models.py:48 models.py:130 msgid "Comment" msgstr "" @@ -72,15 +72,16 @@ msgstr "" msgid "Mobile phone" msgstr "" -#: forms.py:145 models.py:117 models.py:127 +#: forms.py:145 models.py:133 models.py:160 +#: templates/ishtar/sheet_container.html:4 msgid "Container" msgstr "" -#: forms.py:146 forms.py:181 models.py:89 +#: forms.py:146 forms.py:181 models.py:103 msgid "Ref." msgstr "" -#: forms.py:147 forms.py:180 models.py:92 models.py:112 +#: forms.py:147 forms.py:180 models.py:106 models.py:128 msgid "Container type" msgstr "" @@ -96,23 +97,23 @@ msgstr "" msgid "Add a new container" msgstr "" -#: forms.py:198 ishtar_menu.py:35 views.py:89 +#: forms.py:198 ishtar_menu.py:35 views.py:92 msgid "Packaging" msgstr "" -#: forms.py:205 +#: forms.py:204 msgid "Packager" msgstr "" -#: forms.py:211 +#: forms.py:210 msgid "Date" msgstr "" -#: forms.py:220 +#: forms.py:214 msgid "Packaged finds" msgstr "" -#: forms.py:224 +#: forms.py:218 msgid "Localisation" msgstr "" @@ -120,98 +121,102 @@ msgstr "" msgid "Treatment" msgstr "" -#: ishtar_menu.py:41 +#: ishtar_menu.py:42 msgid "Creation" msgstr "" -#: ishtar_menu.py:44 +#: ishtar_menu.py:45 msgid "Modification" msgstr "" -#: ishtar_menu.py:47 models.py:133 views.py:114 +#: ishtar_menu.py:48 models.py:166 views.py:117 msgid "Container localisation" msgstr "" -#: models.py:31 +#: models.py:34 msgid "Warehouse types" msgstr "" -#: models.py:54 +#: models.py:58 msgid "Warehouses" msgstr "" -#: models.py:56 +#: models.py:60 msgid "Can view all Warehouses" msgstr "" -#: models.py:57 +#: models.py:61 msgid "Can view own Warehouse" msgstr "" -#: models.py:58 +#: models.py:62 msgid "Can add own Warehouse" msgstr "" -#: models.py:59 +#: models.py:63 msgid "Can change own Warehouse" msgstr "" -#: models.py:60 +#: models.py:64 msgid "Can delete own Warehouse" msgstr "" -#: models.py:69 +#: models.py:78 msgid "Warehouse division" msgstr "" -#: models.py:70 +#: models.py:79 msgid "Warehouse divisions" msgstr "" -#: models.py:85 +#: models.py:99 msgid "Length (mm)" msgstr "" -#: models.py:86 +#: models.py:100 msgid "Width (mm)" msgstr "" -#: models.py:87 +#: models.py:101 msgid "Height (mm)" msgstr "" -#: models.py:88 +#: models.py:102 msgid "Volume (l)" msgstr "" -#: models.py:93 +#: models.py:107 msgid "Container types" msgstr "" -#: models.py:113 +#: models.py:129 msgid "Container ref." msgstr "" -#: models.py:118 +#: models.py:134 templates/ishtar/sheet_warehouse.html:17 msgid "Containers" msgstr "" -#: models.py:130 +#: models.py:163 msgid "Reference" msgstr "" -#: models.py:134 +#: models.py:167 msgid "Container localisations" msgstr "" -#: views.py:96 +#: views.py:99 msgid "Warehouse creation" msgstr "" -#: views.py:105 +#: views.py:108 msgid "Warehouse modification" msgstr "" +#: templates/ishtar/sheet_container.html:17 +msgid "Content" +msgstr "" + #: templates/ishtar/wizard/wizard_containerlocalisation.html:5 msgid "" "No division set for this warehouse. Define it to localise container in this " diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 0d87043b1..084950014 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -1469,11 +1469,11 @@ msgstr "" msgid "Search..." msgstr "" -#: widgets.py:671 templatetags/window_tables.py:85 +#: widgets.py:671 templatetags/window_tables.py:88 msgid "No results" msgstr "" -#: widgets.py:672 templatetags/window_tables.py:86 +#: widgets.py:672 templatetags/window_tables.py:89 msgid "Loading..." msgstr "" diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 4a9a99f8c..4fba9baac 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-21 00:59+0100\n" "PO-Revision-Date: 2016-11-14 05:46-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 5d1df6224..5ebb51bbf 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-21 00:59+0100\n" "PO-Revision-Date: 2016-11-15 04:16-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index 949555adc..34767af6a 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-21 00:59+0100\n" "PO-Revision-Date: 2016-11-14 05:33-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 2add2634e..eee3244a1 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -6,17 +6,19 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-21 00:59+0100\n" "PO-Revision-Date: 2016-12-20 06:51-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" -#: forms.py:88 forms.py:92 wizards.py:63 +#: forms.py:88 forms.py:92 wizards.py:64 msgid "Context record" msgstr "Unité d'Enregistrement" @@ -134,7 +136,7 @@ msgstr "Date de vérification" #: forms.py:180 forms_treatments.py:128 forms_treatments.py:409 #: models_finds.py:132 models_finds.py:432 models_treatments.py:103 -#: models_treatments.py:401 +#: models_treatments.py:403 msgid "Comment" msgstr "Commentaires" @@ -201,7 +203,7 @@ msgstr "ID complet" #: forms.py:266 forms_treatments.py:53 forms_treatments.py:94 #: forms_treatments.py:259 forms_treatments.py:331 forms_treatments.py:381 -#: forms_treatments.py:464 models_treatments.py:83 models_treatments.py:373 +#: forms_treatments.py:464 models_treatments.py:83 models_treatments.py:375 msgid "Year" msgstr "Année" @@ -229,7 +231,7 @@ msgstr "Type d'objet" msgid "Has an image?" msgstr "Dispose d'une image ?" -#: forms.py:342 forms.py:355 views.py:125 +#: forms.py:342 forms.py:355 views.py:129 msgid "Find search" msgstr "Rechercher un mobilier" @@ -321,7 +323,7 @@ msgstr "Autre réf." #: forms_treatments.py:54 forms_treatments.py:212 forms_treatments.py:260 #: forms_treatments.py:323 forms_treatments.py:332 forms_treatments.py:434 #: forms_treatments.py:465 forms_treatments.py:530 models_treatments.py:85 -#: models_treatments.py:375 +#: models_treatments.py:377 msgid "Index" msgstr "Index" @@ -331,7 +333,7 @@ msgstr "Index" msgid "Treatment type" msgstr "Type de traitement" -#: forms_treatments.py:67 forms_treatments.py:533 views.py:355 +#: forms_treatments.py:67 forms_treatments.py:533 views.py:359 msgid "Treatment search" msgstr "Rechercher un traitement" @@ -397,14 +399,15 @@ msgid "Associated file" msgstr "Dossier associé" #: forms_treatments.py:241 forms_treatments.py:372 ishtar_menu.py:107 -#: models_treatments.py:406 models_treatments.py:471 wizards.py:182 +#: models_treatments.py:408 models_treatments.py:473 wizards.py:183 #: templates/ishtar/sheet_treatmentfile.html:5 msgid "Treatment file" msgstr "Dossier de traitement" #: forms_treatments.py:250 +#, fuzzy msgid "" -"Are you sure you want to delete this treatment? All modification made to the " +"Are you sure you want to delete this treatment? All changes made to the " "associated finds since this treatment record will be lost!" msgstr "" "Êtes-vous sûr de vouloir supprimer ce traitement ? Toutes les modifications " @@ -456,7 +459,7 @@ msgstr "Référence interne du traitement" msgid "Modified by" msgstr "Modifié par" -#: forms_treatments.py:329 forms_treatments.py:379 models_treatments.py:380 +#: forms_treatments.py:329 forms_treatments.py:379 models_treatments.py:382 msgid "Name" msgstr "Nom" @@ -465,7 +468,7 @@ msgid "Internal ref." msgstr "Réf. interne" #: forms_treatments.py:333 forms_treatments.py:390 forms_treatments.py:481 -#: forms_treatments.py:575 models_treatments.py:362 models_treatments.py:381 +#: forms_treatments.py:575 models_treatments.py:362 models_treatments.py:383 msgid "Treatment file type" msgstr "Type de dossier de traitement" @@ -473,23 +476,23 @@ msgstr "Type de dossier de traitement" msgid "In charge" msgstr "Responsable" -#: forms_treatments.py:341 forms_treatments.py:398 models_treatments.py:389 +#: forms_treatments.py:341 forms_treatments.py:398 models_treatments.py:391 msgid "Applicant" msgstr "Candidat" -#: forms_treatments.py:347 forms_treatments.py:404 models_treatments.py:393 +#: forms_treatments.py:347 forms_treatments.py:404 models_treatments.py:395 msgid "Applicant organisation" msgstr "Organisation du candidat" -#: forms_treatments.py:360 forms_treatments.py:538 views.py:458 +#: forms_treatments.py:360 forms_treatments.py:538 views.py:462 msgid "Treatment file search" msgstr "Rechercher un dossier de traitement" -#: forms_treatments.py:414 models_treatments.py:399 +#: forms_treatments.py:414 models_treatments.py:401 msgid "Reception date" msgstr "Date de réception" -#: forms_treatments.py:417 models_treatments.py:395 +#: forms_treatments.py:417 models_treatments.py:397 msgid "Closing date" msgstr "Date de clôture" @@ -522,12 +525,14 @@ msgid "Treatment file internal reference" msgstr "" #: forms_treatments.py:535 -msgid "You should select an treatment." -msgstr "" +#, fuzzy +msgid "You should select a treatment." +msgstr "Vous devez sélectionner un document." #: forms_treatments.py:541 -msgid "You should select an treatment file." -msgstr "" +#, fuzzy +msgid "You should select a treatment file." +msgstr "Vous devez sélectionner un document." #: ishtar_menu.py:36 ishtar_menu.py:79 ishtar_menu.py:111 ishtar_menu.py:134 #: ishtar_menu.py:158 ishtar_menu.py:190 ishtar_menu.py:214 ishtar_menu.py:238 @@ -573,7 +578,7 @@ msgid "Source" msgstr "" #: ishtar_menu.py:183 models_treatments.py:115 models_treatments.py:215 -#: models_treatments.py:455 templates/ishtar/sheet_treatment.html:5 +#: models_treatments.py:457 templates/ishtar/sheet_treatment.html:5 msgid "Treatment" msgstr "Traitement" @@ -638,7 +643,7 @@ msgid "Batch" msgstr "Lot" #: models_finds.py:128 models_finds.py:376 models_treatments.py:101 -#: models_treatments.py:378 +#: models_treatments.py:380 msgid "External ID" msgstr "ID externe" @@ -787,7 +792,7 @@ msgstr "Traitement aval" msgid "Container" msgstr "Contenant" -#: models_finds.py:443 models_treatments.py:111 models_treatments.py:402 +#: models_finds.py:443 models_treatments.py:111 models_treatments.py:404 msgid "Cached name" msgstr "Nom en cache" @@ -924,179 +929,179 @@ msgstr "Est en amont" msgid "Treatment file types" msgstr "" -#: models_treatments.py:376 +#: models_treatments.py:378 msgid "Internal reference" msgstr "" -#: models_treatments.py:385 +#: models_treatments.py:387 msgid "Person in charge" msgstr "" -#: models_treatments.py:397 +#: models_treatments.py:399 msgid "Creation date" msgstr "" -#: models_treatments.py:407 +#: models_treatments.py:409 msgid "Treatment files" msgstr "" -#: models_treatments.py:410 +#: models_treatments.py:412 msgid "Can view all Treatment files" msgstr "" -#: models_treatments.py:412 +#: models_treatments.py:414 msgid "Can view own Treatment file" msgstr "" -#: models_treatments.py:414 +#: models_treatments.py:416 msgid "Can add own Treatment file" msgstr "" -#: models_treatments.py:416 +#: models_treatments.py:418 msgid "Can change own Treatment file" msgstr "" -#: models_treatments.py:418 +#: models_treatments.py:420 msgid "Can delete own Treatment file" msgstr "" -#: models_treatments.py:461 +#: models_treatments.py:463 msgid "Treatment documentation" msgstr "Documentation d'un traitement" -#: models_treatments.py:462 +#: models_treatments.py:464 msgid "Treament documentations" msgstr "Documentations des traitements" -#: models_treatments.py:477 +#: models_treatments.py:479 msgid "Treatment file documentation" msgstr "" -#: models_treatments.py:478 +#: models_treatments.py:480 msgid "Treament file documentations" msgstr "" -#: views.py:120 +#: views.py:124 msgid "New find" msgstr "Ajouter un mobilier" -#: views.py:134 +#: views.py:138 msgid "Find modification" msgstr "Modifier un mobilier" -#: views.py:149 +#: views.py:153 msgid "Find deletion" msgstr "Supprimer un mobilier" -#: views.py:154 +#: views.py:158 msgid "Find: source search" msgstr "Mobilier : rechercher une documentation associée" -#: views.py:162 +#: views.py:166 msgid "Find: new source" msgstr "Mobilier : ajouter une documentation associée" -#: views.py:170 +#: views.py:174 msgid "Find: source modification" msgstr "Mobilier : modifier une documentation associée" -#: views.py:185 +#: views.py:189 msgid "Find: source deletion" msgstr "Mobilier : supprimer un mobilier associé" -#: views.py:199 +#: views.py:203 msgid "New basket" msgstr "Ajouter un panier" -#: views.py:218 +#: views.py:222 msgid "Manage items in basket" msgstr "Gérer les éléments dans un panier" -#: views.py:238 +#: views.py:242 msgid "Manage basket" msgstr "Gérer un panier" -#: views.py:326 +#: views.py:330 msgid "Delete basket" msgstr "Supprimer un panier" -#: views.py:376 +#: views.py:380 msgid "New treatment" msgstr "Ajouter un traitement" -#: views.py:383 views.py:475 +#: views.py:387 views.py:479 msgid "Modify" msgstr "Modifier" -#: views.py:400 +#: views.py:404 msgid "Treatment deletion" msgstr "Supprimer un traitement" -#: views.py:407 +#: views.py:411 msgid "Treatment: search administrative act" msgstr "" -#: views.py:416 +#: views.py:420 msgid "Treatment: new administrative act" msgstr "" -#: views.py:426 +#: views.py:430 msgid "Treatment: administrative act modification" msgstr "" -#: views.py:435 +#: views.py:439 msgid "Treatment: administrative act deletion" msgstr "" -#: views.py:468 +#: views.py:472 msgid "New treatment file" msgstr "" -#: views.py:491 +#: views.py:495 msgid "Treatment file deletion" msgstr "" -#: views.py:498 +#: views.py:502 msgid "Treatment file: search administrative act" msgstr "" -#: views.py:508 +#: views.py:512 msgid "Treatment file: new administrative act" msgstr "" -#: views.py:518 +#: views.py:522 msgid "Treatment file: administrative act modification" msgstr "" -#: views.py:527 +#: views.py:531 msgid "Treatment file: administrative act deletion" msgstr "" -#: views.py:553 +#: views.py:557 msgid "Treatment: source search" msgstr "" -#: views.py:568 +#: views.py:572 msgid "Treatment: source modification" msgstr "" -#: views.py:583 +#: views.py:587 msgid "Treatment: source deletion" msgstr "" -#: views.py:596 +#: views.py:600 msgid "Treatment file: source search" msgstr "" -#: views.py:612 +#: views.py:616 msgid "Treatment file: source modification" msgstr "" -#: views.py:630 +#: views.py:634 msgid "Treatment file: source deletion" msgstr "" -#: wizards.py:62 wizards.py:194 +#: wizards.py:63 wizards.py:195 msgid "Operation" msgstr "Opération" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index d5b15e8d2..d3d5efe06 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-21 00:59+0100\n" "PO-Revision-Date: 2016-12-20 04:22-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -389,8 +391,7 @@ msgstr "" #: forms.py:891 msgid "The excavation end date cannot be before the start date." -msgstr "" -"La date de fin de chantier ne peut être antérieure à la date de début." +msgstr "La date de fin de chantier ne peut être antérieure à la date de début." #: forms.py:919 #, python-format diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index 4858e06a0..1c5cea68c 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -6,38 +6,40 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-21 00:59+0100\n" "PO-Revision-Date: 2016-12-04 07:54-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" -#: forms.py:35 forms.py:91 forms.py:149 ishtar_menu.py:39 models.py:53 -#: models.py:110 +#: forms.py:35 forms.py:91 forms.py:149 ishtar_menu.py:39 models.py:57 +#: models.py:125 templates/ishtar/sheet_warehouse.html:4 msgid "Warehouse" msgstr "Dépôt" -#: forms.py:44 forms.py:49 models.py:129 +#: forms.py:44 forms.py:49 models.py:162 msgid "Division" msgstr "" -#: forms.py:51 models.py:77 +#: forms.py:51 models.py:88 msgid "Order" msgstr "" -#: forms.py:62 models.py:46 +#: forms.py:62 models.py:50 msgid "Divisions" msgstr "" -#: forms.py:66 forms.py:95 models.py:38 +#: forms.py:66 forms.py:95 models.py:42 msgid "Name" msgstr "Nom" -#: forms.py:67 forms.py:97 models.py:30 models.py:40 +#: forms.py:67 forms.py:97 models.py:33 models.py:44 msgid "Warehouse type" msgstr "Type de dépôt" @@ -49,11 +51,11 @@ msgstr "Commune" msgid "Warehouse search" msgstr "" -#: forms.py:100 models.py:43 +#: forms.py:100 models.py:47 msgid "Person in charge" msgstr "Responsable" -#: forms.py:106 forms.py:154 models.py:44 models.py:114 +#: forms.py:106 forms.py:154 models.py:48 models.py:130 msgid "Comment" msgstr "Commentaires" @@ -81,15 +83,16 @@ msgstr "Téléphone" msgid "Mobile phone" msgstr "" -#: forms.py:145 models.py:117 models.py:127 +#: forms.py:145 models.py:133 models.py:160 +#: templates/ishtar/sheet_container.html:4 msgid "Container" msgstr "Contenant" -#: forms.py:146 forms.py:181 models.py:89 +#: forms.py:146 forms.py:181 models.py:103 msgid "Ref." msgstr "Réf." -#: forms.py:147 forms.py:180 models.py:92 models.py:112 +#: forms.py:147 forms.py:180 models.py:106 models.py:128 msgid "Container type" msgstr "Type de contenant" @@ -105,23 +108,23 @@ msgstr "Vous devez sélectionner un contenant." msgid "Add a new container" msgstr "Ajouter un nouveau contenant" -#: forms.py:198 ishtar_menu.py:35 views.py:89 +#: forms.py:198 ishtar_menu.py:35 views.py:92 msgid "Packaging" msgstr "Conditionnement" -#: forms.py:205 +#: forms.py:204 msgid "Packager" msgstr "Personne assurant le conditionnement" -#: forms.py:211 +#: forms.py:210 msgid "Date" msgstr "Date" -#: forms.py:220 +#: forms.py:214 msgid "Packaged finds" msgstr "Mobilier conditionné" -#: forms.py:224 +#: forms.py:218 msgid "Localisation" msgstr "" @@ -129,98 +132,103 @@ msgstr "" msgid "Treatment" msgstr "Traitement" -#: ishtar_menu.py:41 +#: ishtar_menu.py:42 msgid "Creation" msgstr "" -#: ishtar_menu.py:44 +#: ishtar_menu.py:45 msgid "Modification" msgstr "" -#: ishtar_menu.py:47 models.py:133 views.py:114 +#: ishtar_menu.py:48 models.py:166 views.py:117 msgid "Container localisation" msgstr "" -#: models.py:31 +#: models.py:34 msgid "Warehouse types" msgstr "Types de dépôts" -#: models.py:54 +#: models.py:58 msgid "Warehouses" msgstr "Dépôts" -#: models.py:56 +#: models.py:60 msgid "Can view all Warehouses" msgstr "Peut voir tous les Dépôts" -#: models.py:57 +#: models.py:61 msgid "Can view own Warehouse" msgstr "Peut voir son propre Dépôt" -#: models.py:58 +#: models.py:62 msgid "Can add own Warehouse" msgstr "Peut ajouter son propre Dépôt" -#: models.py:59 +#: models.py:63 msgid "Can change own Warehouse" msgstr "Peut modifier son propre Dépôt" -#: models.py:60 +#: models.py:64 msgid "Can delete own Warehouse" msgstr "Peut supprimer son propre Dépôt" -#: models.py:69 +#: models.py:78 msgid "Warehouse division" msgstr "" -#: models.py:70 +#: models.py:79 msgid "Warehouse divisions" msgstr "" -#: models.py:85 +#: models.py:99 msgid "Length (mm)" msgstr "Longueur (mm)" -#: models.py:86 +#: models.py:100 msgid "Width (mm)" msgstr "Largeur (mm)" -#: models.py:87 +#: models.py:101 msgid "Height (mm)" msgstr "Hauteur (mm)" -#: models.py:88 +#: models.py:102 msgid "Volume (l)" msgstr "Volume (l)" -#: models.py:93 +#: models.py:107 msgid "Container types" msgstr "Types de contenant" -#: models.py:113 +#: models.py:129 msgid "Container ref." msgstr "Réf. du contenant" -#: models.py:118 +#: models.py:134 templates/ishtar/sheet_warehouse.html:17 msgid "Containers" msgstr "Contenants" -#: models.py:130 +#: models.py:163 msgid "Reference" msgstr "" -#: models.py:134 +#: models.py:167 msgid "Container localisations" msgstr "" -#: views.py:96 +#: views.py:99 msgid "Warehouse creation" msgstr "" -#: views.py:105 +#: views.py:108 msgid "Warehouse modification" msgstr "" +#: templates/ishtar/sheet_container.html:17 +#, fuzzy +msgid "Content" +msgstr "Contenant" + #: templates/ishtar/wizard/wizard_containerlocalisation.html:5 msgid "" "No division set for this warehouse. Define it to localise container in this " diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index 055cb9ccb..4cf3f2516 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-21 00:59+0100\n" "PO-Revision-Date: 2016-12-20 04:19-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -1517,11 +1519,11 @@ msgstr "Représentant de la personne morale" msgid "Search..." msgstr "Recherche..." -#: widgets.py:671 templatetags/window_tables.py:85 +#: widgets.py:671 templatetags/window_tables.py:88 msgid "No results" msgstr "Pas de résultats" -#: widgets.py:672 templatetags/window_tables.py:86 +#: widgets.py:672 templatetags/window_tables.py:89 msgid "Loading..." msgstr "Chargement..." @@ -1578,8 +1580,7 @@ msgstr "L'équipe %(app_name)s" #: templates/base.html:41 msgid "Searches in the shortcut menu deal with all items." -msgstr "" -"Les recherches dans le menu de raccourci concernent tous les éléments." +msgstr "Les recherches dans le menu de raccourci concernent tous les éléments." #: templates/base.html:42 msgid "Searches in the shortcut menu deal with only your items." -- cgit v1.2.3 From da0129e3bc820c8787b0e6dbe2ed829ca4a02e86 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 21 Dec 2016 11:28:27 +0100 Subject: Operation deletion test - adjust migration dependencies --- ...sted_operation_type__add_field_file_organiza.py | 3 ++- .../migrations/0001_initial.py | 3 ++- archaeological_operations/tests.py | 26 ++++++++++++++++++++++ archaeological_operations/views.py | 13 +++++++---- ishtar_common/migrations/0058_generate_title.py | 1 + .../migrations/0062_remove_ishtar_local_prefix.py | 1 + 6 files changed, 41 insertions(+), 6 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_files/migrations/0014_auto__add_field_file_requested_operation_type__add_field_file_organiza.py b/archaeological_files/migrations/0014_auto__add_field_file_requested_operation_type__add_field_file_organiza.py index 6855d8198..aeb1faec1 100644 --- a/archaeological_files/migrations/0014_auto__add_field_file_requested_operation_type__add_field_file_organiza.py +++ b/archaeological_files/migrations/0014_auto__add_field_file_requested_operation_type__add_field_file_organiza.py @@ -6,6 +6,7 @@ from django.db import models class Migration(SchemaMigration): + depends_on = (('archaeological_operations', '0001_initial.py'), ) def forwards(self, orm): # Adding field 'File.requested_operation_type' @@ -402,4 +403,4 @@ class Migration(SchemaMigration): } } - complete_apps = ['archaeological_files'] \ No newline at end of file + complete_apps = ['archaeological_files'] diff --git a/archaeological_operations/migrations/0001_initial.py b/archaeological_operations/migrations/0001_initial.py index 2039268aa..c5b4619ab 100644 --- a/archaeological_operations/migrations/0001_initial.py +++ b/archaeological_operations/migrations/0001_initial.py @@ -6,6 +6,7 @@ from django.db import models class Migration(SchemaMigration): + depends_on = (('archaeological_files', '0001_initial.py'), ) def forwards(self, orm): # Adding model 'OperationType' @@ -651,4 +652,4 @@ class Migration(SchemaMigration): } } - complete_apps = ['archaeological_operations'] \ No newline at end of file + complete_apps = ['archaeological_operations'] diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 316e3c897..2aa64ed15 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -697,6 +697,32 @@ class OperationWizardCreationTest(WizardTest, OperationInitTest, TestCase): self.operation_number + 1) +class OperationWizardDeleteTest(OperationWizardCreationTest): + fixtures = OperationWizardCreationTest.fixtures + url_name = 'operation_deletion' + wizard_name = 'operation_deletion_wizard' + steps = views.operation_deletion_steps + form_datas = [ + FormData( + "Wizard deletion test", + form_datas={ + 'selec-operation_deletion': {'pk': None}, + } + ) + ] + + def pre_wizard(self): + self.ope = self.get_default_operation(force=True) + self.form_datas[0].form_datas['selec-operation_deletion']['pk'] = \ + self.ope.pk + self.operation_number = models.Operation.objects.count() + super(OperationWizardDeleteTest, self).pre_wizard() + + def post_wizard(self): + self.assertEqual(self.operation_number - 1, + models.Operation.objects.count()) + + class OperationWizardClosingTest(OperationWizardCreationTest): fixtures = OperationWizardCreationTest.fixtures url_name = 'operation_closing' diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 7a9c7329b..005fae0db 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -163,8 +163,8 @@ def dashboard_operation(request, *args, **kwargs): return render_to_response('ishtar/dashboards/dashboard_operation.html', dct, context_instance=RequestContext(request)) -operation_search_wizard = SearchWizard.as_view([ - ('general-operation_search', OperationFormSelection)], +operation_search_wizard = SearchWizard.as_view( + [('general-operation_search', OperationFormSelection)], label=_(u"Operation search"), url_name='operation_search',) @@ -276,9 +276,14 @@ operation_closing_wizard = OperationClosingWizard.as_view( label=_(u"Operation closing"), url_name='operation_closing',) -operation_deletion_wizard = OperationDeletionWizard.as_view([ + +operation_deletion_steps = [ ('selec-operation_deletion', OperationFormSelection), - ('final-operation_deletion', OperationDeletionForm)], + ('final-operation_deletion', OperationDeletionForm) +] + +operation_deletion_wizard = OperationDeletionWizard.as_view( + operation_deletion_steps, label=_(u"Operation deletion"), url_name='operation_deletion',) diff --git a/ishtar_common/migrations/0058_generate_title.py b/ishtar_common/migrations/0058_generate_title.py index 3fcb82ee5..d30850cab 100644 --- a/ishtar_common/migrations/0058_generate_title.py +++ b/ishtar_common/migrations/0058_generate_title.py @@ -15,6 +15,7 @@ TYPE = ( class Migration(SchemaMigration): + no_dry_run = True def forwards(self, orm): keys = {} diff --git a/ishtar_common/migrations/0062_remove_ishtar_local_prefix.py b/ishtar_common/migrations/0062_remove_ishtar_local_prefix.py index a4624081a..b1406a111 100644 --- a/ishtar_common/migrations/0062_remove_ishtar_local_prefix.py +++ b/ishtar_common/migrations/0062_remove_ishtar_local_prefix.py @@ -6,6 +6,7 @@ from django.db import models class Migration(SchemaMigration): + no_dry_run = True def forwards(self, orm): for p in orm['ishtar_common.IshtarSiteProfile'].objects.all(): -- cgit v1.2.3 From 61c3267725423ca44d75e5e3c70cd89f3d384ce5 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 21 Dec 2016 12:18:04 +0100 Subject: Disable some test for spatialite (temp fix) --- archaeological_operations/tests.py | 5 +++++ ishtar_common/tests.py | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'ishtar_common') diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 2aa64ed15..fa5d8f32b 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -711,6 +711,11 @@ class OperationWizardDeleteTest(OperationWizardCreationTest): ) ] + def pass_test(self): + if settings.USE_SPATIALITE_FOR_TESTS: + # SPATIALITE mess with views so no test for now... + return True + def pre_wizard(self): self.ope = self.get_default_operation(force=True) self.form_datas[0].form_datas['selec-operation_deletion']['pk'] = \ diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 095956090..a00f8a174 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -118,6 +118,9 @@ class WizardTest(object): def post_wizard(self): pass + def pass_test(self): + return False + def check_response(self, response, current_step): if "errorlist" in response.content: soup = Soup(response.content) @@ -131,6 +134,8 @@ class WizardTest(object): u" ".join(errors), current_step)) def test_wizard(self): + if self.pass_test(): + return url = reverse(self.url_name) self.pre_wizard() for test_form_data in self.form_datas: -- cgit v1.2.3 From 9632d0cdecc7f17bc380bf737a5d0dbece7130a3 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 21 Dec 2016 14:31:16 +0100 Subject: Fixtures: update default importers --- ishtar_common/fixtures/initial_importtypes-fr.json | 4436 +++++++++++++++----- 1 file changed, 3288 insertions(+), 1148 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/fixtures/initial_importtypes-fr.json b/ishtar_common/fixtures/initial_importtypes-fr.json index 98703c8c9..ee4715bf5 100644 --- a/ishtar_common/fixtures/initial_importtypes-fr.json +++ b/ishtar_common/fixtures/initial_importtypes-fr.json @@ -6,7 +6,9 @@ "description": "Import depuis la base filemaker du SRA PdL", "is_template": true, "unicity_keys": "code_patriarche", - "users": [], + "users": [ + 2 + ], "slug": "operatio", "associated_models": "archaeological_operations.models.Operation", "name": "OPERATIO - Op\u00e9rations" @@ -19,7 +21,9 @@ "description": "Test d'import depuis le DBF simplifi\u00e9 de patrairche", "is_template": true, "unicity_keys": null, - "users": [], + "users": [ + 2 + ], "slug": null, "associated_models": "archaeological_operations.models.Operation", "name": "OPE PATRIARCHE DBF simplifi\u00e9 (TEST)" @@ -32,7 +36,9 @@ "description": "Import simple d'UE (pas de relations)", "is_template": true, "unicity_keys": null, - "users": [], + "users": [ + 2 + ], "slug": null, "associated_models": "archaeological_context_records.models.ContextRecord", "name": "SISPEO_UE" @@ -168,6 +174,32 @@ "name": "MCC - Mobilier" } }, + { + "pk": 18, + "model": "ishtar_common.importertype", + "fields": { + "description": "Unit\u00e9s d'enregisttrement", + "is_template": true, + "unicity_keys": "external_id", + "users": [], + "slug": "ishtar_context_record", + "associated_models": "archaeological_context_records.models.ContextRecord", + "name": "ISHTAR-UE" + } + }, + { + "pk": 19, + "model": "ishtar_common.importertype", + "fields": { + "description": "Parcelles de terrain", + "is_template": true, + "unicity_keys": "external_id", + "users": [], + "slug": "ishtar_parcels", + "associated_models": "archaeological_operations.models.Parcel", + "name": "ISHTAR-PARCELLES" + } + }, { "pk": 17, "model": "ishtar_common.importertype", @@ -178,7 +210,20 @@ "users": [], "slug": "ishtar_operations", "associated_models": "archaeological_operations.models.Operation", - "name": "ISHTAR-Operations" + "name": "ISHTAR-OP\u00c9RATIONS" + } + }, + { + "pk": 20, + "model": "ishtar_common.importertype", + "fields": { + "description": "Mobilier", + "is_template": true, + "unicity_keys": "external_id", + "users": [], + "slug": "ishtar_finds", + "associated_models": "archaeological_finds.models.BaseFind", + "name": "ISHTAR-MOBILIER" } }, { @@ -391,10 +436,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 1, "description": "Code patriarche", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 1 } }, { @@ -402,10 +448,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 1, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 1 } }, { @@ -413,10 +460,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": true, - "importer_type": 1, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 1 } }, { @@ -424,10 +472,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": true, - "importer_type": 1, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 1 } }, { @@ -435,10 +484,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 6, - "required": true, - "importer_type": 1, "description": "Nom du responsable de l'op\u00e9ration. Nom et Pr\u00e9nom sont group\u00e9 et donc mis dans le NOM seul dans l'annuaire.", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 1 } }, { @@ -446,10 +496,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, - "required": true, - "importer_type": 1, "description": "Date de d\u00e9but de l'op\u00e9ration avec le format ANN\u00c9E/MOIS/JOUR", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 1 } }, { @@ -457,10 +508,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 8, - "required": true, - "importer_type": 1, "description": "Date de fin de l'op\u00e9ration avec le format ANN\u00c9E/MOIS/JOUR", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 1 } }, { @@ -468,10 +520,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 1, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 1 } }, { @@ -479,10 +532,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 2, "description": "Code patriarche de l'op\u00e9ration associ\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 2 } }, { @@ -490,10 +544,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 2, "description": "Commune (via num\u00e9ro INSEE)", - "regexp_pre_filter": 2 + "regexp_pre_filter": 2, + "required": true, + "label": null, + "importer_type": 2 } }, { @@ -501,10 +556,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 2, "description": "Identifiant externe", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 2 } }, { @@ -512,10 +568,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": false, - "importer_type": 2, "description": "Num\u00e9ro", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 2 } }, { @@ -523,10 +580,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 2, "description": "Section", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 2 } }, { @@ -534,10 +592,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 6, - "required": false, - "importer_type": 2, "description": "Ann\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 2 } }, { @@ -545,10 +604,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 2, "description": "Lieu dit / adresse", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 2 } }, { @@ -556,10 +616,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 3, "description": "Code patriarche de l'op\u00e9ration associ\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 3 } }, { @@ -567,10 +628,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 3 } }, { @@ -578,10 +640,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 3 } }, { @@ -589,10 +652,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -600,10 +664,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -611,10 +676,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 6, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -622,10 +688,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -633,10 +700,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 8, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -644,10 +712,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -655,10 +724,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 12, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -666,10 +736,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 13, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -677,10 +748,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 16, - "required": false, - "importer_type": 3, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 3 } }, { @@ -688,10 +760,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 4, "description": "Code patriarche de l'op\u00e9ration associ\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 4 } }, { @@ -699,10 +772,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 4, "description": "Commune (via num\u00e9ro INSEE)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 4 } }, { @@ -710,10 +784,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 4, "description": "Parcelle (identifiant externe)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 4 } }, { @@ -721,10 +796,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": true, - "importer_type": 4, "description": "Label / Identifiant externe ", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 4 } }, { @@ -732,10 +808,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 4, "description": "Type", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 4 } }, { @@ -743,10 +820,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 6, - "required": false, - "importer_type": 4, "description": "Description", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 4 } }, { @@ -754,10 +832,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, - "required": false, - "importer_type": 4, "description": "Identification", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 4 } }, { @@ -765,10 +844,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 8, - "required": false, - "importer_type": 4, "description": "Date d'ouverture", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 4 } }, { @@ -776,10 +856,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 4, "description": "Date de fermeture", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 4 } }, { @@ -787,10 +868,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 11, - "required": false, - "importer_type": 4, "description": "Commentaire", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 4 } }, { @@ -798,10 +880,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 12, - "required": false, - "importer_type": 4, "description": "Nature", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 4 } }, { @@ -809,10 +892,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 13, - "required": false, - "importer_type": 4, "description": "Chronologie (plusieurs possibles s\u00e9par\u00e9es par &)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 4 } }, { @@ -820,10 +904,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 5, "description": "Code patriarche de l'op\u00e9ration associ\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 5 } }, { @@ -831,10 +916,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 5, "description": "Commune (via num\u00e9ro INSEE)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 5 } }, { @@ -842,10 +928,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 5, "description": "Identifiant parcelle", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 5 } }, { @@ -853,10 +940,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": true, - "importer_type": 5, "description": "Identifiant UE", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 5 } }, { @@ -864,10 +952,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": true, - "importer_type": 5, "description": "Identifiant externe", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 5 } }, { @@ -875,10 +964,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 5, "description": "Sous classe de mat\u00e9riaux", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -886,10 +976,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 12, - "required": false, - "importer_type": 5, "description": "Ref. du contenant / label temporaire utilis\u00e9 pour le mobilier = label libre = Label pour l'instant", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -897,10 +988,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 13, - "required": false, - "importer_type": 5, "description": "Nombre d'\u00e9l\u00e9ments", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -908,10 +1000,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 14, - "required": false, - "importer_type": 5, "description": "Poids", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -919,10 +1012,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 15, - "required": false, - "importer_type": 5, "description": "Unit\u00e9 de poids", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -930,10 +1024,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 16, - "required": false, - "importer_type": 5, "description": "Date de d\u00e9couverte", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -941,10 +1036,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 17, - "required": false, - "importer_type": 5, "description": "\u00c9tat de conservation", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -952,10 +1048,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 18, - "required": false, - "importer_type": 5, "description": "Mesure de conservation", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -963,10 +1060,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 19, - "required": false, - "importer_type": 5, "description": "Commentaire", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -974,10 +1072,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 20, - "required": false, - "importer_type": 5, "description": "Datations s\u00e9par\u00e9es par des \"&\"", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -985,10 +1084,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 21, - "required": false, - "importer_type": 5, "description": "Localisation topographique", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -996,10 +1096,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 22, - "required": false, - "importer_type": 5, "description": "Int\u00e9r\u00eat sp\u00e9cifique", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -1007,10 +1108,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 23, - "required": false, - "importer_type": 5, "description": "Description", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 5 } }, { @@ -1018,10 +1120,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 6, "description": "Type d'op\u00e9ration patriarche (ex: EV, AET, OPD, etc.)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 6 } }, { @@ -1029,10 +1132,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": false, - "importer_type": 6, "description": "Intitul\u00e9 de l'op\u00e9ration dans Patriarche", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 6 } }, { @@ -1040,10 +1144,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": false, - "importer_type": 6, "description": "Nom du responsable de l'op\u00e9ration", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 6 } }, { @@ -1051,10 +1156,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": false, - "importer_type": 6, "description": "Pr\u00e9nom du responsable de l'op\u00e9ration", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 6 } }, { @@ -1062,10 +1168,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 6, "description": "Chronologie dans PATRIARCHE, h\u00e9las une seule chronologie est enregistr\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 6 } }, { @@ -1073,10 +1180,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 8, - "required": false, - "importer_type": 6, "description": "Date du d\u00e9but de l'op\u00e9ration au format jour/mois/ann\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 6 } }, { @@ -1084,10 +1192,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 6, "description": "Date du fin de l'op\u00e9ration au format jour/mois/ann\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 6 } }, { @@ -1095,10 +1204,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 10, - "required": false, - "importer_type": 6, "description": "Identification de l'op\u00e9ration, import\u00e9 en tant que commentaire", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 6 } }, { @@ -1106,10 +1216,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 11, - "required": true, - "importer_type": 6, "description": "CODE Patriarche de l'op\u00e9ration, AVEC le code REGION", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 6 } }, { @@ -1117,10 +1228,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 12, - "required": false, - "importer_type": 6, "description": "Surface en m2", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 6 } }, { @@ -1128,10 +1240,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 7, "description": "Code OA avec le num\u00e9ro de r\u00e9gion (ex: 18 pour les PdL)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 7 } }, { @@ -1139,10 +1252,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 7, "description": "Code de l'UE (peut \u00eatre la concat\u00e9nation de fait + US ou autre)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 7 } }, { @@ -1150,10 +1264,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 7, "description": "Parcelle (peut \u00eatre li\u00e9 \u00e0 une parcelle virtuelle, ex: XXX 0)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 7 } }, { @@ -1161,10 +1276,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": false, - "importer_type": 7, "description": "Commentaire", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 7 } }, { @@ -1172,10 +1288,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 7, "description": "Type d'UE : identification", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 7 } }, { @@ -1183,10 +1300,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 6, - "required": false, - "importer_type": 7, "description": "Description de l'UE consid\u00e9r\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 7 } }, { @@ -1194,10 +1312,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, - "required": false, - "importer_type": 7, "description": "Datation (p\u00e9riode) pour l'UE s\u00e9par\u00e9es par un &", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 7 } }, { @@ -1205,10 +1324,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 8, "description": "Code patriarche de l'op\u00e9ration associ\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 8 } }, { @@ -1216,10 +1336,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 8, "description": "Code Document de SISPEO, soit l'identifiant complet (ancien du mobilier), ex: M.CE.0091_XXX.XX_0030", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 8 } }, { @@ -1227,10 +1348,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 8, "description": "UE - a passer en majuscule dans l'export csv de SISPEO / bien v\u00e9rifier qu'il n'y a pas de doublons dans l'import des UE pr\u00e9c\u00e9dent", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 8 } }, { @@ -1238,10 +1360,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": false, - "importer_type": 8, "description": "Type de manti\u00e8re de mobilier, s\u00e9par\u00e9s par des \"&\"", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1249,10 +1372,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 8, "description": "\u00c9tat de conservation / lien avec une liste", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1260,10 +1384,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 6, - "required": false, - "importer_type": 8, "description": "Commentaire", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1271,10 +1396,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, - "required": false, - "importer_type": 8, "description": "Identifiant pr\u00e9c\u00e9dent / label libre", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1282,10 +1408,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 8, - "required": false, - "importer_type": 8, "description": "Contient des objets complets ou non (pb il peut aussi y en avoir des incomplets m\u00e9lang\u00e9s \u00e0 des complets non isol\u00e9s...)\r\nA Am\u00e9liorer", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1293,10 +1420,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 8, "description": "Datations s\u00e9par\u00e9es par des \"&\"", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1304,10 +1432,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 10, - "required": false, - "importer_type": 8, "description": "Description de l'objet ou du lot d'objet", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1315,10 +1444,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 11, - "required": false, - "importer_type": 8, "description": "Nombre d'objets", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1326,10 +1456,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 12, - "required": false, - "importer_type": 8, "description": "Poids (en g)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1337,10 +1468,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 13, - "required": false, - "importer_type": 8, "description": "Longueur en cm", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1348,10 +1480,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 14, - "required": false, - "importer_type": 8, "description": "Largeur en cm", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1359,10 +1492,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 15, - "required": false, - "importer_type": 8, "description": "Hauteur en cm", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1370,10 +1504,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 16, - "required": false, - "importer_type": 8, "description": "Diam\u00e8tre en cm", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1381,10 +1516,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 18, - "required": false, - "importer_type": 8, "description": "Datation pr\u00e9cise, champs txt libre", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1392,10 +1528,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 19, - "required": false, - "importer_type": 8, "description": "Types d'objets se r\u00e9f\u00e9ren\u00e7ant par rapport \u00e0 un th\u00e9saurus", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1403,10 +1540,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 20, - "required": false, - "importer_type": 8, "description": "Isolation ou lot d'objets", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 8 } }, { @@ -1414,10 +1552,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 9, "description": "Code patriarche de l'op\u00e9ration associ\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 9 } }, { @@ -1425,10 +1564,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 9, "description": "Commune (via num\u00e9ro INSEE)", - "regexp_pre_filter": 2 + "regexp_pre_filter": 2, + "required": true, + "label": null, + "importer_type": 9 } }, { @@ -1436,10 +1576,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": true, - "importer_type": 9, "description": "Section de la parcelle", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 9 } }, { @@ -1447,10 +1588,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": true, - "importer_type": 9, "description": "Num\u00e9ro de la parcelle (ex: 125)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 9 } }, { @@ -1458,10 +1600,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 10, "description": "Numero OA reference", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 10 } }, { @@ -1469,10 +1612,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 10, "description": "Ref\u00e9rence pr\u00e9c\u00e9dente de l'objet (base ou inventaire pr\u00e9c\u00e9dent, fouille, sp\u00e9cialiste, etc;)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 10 } }, { @@ -1480,10 +1624,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 10, "description": "UE li\u00e9e au mobilier", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 10 } }, { @@ -1491,10 +1636,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": true, - "importer_type": 10, "description": "Mati\u00e8res s\u00e9par\u00e9es par des \"&\"", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 10 } }, { @@ -1502,10 +1648,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 10, "description": "Etat de conservation", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 10 } }, { @@ -1513,10 +1660,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 6, - "required": false, - "importer_type": 10, "description": "Commentaires", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 10 } }, { @@ -1524,10 +1672,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, - "required": false, - "importer_type": 10, "description": "Label libre", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 10 } }, { @@ -1535,10 +1684,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1546,10 +1696,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1557,10 +1708,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1568,10 +1720,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1579,10 +1732,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 10, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1590,10 +1744,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 12, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1601,10 +1756,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 13, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1612,10 +1768,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 14, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1623,10 +1780,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 16, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1634,10 +1792,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 18, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1645,10 +1804,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 19, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1656,10 +1816,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 20, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1667,10 +1828,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 35, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1678,10 +1840,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 37, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1689,10 +1852,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 38, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1700,10 +1864,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 41, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1711,10 +1876,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 42, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1722,10 +1888,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 47, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1733,10 +1900,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 49, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1744,10 +1912,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 50, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1755,10 +1924,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 53, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1766,10 +1936,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 54, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1777,10 +1948,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 55, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1788,10 +1960,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 57, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1799,10 +1972,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 58, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1810,10 +1984,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 72, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1821,10 +1996,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 75, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1832,10 +2008,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 76, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1843,10 +2020,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 77, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1854,10 +2032,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 85, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1865,10 +2044,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 87, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1876,10 +2056,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 88, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1887,10 +2068,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 89, - "required": false, - "importer_type": 14, "description": null, - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 14 } }, { @@ -1898,10 +2080,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": true, - "importer_type": 15, "description": "Code Patriarche", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 15 } }, { @@ -1909,10 +2092,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": false, - "importer_type": 15, "description": "Type d'op\u00e9ration", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -1920,10 +2104,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": false, - "importer_type": 15, "description": "Nom de l'op\u00e9ration", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -1931,10 +2116,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": false, - "importer_type": 15, "description": "Nom de l'op\u00e9rateur", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -1942,10 +2128,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 6, - "required": false, - "importer_type": 15, "description": "Nom du responsable de l'op\u00e9ration.", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -1953,10 +2140,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, - "required": false, - "importer_type": 15, "description": "Pr\u00e9nom du responsable de l'op\u00e9ration.", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -1964,10 +2152,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 8, - "required": false, - "importer_type": 15, "description": "Date de d\u00e9but de l'op\u00e9ration avec le format ANN\u00c9E/MOIS/JOUR", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -1975,10 +2164,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 15, "description": "Date de fin de l'op\u00e9ration avec le format ANN\u00c9E/MOIS/JOUR", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -1986,10 +2176,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 10, - "required": false, - "importer_type": 15, "description": "P\u00e9riodes chronologiques", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -1997,10 +2188,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 11, - "required": false, - "importer_type": 15, "description": "Ann\u00e9e de r\u00e9f\u00e9rence administrative", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -2008,10 +2200,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 12, - "required": false, - "importer_type": 15, "description": "Num\u00e9ro de r\u00e9f\u00e9rence administrative de l'op\u00e9ration", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -2019,10 +2212,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 13, - "required": false, - "importer_type": 15, "description": "Ancienne ref type DRACAR", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -2030,10 +2224,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 14, - "required": false, - "importer_type": 15, "description": "Commentaires", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -2041,10 +2236,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 15, - "required": false, - "importer_type": 15, "description": "Date de rendu du rapport (du premier si il y en a plusieurs)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -2052,10 +2248,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 16, - "required": false, - "importer_type": 15, "description": "\u00c9tat de traitement des rapports", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 15 } }, { @@ -2063,10 +2260,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, - "required": false, - "importer_type": 16, "description": "Adresse du domicile", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2074,10 +2272,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": false, - "importer_type": 16, "description": "Courriel", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2085,10 +2284,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": false, - "importer_type": 16, "description": "Adresse", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2096,10 +2296,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": false, - "importer_type": 16, "description": "Commentaire : #AFEAF", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2107,10 +2308,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, - "required": false, - "importer_type": 16, "description": "Commentaire : #BSR_CONTRI", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2118,10 +2320,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 10, - "required": false, - "importer_type": 16, "description": "Code postal domicie", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2129,10 +2332,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 11, - "required": false, - "importer_type": 16, "description": "Code postal", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2140,10 +2344,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 17, - "required": false, - "importer_type": 16, "description": "Quelle est l'adresse pr\u00e9f\u00e9r\u00e9e ? (pro/domicile)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2151,10 +2356,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 19, - "required": false, - "importer_type": 16, "description": "Type de contact", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2162,10 +2368,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 28, - "required": false, - "importer_type": 16, "description": "Nom", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2173,10 +2380,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 29, - "required": false, - "importer_type": 16, "description": "Nom de la structure associ\u00e9e", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2184,10 +2392,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 31, - "required": false, - "importer_type": 16, "description": "Commentaire", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2195,10 +2404,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 32, - "required": false, - "importer_type": 16, "description": "T\u00e9l\u00e9phone champs brut", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2206,10 +2416,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 33, - "required": false, - "importer_type": 16, "description": "Pays du domicile", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2217,10 +2428,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 34, - "required": false, - "importer_type": 16, "description": "Pays", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2228,10 +2440,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 36, - "required": false, - "importer_type": 16, "description": "Pr\u00e9nom", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2239,10 +2452,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 37, - "required": false, - "importer_type": 16, "description": "Titre", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2250,10 +2464,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 41, - "required": false, - "importer_type": 16, "description": "Type de t\u00e9l\u00e9phone (\u00e0 retraiter)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2261,10 +2476,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 42, - "required": false, - "importer_type": 16, "description": "Ville du domicile", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2272,10 +2488,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 43, - "required": false, - "importer_type": 16, "description": "Ville", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 16 } }, { @@ -2283,10 +2500,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 1, + "description": "Code PATRIARCHE\r\n ou\r\n code num\u00e9rique (entier) UNIQUE pour une op\u00e9ration", + "regexp_pre_filter": null, "required": true, - "importer_type": 17, - "description": "Code patriarche ou code num\u00e9rique (entier) unique pour une op\u00e9ration", - "regexp_pre_filter": null + "label": "CODE OPERATION", + "importer_type": 17 } }, { @@ -2294,10 +2512,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 2, - "required": true, - "importer_type": 17, "description": "Nom usuel de l'op\u00e9ration", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": "Nom", + "importer_type": 17 } }, { @@ -2305,10 +2524,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 3, - "required": true, - "importer_type": 17, "description": "Ann\u00e9e de r\u00e9f\u00e9rence (peut \u00eatre celle o\u00f9 le projet d'op\u00e9ration a \u00e9t\u00e9 cr\u00e9\u00e9 ou bien celle de la r\u00e9alisation selon votre usage) ", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": "Ann\u00e9e", + "importer_type": 17 } }, { @@ -2316,10 +2536,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 4, - "required": false, - "importer_type": 17, "description": "Index (num\u00e9ro par ann\u00e9e), le couple ann\u00e9e + index doit \u00eatre unique", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2327,10 +2548,23 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 5, - "required": true, - "importer_type": 17, "description": "Type d'op\u00e9ration (parmi une liste)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 17 + } + }, + { + "pk": 335, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 6, + "description": "Ancien code unique de l'op\u00e9ration, peut \u00eatre la r\u00e9f\u00e9rence unique d'une op\u00e9ration pass\u00e9e comme un code DRACAR par exemple, 200 carac. max.", + "regexp_pre_filter": null, + "required": false, + "label": "Ancien code", + "importer_type": 17 } }, { @@ -2338,10 +2572,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 7, + "description": "R\u00e9f\u00e9rence du dossier administratif associ\u00e9 \u00e0 l'op\u00e9ration sous la forme ANNEE-INDEX. Exemple : \"2002-4\".", + "regexp_pre_filter": null, "required": false, - "importer_type": 17, - "description": "R\u00e9f\u00e9rence du dossier administratif associ\u00e9 \u00e0 l'op\u00e9ration sous la forme ANNEE-INDEX par exemple : \"2002-4\"", - "regexp_pre_filter": null + "label": "", + "importer_type": 17 } }, { @@ -2349,10 +2584,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 8, - "required": false, - "importer_type": 17, "description": "Identifiants des sites (entit\u00e9s arch\u00e9ologiques) concern\u00e9es par l'op\u00e9ration, s\u00e9par\u00e9es par \u00ab\u00a0&\u00a0\u00bb. \r\nExemple : \"44 125 0028 & 44 125 0029\"", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": "", + "importer_type": 17 } }, { @@ -2360,10 +2596,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 9, - "required": false, - "importer_type": 17, "description": "Types de vestiges (s\u00e9par\u00e9s par un \u00ab\u00a0&\u00a0\u00bb)\r\nExemple : \"four & fosses & villa\"", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2371,10 +2608,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 10, + "description": "P\u00e9riodes concern\u00e9es (s\u00e9par\u00e9es par un \u00ab\u00a0&\u00a0\u00bb). \r\nExemple : \"Gallo-romain & Fer & Med\".", + "regexp_pre_filter": null, "required": false, - "importer_type": 17, - "description": "P\u00e9riodes concern\u00e9es (s\u00e9par\u00e9es par un \u00ab\u00a0&\u00a0\u00bb)\r\nExemple : \"Gallo-romain & Fer & Med\"", - "regexp_pre_filter": null + "label": "", + "importer_type": 17 } }, { @@ -2382,10 +2620,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 11, - "required": false, - "importer_type": 17, "description": "Titre (M., Mme), du responsable d'op\u00e9ration (RO)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2393,10 +2632,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 12, - "required": false, - "importer_type": 17, "description": "Pr\u00e9nom du Responsable scientifique (responsable d'op\u00e9ration)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2404,10 +2644,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 13, - "required": false, - "importer_type": 17, "description": "Nom du Responsable scientifique (responsable d'op\u00e9ration)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2415,10 +2656,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 14, + "description": "Rattachement du Responsable scientifique (responsable d'op\u00e9ration)\r\nExemple : \"INRAP\" ou plus pr\u00e9cis \"INRAP Direction interr\u00e9gionale Grand Ouest\" selon votre degr\u00e9 de pr\u00e9cision dans la gestion des rattachements et des organisations.", + "regexp_pre_filter": null, "required": false, - "importer_type": 17, - "description": "Rattachement du Responsable scientifique (responsable d'op\u00e9ration)\r\nExemple : \"INRAP\" ou plus pr\u00e9cis \"INRAP Direction interr\u00e9gionale Grand Ouest\" selon votre degr\u00e9 de pr\u00e9cision dans la gestion des rattachements et des organisation.", - "regexp_pre_filter": null + "label": null, + "importer_type": 17 } }, { @@ -2426,10 +2668,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 15, + "description": "Nom de l'op\u00e9rateur (organisation). Peut \u00eatre diff\u00e9rent de l'organisation de rattachement du responsable d'op\u00e9ration.", + "regexp_pre_filter": null, "required": false, - "importer_type": 17, - "description": "Nom de l'op\u00e9rateur (organisation)", - "regexp_pre_filter": null + "label": null, + "importer_type": 17 } }, { @@ -2437,10 +2680,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 16, - "required": false, - "importer_type": 17, "description": "R\u00e9f\u00e9rence de l'op\u00e9rateur (code ou autre r\u00e9f\u00e9rence interne de l'op\u00e9rateur)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2448,10 +2692,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 17, - "required": false, - "importer_type": 17, "description": "Titre (M., Mme), du responsable du suivi scientifique", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2459,10 +2704,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 18, - "required": false, - "importer_type": 17, "description": "Pr\u00e9nom du responsable du suivi scientifique (ex\u00a0: resp. SRA ou pilote de l'op\u00e9ration, mais non responsable de celle-ci)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2470,10 +2716,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 19, - "required": false, - "importer_type": 17, "description": "Nom du responsable du suivi scientifique (ex : resp. SRA ou pilote de l'op\u00e9ration, mais non responsable de celle-ci)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2481,10 +2728,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 20, - "required": false, - "importer_type": 17, "description": "Rattachement du resp. du suivi scientifique", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2492,10 +2740,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 21, - "required": false, - "importer_type": 17, "description": "Surface couverte par l'op\u00e9ration (m2)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2503,10 +2752,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 22, - "required": false, - "importer_type": 17, "description": "Date de d\u00e9but de l'op\u00e9ration (d\u00e9but du terrain d'ordinaire mais vous pouvez utiliser autre chose)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2514,10 +2764,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 23, - "required": false, - "importer_type": 17, "description": "Date de fin de l'op\u00e9ration (fin du terrain d'ordinaire mais vous pouvez utiliser autre chose)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2525,10 +2776,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 24, - "required": false, - "importer_type": 17, "description": "Date de cl\u00f4ture (peut-\u00eatre la date de rendu de la documentation, la fin de la recherche associ\u00e9e ou autre) d\u2019ordinaire cela repr\u00e9sente la date \u00e0 partir de laquelle la documentation issue de l'op\u00e9ration n'est plus du ressort du responsable d'op\u00e9ration, mais vous pouvez utiliser autre chose.", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2536,10 +2788,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 25, - "required": false, - "importer_type": 17, "description": "Date d'avis (ex\u00a0: avis de CIRA ou autre selon votre usage)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2547,10 +2800,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 26, - "required": false, - "importer_type": 17, "description": "R\u00e9sultats consid\u00e9r\u00e9s comme n\u00e9gatif (d\u2019ordinaire utilis\u00e9 pour les diagnostics n\u00e9gatifs)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2558,10 +2812,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 27, - "required": false, - "importer_type": 17, "description": "Pr\u00e9nom du rapporteur (CIRA ou autre selon votre usage de la notion d'avis)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2569,10 +2824,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 28, - "required": false, - "importer_type": 17, "description": "Nom du rapporteur (CIRA ou autre selon votre usage de la notion d'avis)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2580,10 +2836,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 29, - "required": false, - "importer_type": 17, "description": "Rattachement rapporteur (organisation)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2591,10 +2848,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 30, - "required": false, - "importer_type": 17, "description": "Date limite pr\u00e9vue pour le rendu de la documentation scientifique", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2602,10 +2860,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 31, - "required": false, - "importer_type": 17, "description": "Documentation re\u00e7ue", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2613,10 +2872,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 32, - "required": false, - "importer_type": 17, "description": "Date limite pr\u00e9vue pour le rendu du mobilier", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2624,10 +2884,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 33, + "description": "Mobilier re\u00e7u ou livr\u00e9 selon vos usages et proc\u00e9dures", + "regexp_pre_filter": null, "required": false, - "importer_type": 17, - "description": "Mobilier re\u00e7u (ou livr\u00e9)", - "regexp_pre_filter": null + "label": null, + "importer_type": 17 } }, { @@ -2635,10 +2896,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 34, - "required": false, - "importer_type": 17, "description": "Commentaire g\u00e9n\u00e9ral", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2646,10 +2908,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 35, - "required": false, - "importer_type": 17, "description": "Date de livraison du rapport", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2657,10 +2920,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 36, - "required": false, - "importer_type": 17, "description": "\u00c9tat de traitement du rapport", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2668,10 +2932,11 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 37, - "required": false, - "importer_type": 17, "description": "Commentaire sur la documentation scientifique (y compris mobilier)", - "regexp_pre_filter": null + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 17 } }, { @@ -2679,776 +2944,2165 @@ "model": "ishtar_common.importercolumn", "fields": { "col_number": 38, + "description": "Nom du fichier image (jpg ou png), exemple \"IMG_5023.jpg\"\r\nLes fichiers images doivent \u00eatre joints \u00e0 l'import dans un fichier ZIP", + "regexp_pre_filter": null, "required": false, - "importer_type": 17, - "description": "Image (nom du fichier)", - "regexp_pre_filter": null + "label": null, + "importer_type": 17 } }, { - "pk": 46, - "model": "ishtar_common.importtarget", + "pk": 302, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "find__conservatory_state", - "column": 45, - "formater_type": 22, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 1, + "description": "Code PATRIARCHE ou code UNIQUE de l'op\u00e9ration associ\u00e9e", + "regexp_pre_filter": null, + "required": true, + "label": "CODE OPERATION", + "importer_type": 18 } }, { - "pk": 47, - "model": "ishtar_common.importtarget", + "pk": 311, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "find__preservation_to_considers", - "column": 46, - "formater_type": 23, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 2, + "description": "Commune (via num\u00e9ro INSEE)", + "regexp_pre_filter": null, + "required": true, + "label": "INSEE", + "importer_type": 18 } }, { - "pk": 49, - "model": "ishtar_common.importtarget", + "pk": 312, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "topographic_localisation", - "column": 48, - "formater_type": 3, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 3, + "description": "Parcelle (identifiant externe), soit la section plus la parcelle sans espaces, par exemple \"ZA253\"", + "regexp_pre_filter": null, + "required": true, + "label": "Parcelle", + "importer_type": 18 } }, { - "pk": 50, - "model": "ishtar_common.importtarget", + "pk": 313, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "special_interest", - "column": 49, - "formater_type": 3, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 4, + "description": "Ann\u00e9e de la r\u00e9f\u00e9rence cadastrale (exemple : \"1980\")", + "regexp_pre_filter": null, + "required": false, + "label": "Ann\u00e9e cadastre", + "importer_type": 18 } }, { - "pk": 51, - "model": "ishtar_common.importtarget", + "pk": 314, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "description", - "column": 50, - "formater_type": 16, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 5, + "description": "Label / Identifiant (externe) de l'UE, ex: \"US 145\", \"Tranch\u00e9e 145\", \"145\", \"St 17\" etc.\r\nDoit \u00eatre unique pour une parcelle donn\u00e9e", + "regexp_pre_filter": null, + "required": true, + "label": "Label UE", + "importer_type": 18 } }, { - "pk": 15, - "model": "ishtar_common.importtarget", + "pk": 315, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "operation__code_patriarche", - "column": 14, - "formater_type": 1, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 6, + "description": "Type d'UE, exemple : \"US\", \"Couche\", \"Tranch\u00e9e\", \"zone\", \"Secteur\", \"Log\", \"Carr\u00e9\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Type", + "importer_type": 18 } }, { - "pk": 28, - "model": "ishtar_common.importtarget", + "pk": 316, + "model": "ishtar_common.importercolumn", "fields": { - "comment": "", - "target": "label", - "column": 27, - "formater_type": 3, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 7, + "description": "Description (texte, 1000 carac. max.)", + "regexp_pre_filter": null, + "required": false, + "label": "Description", + "importer_type": 18 } }, { - "pk": 48, - "model": "ishtar_common.importtarget", + "pk": 317, + "model": "ishtar_common.importercolumn", "fields": { - "comment": "", - "target": "comment", - "column": 47, - "formater_type": 35, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 8, + "description": "Commentaire g\u00e9n\u00e9ral (1000 carac. max.)", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 } }, { - "pk": 13, - "model": "ishtar_common.importtarget", + "pk": 318, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "town__numero_insee", - "column": 12, - "formater_type": 11, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 9, + "description": "Taille ou longueur (en m\u00e8tre), exemple \"1.2\", \"12\"", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 } }, { - "pk": 2, - "model": "ishtar_common.importtarget", + "pk": 319, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "operation_type", - "column": 2, - "formater_type": 2, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 10, + "description": "Largeur (en m\u00e8tre), exemple \"1.2\", \"12\"", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 } }, { - "pk": 4, - "model": "ishtar_common.importtarget", + "pk": 320, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "operator__name", - "column": 4, - "formater_type": 3, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 11, + "description": "\u00c9paisseur (en m\u00e8tre), exemple \"0.2\", \"2\"", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 } }, { - "pk": 6, - "model": "ishtar_common.importtarget", + "pk": 321, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "start_date", - "column": 6, - "formater_type": 5, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 12, + "description": "Profondeur (en m\u00e8tre), exemple \"0.2\", \"2\"", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 } }, { - "pk": 7, - "model": "ishtar_common.importtarget", + "pk": 322, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "excavation_end_date", - "column": 7, - "formater_type": 5, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 13, + "description": "Lieu, description textuelle de la localisation exemple : \"Au pied de l'arbre du P\u00e8re Jahouen\", \"En limite nord de la parcelle\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 } }, { - "pk": 8, - "model": "ishtar_common.importtarget", + "pk": 323, + "model": "ishtar_common.importercolumn", "fields": { - "comment": null, - "target": "periods", - "column": 8, - "formater_type": 6, - "concat_str": null, - "regexp_filter": null, - "concat": false, - "force_new": false + "col_number": 14, + "description": "Contient ou non du mobilier (oui/non)", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 } }, { - "pk": 14, - "model": "ishtar_common.importtarget", + "pk": 324, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 15, + "description": "Nom du fichier image (jpg ou png), exemple \"IMG_5023.jpg\".\r\nLes fichiers images doivent \u00eatre joints \u00e0 l'import dans un fichier ZIP", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 + } + }, + { + "pk": 325, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 16, + "description": "Chronologies associ\u00e9es (plusieurs possibles s\u00e9par\u00e9es par &), exemple : \"Gallo-romain & M\u00e9di\u00e9val\", \"GR&MED\", \"M\u00e9solithique final & M\u00e9so moyen & Epipal\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 + } + }, + { + "pk": 326, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 17, + "description": "Commentaire sur les datations (texte 1000 carac. max.), exemple : \"IIe - IIIe s.\", \"fin XVe ou plus tard\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 + } + }, + { + "pk": 327, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 18, + "description": "Description du remplissage, 1000 carac. max. exemple \"Limons argileux brun riche en charbons\"", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 18 + } + }, + { + "pk": 328, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 19, + "description": "Interpr\u00e9tation, texte 1000 carac. max., exemple \"Mur de cl\u00f4ture\", \"Sol couvert d'une mosa\u00efque, \"Pal\u00e9osol du d\u00e9but de l'Holoc\u00e8ne\", \"Four de r\u00e9duction de minerai de fer\", \"TP\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Interpr\u00e9tation", + "importer_type": 18 + } + }, + { + "pk": 329, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 20, + "description": "Activit\u00e9, r\u00e9f\u00e9rence \u00e0 des types, par exemple : \"Naturelle\", \"Construction\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Type d'activit\u00e9", + "importer_type": 18 + } + }, + { + "pk": 330, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 21, + "description": "Identification (type), par exemple \"Niveau d'occupation\", \"Mur\", \"Colluvions\", \"Chablis\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Identification (type)", + "importer_type": 18 + } + }, + { + "pk": 331, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 22, + "description": "Terminus ante quem, limite temporelle avant laquelle l'UE s'est form\u00e9e, ici sous la forme de valeurs enti\u00e8res, exemple : \"322\", \"-45\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "TAQ", + "importer_type": 18 + } + }, + { + "pk": 332, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 23, + "description": "Terminus post quem, limite temporelle apr\u00e8s laquelle l'UE s'est form\u00e9e, ici sous la forme de valeurs enti\u00e8res, exemple : \"322\", \"-45\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "TPQ", + "importer_type": 18 + } + }, + { + "pk": 333, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 24, + "description": "Terminus ante quem estim\u00e9e, limite temporelle avant laquelle l'UE s'est form\u00e9e, ici sous la forme de valeurs enti\u00e8res, exemple : \"322\", \"-45\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "TAQ estim\u00e9e", + "importer_type": 18 + } + }, + { + "pk": 334, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 25, + "description": "Terminus post quem estim\u00e9e, limite temporelle avant laquelle l'UE s'est form\u00e9e, ici sous la forme de valeurs enti\u00e8res, exemple : \"322\", \"-45\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "TPQ estim\u00e9e", + "importer_type": 18 + } + }, + { + "pk": 303, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 1, + "description": "Code PATRIARCHE\r\n ou\r\n code num\u00e9rique (entier) UNIQUE pour une op\u00e9ration", + "regexp_pre_filter": null, + "required": true, + "label": "CODE OPERATION", + "importer_type": 19 + } + }, + { + "pk": 304, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 2, + "description": "Commune (via num\u00e9ro INSEE)", + "regexp_pre_filter": 2, + "required": true, + "label": null, + "importer_type": 19 + } + }, + { + "pk": 305, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 3, + "description": "Identifiant externe", + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 19 + } + }, + { + "pk": 306, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 4, + "description": "Section (ex : \"ZA\"), maximum 4 caract\u00e8res", + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 19 + } + }, + { + "pk": 307, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 5, + "description": "Num\u00e9ro de la parcelle (ex: \"253\"), mais peut accueillir une r\u00e9f\u00e9rence sous la forme de caract\u00e8res (maximum 6)", + "regexp_pre_filter": null, + "required": true, + "label": null, + "importer_type": 19 + } + }, + { + "pk": 308, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 6, + "description": "Ann\u00e9e de la r\u00e9f\u00e9rence cadastrale (exemple : \"1980\")", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 19 + } + }, + { + "pk": 309, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 7, + "description": "Lieu dit ou adresse associ\u00e9s \u00e0 la parcelle", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 19 + } + }, + { + "pk": 310, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 8, + "description": "Parcelle dans le domaine public ou non (binaire, oui/non)", + "regexp_pre_filter": null, + "required": false, + "label": null, + "importer_type": 19 + } + }, + { + "pk": 336, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 1, + "description": "Code PATRIARCHE ou code num\u00e9rique (entier) UNIQUE pour une op\u00e9ration.", + "regexp_pre_filter": null, + "required": true, + "label": "CODE OPERATION", + "importer_type": 20 + } + }, + { + "pk": 337, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 2, + "description": "Commune (via num\u00e9ro INSEE).", + "regexp_pre_filter": null, + "required": true, + "label": "INSEE", + "importer_type": 20 + } + }, + { + "pk": 338, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 3, + "description": "Parcelle (identifiant externe), soit la section plus la parcelle sans espaces. Exemple : \"ZA253\".", + "regexp_pre_filter": null, + "required": true, + "label": "Parcelle", + "importer_type": 20 + } + }, + { + "pk": 339, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 4, + "description": "Label / Identifiant (externe) de l'UE. Exemple : \"US 145\", \"Tranch\u00e9e 145\", \"145\", \"St 17\", etc. Doit \u00eatre unique pour une parcelle donn\u00e9e.", + "regexp_pre_filter": null, + "required": true, + "label": "Label UE", + "importer_type": 20 + } + }, + { + "pk": 340, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 5, + "description": "Identifiant libre pour le mobilier. Exemple : \"12\", \"Lot 24\", \"Sac vert\", etc.\r\nDoit \u00eatre unique \u00e0 l'\u00e9chelle de l'UE associ\u00e9e.", + "regexp_pre_filter": null, + "required": true, + "label": "Label mobilier", + "importer_type": 20 + } + }, + { + "pk": 341, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 6, + "description": "Identifiant pr\u00e9c\u00e9dent, li\u00e9 \u00e0 une base de donn\u00e9e ou un autre mode d'enregistrement. Exemple : \"400.01.05\", \"Beau biface\", \"inv. 4523\", \"Iso.4220\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Identifiant pr\u00e9c\u00e9dent", + "importer_type": 20 + } + }, + { + "pk": 343, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 7, + "description": "R\u00e9f\u00e9rence du point topo, d'ordinaire un entier mais peut \u00eatre autre chose. Champ texte, max. 120 caract\u00e8res. Exemple : \"7220\", \"pt. 72\", etc.\r\n\r\nNON LI\u00c9 POUR L'INSTANT.", + "regexp_pre_filter": null, + "required": false, + "label": "Ref. point topo", + "importer_type": 20 + } + }, + { + "pk": 342, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 8, + "description": "Description du mobilier, objet ou lot. Champ texte, max. 1000 caract\u00e8res. Exemple : \"Fibule aviforme \u00e0 roustade bipolaire\".", + "regexp_pre_filter": null, + "required": false, + "label": "Description", + "importer_type": 20 + } + }, + { + "pk": 344, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 9, + "description": "D\u00e9finit si on enregistre ici un objet seul (parfois appel\u00e9 Isolation) ou un lot d'objets. Exemple : \"lot\", \"objet\", \"Iso\", \"vrac\", etc.\r\nEst ici traduit en binaire : \"objet\" ou \"lot\".", + "regexp_pre_filter": null, + "required": false, + "label": "Lot ou objet", + "importer_type": 20 + } + }, + { + "pk": 345, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 10, + "description": "D\u00e9finit si un objet est complet ou non. Exemple : \"complet\", \"est complet\", \"incomplet\".\r\nEst ici traduit en binaire : \"complet\" ou \"incomplet\". ", + "regexp_pre_filter": null, + "required": false, + "label": "Compl\u00e9tude", + "importer_type": 20 + } + }, + { + "pk": 346, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 11, + "description": "Type(s) de mat\u00e9riau(x) s\u00e9par\u00e9s par des \"&\". Exemple : \"m\u00e9tal & os\", \"LT\", \"Min\u00e9ral\", \"Granito\u00efde & Basalte & Ardoise\".", + "regexp_pre_filter": null, + "required": false, + "label": "Materiaux(x)", + "importer_type": 20 + } + }, + { + "pk": 347, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 12, + "description": "\u00c9tat de conservation. Exemple : \"Instable\", \"Stable\", \"Inconnu\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "\u00c9tat de conservation", + "importer_type": 20 + } + }, + { + "pk": 348, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 13, + "description": "Commentaire relatif \u00e0 la conservation. Champ texte, max. 1000 caract\u00e8res. Exemple : \"Devrait \u00eatre conserv\u00e9 dans une chambre climatis\u00e9e\", \"Ne sera plus qu'une poudre, si on ne s'en occupe pas sous peu\", \" \u00e0 jeter\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Commentaire conservation", + "importer_type": 20 + } + }, + { + "pk": 349, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 14, + "description": "Type(s) d'objet(s), s\u00e9par\u00e9s par des \"&\". Exemple : \"tesson & charbon\", \"os & m\u00e9tal\", \"faune\", \"fibule & bague\", \"lame & lamelle\", \"\u00e9clat & nucl\u00e9us\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Type(s) d'objet(s)", + "importer_type": 20 + } + }, + { + "pk": 350, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 15, + "description": "Type(s) d'actions de conservation \u00e0 mener, s\u00e9par\u00e9s par des \"&\". Exemple : \"\u00c0 restaurer\", \"reconditionnement\", \"\u00c0 reconditionner & \u00c0 stabiliser\"", + "regexp_pre_filter": null, + "required": false, + "label": "Type(s) d'actions de conservation \u00e0 mener", + "importer_type": 20 + } + }, + { + "pk": 351, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 16, + "description": "Type(s) d'int\u00e9r\u00eat scientifique ou d'int\u00e9grit\u00e9, s\u00e9par\u00e9s par des \"&\". Exemple : \"Arch\u00e9ologiquement complet\", \"absent\", \"perdu\", etc.\r\nPeut \u00e9galement qualifier (selon votre usage) des qualit\u00e9s de fragmentation : \"proximal\", \"distal\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Type(s) d'int\u00e9grit\u00e9(s) et/ou int\u00e9r\u00eat(s)", + "importer_type": 20 + } + }, + { + "pk": 352, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 17, + "description": "Type(s) de remarquabilit\u00e9(s), s\u00e9par\u00e9s par des \"&\". Exemple : \"Mus\u00e9e\", \"Publication\", \"Tessonier & Publication\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Type(s) de remarqualibit\u00e9(s)", + "importer_type": 20 + } + }, + { + "pk": 353, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 18, + "description": "Longueur en cm (nombre d\u00e9cimal).", + "regexp_pre_filter": null, + "required": false, + "label": "Longueur (cm)", + "importer_type": 20 + } + }, + { + "pk": 354, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 19, + "description": "Largeur en cm (nombre d\u00e9cimal).", + "regexp_pre_filter": null, + "required": false, + "label": "Largeur (cm)", + "importer_type": 20 + } + }, + { + "pk": 355, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 20, + "description": "Hauteur en cm (nombre d\u00e9cimal).", + "regexp_pre_filter": null, + "required": false, + "label": "Hauteur (cm)", + "importer_type": 20 + } + }, + { + "pk": 356, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 21, + "description": "Diam\u00e8tre en cm (nombre d\u00e9cimal).", + "regexp_pre_filter": null, + "required": false, + "label": "Diam\u00e8tre (cm)", + "importer_type": 20 + } + }, + { + "pk": 357, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 22, + "description": "Commentaire permettant de donner des pr\u00e9cisions (ou d'importer des donn\u00e9es mixtes). Champ texte, max. 1000 caract\u00e8res. Exemple : \"18 x 12 x 5\", \"col de 43 mm\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Commentaire / Pr\u00e9cisions sur les dimensions ", + "importer_type": 20 + } + }, + { + "pk": 358, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 23, + "description": "Nombre d'objet(s) li\u00e9(s) \u00e0 cet enregistrement (entier). Exemple : \"12\".\r\nAttention, ce champ n'est pas contraint par l'information de type OBJET/LOT (colonne n\u00b09).", + "regexp_pre_filter": null, + "required": false, + "label": "Nombre", + "importer_type": 20 + } + }, + { + "pk": 359, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 24, + "description": "Marquage visible sur le mobilier. Champ texte, max. 1000 caract\u00e8res. Exemple : \"id1234 la Roche aux F\u00e9es\", \"MTX-45\", etc.\r\nCeci reproduit d'ordinaire un marquage r\u00e9alis\u00e9 par un arch\u00e9ologue. Il ne s'agit pas ici de reproduire une \u00e9pigraphie ou tout autre inscription arch\u00e9ologique (graffito, d\u00e9dicaces, defixio, etc.) , mais vous pouvez l'utiliser pour cela si vous n'avez pas \u00e0 utiliser de marquage arch\u00e9ologique.", + "regexp_pre_filter": null, + "required": false, + "label": "Marque", + "importer_type": 20 + } + }, + { + "pk": 360, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 25, + "description": "Commentaire g\u00e9n\u00e9ral libre. Champ texte, max. 2000 caract\u00e8res. Exemple : \"habillage en nid d'abeille, poli g\u00e9n\u00e9ralis\u00e9, encoche emmanchement lat\u00e9ral ouvert sur la face sup\u00e9rieure\", \"1 bord + bec tubulaire\", \"fibule de Langton Down\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Commentaire g\u00e9n\u00e9ral", + "importer_type": 20 + } + }, + { + "pk": 361, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 26, + "description": "Commentaire g\u00e9n\u00e9ral sur les datations, si besoin. Champ texte, max. 1000 caract\u00e8res. Exemple : \"plut\u00f4t fin IIe s. ou d\u00e9but IIIe s.\", \"Datation \u00e0 pr\u00e9ciser avant publication\", \" Datation rapide faite par M. Dupont\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Commentaire g\u00e9n\u00e9ral sur les datations", + "importer_type": 20 + } + }, + { + "pk": 362, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 27, + "description": "Valeur estim\u00e9e (\u20ac), sous la forme d'un nombre d\u00e9cimal. Exemple : \"4500\", \"0.2\", etc.\r\nUtile essentiellement pour les probl\u00e8mes de partage, vente, assurance etc.", + "regexp_pre_filter": null, + "required": false, + "label": "Valeur estim\u00e9e", + "importer_type": 20 + } + }, + { + "pk": 363, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 28, + "description": "Nom exact du fichier image, sous la forme XXXXX.jpg.\r\nAttention au respect strict des caract\u00e8res et majuscules lors d'un import de ce type, \".JPG\" ou \"*.jpg\", etc.\r\nExemple : \"P1030831.JPG\", \"IMG_6485.JPG\", \"fibule.jpg\", etc.\r\nLors de l'import il faut ajouter ces images sous la forme d'un fichier zip (joint au csv import\u00e9) pour que les images soient automatiquement int\u00e9gr\u00e9es.\r\n", + "regexp_pre_filter": null, + "required": false, + "label": "Image", + "importer_type": 20 + } + }, + { + "pk": 364, + "model": "ishtar_common.importercolumn", + "fields": { + "col_number": 29, + "description": "Chronologies associ\u00e9es (plusieurs possibles s\u00e9par\u00e9es par &). Exemple : \"Gallo-romain & M\u00e9di\u00e9val\", \"GR&MED\", \"M\u00e9solithique final & M\u00e9so moyen & Epipal\", etc.", + "regexp_pre_filter": null, + "required": false, + "label": "P\u00e9riodes", + "importer_type": 20 + } + }, + { + "pk": 46, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "find__conservatory_state", + "column": 45, + "formater_type": 22, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 49, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "topographic_localisation", + "column": 48, + "formater_type": 3, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 50, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "special_interest", + "column": 49, + "formater_type": 3, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 51, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "description", + "column": 50, + "formater_type": 16, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 15, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "operation__code_patriarche", + "column": 14, + "formater_type": 1, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 28, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "label", + "column": 27, + "formater_type": 3, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 48, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "comment", + "column": 47, + "formater_type": 35, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 13, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "town__numero_insee", + "column": 12, + "formater_type": 11, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 2, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "operation_type", + "column": 2, + "formater_type": 2, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 4, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "operator__name", + "column": 4, + "formater_type": 3, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 6, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "start_date", + "column": 6, + "formater_type": 5, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 7, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "excavation_end_date", + "column": 7, + "formater_type": 5, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 8, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "periods", + "column": 8, + "formater_type": 6, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 14, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "address", + "column": 13, + "formater_type": 10, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 16, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "external_id", + "column": 15, + "formater_type": 11, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 17, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "source_type", + "column": 16, + "formater_type": 12, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 18, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "support_type", + "column": 17, + "formater_type": 13, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 40, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "find__material_types", + "column": 39, + "formater_type": 20, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 19, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "item_number", + "column": 18, + "formater_type": 1, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 20, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "authors__person__raw_name", + "column": 19, + "formater_type": 4, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 21, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "creation_date", + "column": 20, + "formater_type": 14, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 22, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "format_type", + "column": 21, + "formater_type": 15, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 23, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "description", + "column": 22, + "formater_type": 16, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 24, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "comment", + "column": 23, + "formater_type": 16, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 25, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "scale", + "column": 24, + "formater_type": 17, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 53, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "parcel_number", + "column": 51, + "formater_type": 8, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 54, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "section", + "column": 52, + "formater_type": 7, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 5, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "scientist__raw_name", + "column": 5, + "formater_type": 4, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 56, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "year", + "column": 11, + "formater_type": 14, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 35, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "comment", + "column": 34, + "formater_type": 16, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 31, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "identification", + "column": 30, + "formater_type": 24, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 57, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "interpretation", + "column": 54, + "formater_type": 16, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 26, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "additional_information", + "column": 25, + "formater_type": 16, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 29, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "unit", + "column": 28, + "formater_type": 18, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 30, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "description", + "column": 29, + "formater_type": 16, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 32, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "opening_date", + "column": 31, + "formater_type": 5, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 33, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "closing_date", + "column": 32, + "formater_type": 5, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 1, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "code_patriarche", + "column": 1, + "formater_type": 1, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 41, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "find__find_number", + "column": 40, + "formater_type": 1, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 42, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "find__weight", + "column": 41, + "formater_type": 21, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 43, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "find__weight_unit", + "column": 42, + "formater_type": 7, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 45, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "discovery_date", + "column": 44, + "formater_type": 5, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 36, + "model": "ishtar_common.importtarget", + "fields": { + "comment": null, + "target": "datings__period", + "column": 35, + "formater_type": 6, + "concat_str": null, + "regexp_filter": null, + "concat": false, + "force_new": true + } + }, + { + "pk": 253, + "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "address", - "column": 13, - "formater_type": 10, + "comment": "", + "target": "find__datings__period", + "column": 228, + "formater_type": 6, "concat_str": null, "regexp_filter": null, "concat": false, - "force_new": false + "force_new": true } }, { - "pk": 16, + "pk": 55, "model": "ishtar_common.importtarget", "fields": { - "comment": null, + "comment": "", "target": "external_id", - "column": 15, + "column": 53, "formater_type": 11, - "concat_str": null, + "concat_str": "-", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 17, + "pk": 27, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "source_type", - "column": 16, - "formater_type": 12, - "concat_str": null, + "comment": "", + "target": "operation__code_patriarche", + "column": 26, + "formater_type": 1, + "concat_str": "-", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 250, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "parcel__external_id", + "column": 225, + "formater_type": 28, + "concat_str": "-", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 34, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "parcel__external_id", + "column": 33, + "formater_type": 11, + "concat_str": "-", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 37, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "context_record__external_id", + "column": 36, + "formater_type": 11, + "concat_str": "-", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 252, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "context_record__external_id", + "column": 227, + "formater_type": 28, + "concat_str": "-", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 44, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "context_record__external_id", + "column": 43, + "formater_type": 3, + "concat_str": "-", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 9, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "operation__code_patriarche", + "column": 9, + "formater_type": 1, + "concat_str": "-", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 251, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "context_record__external_id", + "column": 226, + "formater_type": 35, + "concat_str": "-", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 290, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "code_patriarche", + "column": 265, + "formater_type": 1, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 293, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "operation_code", + "column": 268, + "formater_type": 1, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 296, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "periods", + "column": 273, + "formater_type": 6, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 299, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "scientist__surname", + "column": 275, + "formater_type": 3, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 302, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "operator__name", + "column": 278, + "formater_type": 36, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 305, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "in_charge__surname", + "column": 281, + "formater_type": 31, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 308, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "surface", + "column": 284, + "formater_type": 1, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 311, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "end_date", + "column": 287, + "formater_type": 25, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 314, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "cira_rapporteur__surname", + "column": 290, + "formater_type": 36, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 18, + "pk": 317, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "support_type", - "column": 17, - "formater_type": 13, - "concat_str": null, + "comment": "", + "target": "documentation_deadline", + "column": 293, + "formater_type": 25, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 40, + "pk": 320, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "find__material_types", - "column": 39, - "formater_type": 20, - "concat_str": null, + "comment": "", + "target": "finds_received", + "column": 296, + "formater_type": 19, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 19, + "pk": 323, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "item_number", - "column": 18, - "formater_type": 1, - "concat_str": null, + "comment": "", + "target": "report_processing", + "column": 299, + "formater_type": 37, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 20, + "pk": 47, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "authors__person__raw_name", - "column": 19, - "formater_type": 4, - "concat_str": null, + "comment": "", + "target": "find__preservation_to_considers", + "column": 46, + "formater_type": 23, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 21, + "pk": 325, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "creation_date", - "column": 20, - "formater_type": 14, - "concat_str": null, + "comment": "", + "target": "image", + "column": 301, + "formater_type": 27, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 22, + "pk": 328, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "format_type", - "column": 21, - "formater_type": 15, - "concat_str": null, + "comment": "", + "target": "town__numero_insee", + "column": 304, + "formater_type": 11, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 23, + "pk": 331, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "description", - "column": 22, - "formater_type": 16, - "concat_str": null, + "comment": "", + "target": "parcel_number", + "column": 307, + "formater_type": 8, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 24, + "pk": 334, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "comment", - "column": 23, - "formater_type": 16, - "concat_str": null, + "comment": "", + "target": "public_domain", + "column": 310, + "formater_type": 19, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 25, + "pk": 335, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "scale", - "column": 24, - "formater_type": 17, - "concat_str": null, + "comment": "", + "target": "parcel__external_id", + "column": 311, + "formater_type": 28, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 53, + "pk": 338, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "parcel_number", - "column": 51, - "formater_type": 8, - "concat_str": null, + "comment": "", + "target": "remains", + "column": 272, + "formater_type": 41, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 54, + "pk": 341, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "section", - "column": 52, - "formater_type": 7, - "concat_str": null, + "comment": "", + "target": "description", + "column": 316, + "formater_type": 16, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 5, + "pk": 344, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "scientist__raw_name", - "column": 5, - "formater_type": 4, - "concat_str": null, + "comment": "", + "target": "width", + "column": 319, + "formater_type": 21, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 56, + "pk": 347, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "year", - "column": 11, - "formater_type": 14, - "concat_str": null, + "comment": "", + "target": "location", + "column": 322, + "formater_type": 16, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 35, + "pk": 349, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "comment", - "column": 34, - "formater_type": 16, - "concat_str": null, + "comment": "", + "target": "image", + "column": 324, + "formater_type": 27, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 31, + "pk": 350, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "identification", - "column": 30, - "formater_type": 24, - "concat_str": null, + "comment": "", + "target": "datings__period", + "column": 325, + "formater_type": 6, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 57, + "pk": 353, "model": "ishtar_common.importtarget", "fields": { - "comment": null, + "comment": "", "target": "interpretation", - "column": 54, + "column": 328, "formater_type": 16, - "concat_str": null, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 26, + "pk": 356, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "additional_information", - "column": 25, - "formater_type": 16, - "concat_str": null, + "comment": "", + "target": "taq", + "column": 331, + "formater_type": 1, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 29, + "pk": 359, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "unit", - "column": 28, - "formater_type": 18, - "concat_str": null, + "comment": "", + "target": "tpq_estimated", + "column": 334, + "formater_type": 1, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 30, + "pk": 362, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "description", - "column": 29, - "formater_type": 16, - "concat_str": null, + "comment": "", + "target": "context_record__external_id", + "column": 337, + "formater_type": 28, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 32, + "pk": 365, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "opening_date", - "column": 31, - "formater_type": 5, - "concat_str": null, + "comment": "", + "target": "label", + "column": 340, + "formater_type": 3, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 33, + "pk": 368, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "closing_date", - "column": 32, - "formater_type": 5, - "concat_str": null, + "comment": "", + "target": "is_isolated", + "column": 344, + "formater_type": 19, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 1, + "pk": 371, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "code_patriarche", - "column": 1, - "formater_type": 1, - "concat_str": null, + "comment": "", + "target": "find__conservatory_state", + "column": 347, + "formater_type": 22, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 41, + "pk": 374, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "find__find_number", - "column": 40, - "formater_type": 1, - "concat_str": null, + "comment": "", + "target": "find__preservation_to_considers", + "column": 350, + "formater_type": 23, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 42, + "pk": 377, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "find__weight", - "column": 41, + "comment": "", + "target": "find__length", + "column": 353, "formater_type": 21, - "concat_str": null, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 43, + "pk": 379, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "find__weight_unit", - "column": 42, - "formater_type": 7, - "concat_str": null, + "comment": "", + "target": "find__height", + "column": 355, + "formater_type": 21, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 45, + "pk": 382, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "discovery_date", - "column": 44, - "formater_type": 5, - "concat_str": null, + "comment": "", + "target": "find__find_number", + "column": 358, + "formater_type": 1, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 384, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "find__comment", + "column": 360, + "formater_type": 33, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 36, + "pk": 385, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "datings__period", - "column": 35, - "formater_type": 6, - "concat_str": null, + "comment": "", + "target": "find__dating_comment", + "column": 361, + "formater_type": 16, + "concat_str": "", "regexp_filter": null, "concat": false, - "force_new": true + "force_new": false } }, { - "pk": 253, + "pk": 388, "model": "ishtar_common.importtarget", "fields": { "comment": "", "target": "find__datings__period", - "column": 228, + "column": 364, "formater_type": 6, - "concat_str": null, + "concat_str": "", "regexp_filter": null, "concat": false, - "force_new": true + "force_new": false } }, { - "pk": 55, + "pk": 38, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "external_id", - "column": 53, - "formater_type": 11, - "concat_str": "-", + "target": "label", + "column": 37, + "formater_type": 3, + "concat_str": null, "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 27, + "pk": 3, "model": "ishtar_common.importtarget", "fields": { - "comment": "", - "target": "operation__code_patriarche", - "column": 26, - "formater_type": 1, - "concat_str": "-", + "comment": null, + "target": "common_name", + "column": 3, + "formater_type": 3, + "concat_str": null, "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 250, + "pk": 291, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "parcel__external_id", - "column": 225, - "formater_type": 28, - "concat_str": "-", + "target": "common_name", + "column": 266, + "formater_type": 35, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 34, + "pk": 294, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "parcel__external_id", - "column": 33, - "formater_type": 11, - "concat_str": "-", + "target": "operation_type", + "column": 269, + "formater_type": 2, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 37, + "pk": 300, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "context_record__external_id", - "column": 36, - "formater_type": 11, - "concat_str": "-", + "target": "scientist__name", + "column": 276, + "formater_type": 30, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 252, + "pk": 303, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "context_record__external_id", - "column": 227, - "formater_type": 28, - "concat_str": "-", + "target": "operator_reference", + "column": 279, + "formater_type": 3, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 44, + "pk": 306, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "context_record__external_id", - "column": 43, + "target": "in_charge__name", + "column": 282, "formater_type": 3, - "concat_str": "-", + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 9, + "pk": 309, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "operation__code_patriarche", - "column": 9, - "formater_type": 1, - "concat_str": "-", + "target": "start_date", + "column": 285, + "formater_type": 25, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 251, + "pk": 312, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "context_record__external_id", - "column": 226, - "formater_type": 35, - "concat_str": "-", + "target": "cira_date", + "column": 288, + "formater_type": 25, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 290, + "pk": 315, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "code_patriarche", - "column": 265, - "formater_type": 1, + "target": "cira_rapporteur__name", + "column": 291, + "formater_type": 3, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3456,13 +5110,13 @@ } }, { - "pk": 293, + "pk": 318, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "operation_code", - "column": 268, - "formater_type": 1, + "target": "documentation_received", + "column": 294, + "formater_type": 19, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3470,13 +5124,13 @@ } }, { - "pk": 296, + "pk": 321, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "periods", - "column": 273, - "formater_type": 6, + "target": "comment", + "column": 297, + "formater_type": 35, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3484,13 +5138,13 @@ } }, { - "pk": 299, + "pk": 324, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "scientist__surname", - "column": 275, - "formater_type": 3, + "target": "scientific_documentation_comment", + "column": 300, + "formater_type": 35, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3498,13 +5152,13 @@ } }, { - "pk": 302, + "pk": 326, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "operator__name", - "column": 278, - "formater_type": 36, + "target": "operation__code_patriarche", + "column": 302, + "formater_type": 1, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3512,13 +5166,13 @@ } }, { - "pk": 305, + "pk": 329, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "in_charge__surname", - "column": 281, - "formater_type": 31, + "target": "external_id", + "column": 305, + "formater_type": 11, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3526,13 +5180,13 @@ } }, { - "pk": 308, + "pk": 332, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "surface", - "column": 284, - "formater_type": 1, + "target": "year", + "column": 308, + "formater_type": 14, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3540,13 +5194,13 @@ } }, { - "pk": 311, + "pk": 336, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "end_date", - "column": 287, - "formater_type": 25, + "target": "parcel__external_id", + "column": 312, + "formater_type": 11, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3554,13 +5208,13 @@ } }, { - "pk": 314, + "pk": 339, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "cira_rapporteur__surname", - "column": 290, - "formater_type": 36, + "target": "label", + "column": 314, + "formater_type": 3, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3568,13 +5222,13 @@ } }, { - "pk": 317, + "pk": 342, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "documentation_deadline", - "column": 293, - "formater_type": 25, + "target": "comment", + "column": 317, + "formater_type": 16, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3582,13 +5236,13 @@ } }, { - "pk": 320, + "pk": 345, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "finds_received", - "column": 296, - "formater_type": 19, + "target": "thickness", + "column": 320, + "formater_type": 21, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3596,13 +5250,13 @@ } }, { - "pk": 323, + "pk": 348, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "report_processing", - "column": 299, - "formater_type": 37, + "target": "has_furniture", + "column": 323, + "formater_type": 19, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3610,41 +5264,41 @@ } }, { - "pk": 38, + "pk": 351, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "label", - "column": 37, - "formater_type": 3, - "concat_str": null, + "target": "datings_comment", + "column": 326, + "formater_type": 16, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 3, + "pk": 354, "model": "ishtar_common.importtarget", "fields": { - "comment": null, - "target": "common_name", - "column": 3, - "formater_type": 3, - "concat_str": null, + "comment": "", + "target": "activity", + "column": 329, + "formater_type": 42, + "concat_str": "", "regexp_filter": null, "concat": false, "force_new": false } }, { - "pk": 291, + "pk": 357, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "common_name", - "column": 266, - "formater_type": 35, + "target": "tpq", + "column": 332, + "formater_type": 1, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3652,13 +5306,13 @@ } }, { - "pk": 294, + "pk": 360, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "operation_type", - "column": 269, - "formater_type": 2, + "target": "old_code", + "column": 335, + "formater_type": 30, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3666,13 +5320,13 @@ } }, { - "pk": 300, + "pk": 363, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "scientist__name", - "column": 276, - "formater_type": 30, + "target": "context_record__external_id", + "column": 338, + "formater_type": 35, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3680,13 +5334,13 @@ } }, { - "pk": 297, + "pk": 366, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "archaeological_sites__reference", - "column": 271, - "formater_type": 40, + "target": "find__previous_id", + "column": 341, + "formater_type": 3, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3694,13 +5348,13 @@ } }, { - "pk": 303, + "pk": 372, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "operator_reference", - "column": 279, - "formater_type": 3, + "target": "find__conservatory_comment", + "column": 348, + "formater_type": 16, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3708,13 +5362,13 @@ } }, { - "pk": 306, + "pk": 369, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "in_charge__name", - "column": 282, - "formater_type": 3, + "target": "find__is_complete", + "column": 345, + "formater_type": 19, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3722,13 +5376,13 @@ } }, { - "pk": 309, + "pk": 378, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "start_date", - "column": 285, - "formater_type": 25, + "target": "find__width", + "column": 354, + "formater_type": 21, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3736,13 +5390,13 @@ } }, { - "pk": 312, + "pk": 375, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "cira_date", - "column": 288, - "formater_type": 25, + "target": "find__integrities", + "column": 351, + "formater_type": 43, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3750,13 +5404,13 @@ } }, { - "pk": 315, + "pk": 380, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "cira_rapporteur__name", - "column": 291, - "formater_type": 3, + "target": "find__diameter", + "column": 356, + "formater_type": 21, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3764,13 +5418,13 @@ } }, { - "pk": 318, + "pk": 383, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "documentation_received", - "column": 294, - "formater_type": 19, + "target": "find__mark", + "column": 359, + "formater_type": 16, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3778,13 +5432,13 @@ } }, { - "pk": 321, + "pk": 386, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "comment", - "column": 297, - "formater_type": 35, + "target": "find__estimated_value", + "column": 362, + "formater_type": 21, "concat_str": "", "regexp_filter": null, "concat": false, @@ -3792,13 +5446,13 @@ } }, { - "pk": 324, + "pk": 297, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "scientific_documentation_comment", - "column": 300, - "formater_type": 35, + "target": "archaeological_sites__reference", + "column": 271, + "formater_type": 45, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5499,6 +7153,146 @@ "force_new": false } }, + { + "pk": 295, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "associated_file__external_id", + "column": 270, + "formater_type": 35, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 298, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "scientist__title", + "column": 274, + "formater_type": 11, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 304, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "in_charge__title", + "column": 280, + "formater_type": 11, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 310, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "excavation_end_date", + "column": 286, + "formater_type": 25, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 313, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "negative_result", + "column": 289, + "formater_type": 19, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 319, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "finds_deadline", + "column": 295, + "formater_type": 25, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 322, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "report_delivery_date", + "column": 298, + "formater_type": 25, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 327, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "code_patriarche", + "column": 303, + "formater_type": 1, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 330, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "section", + "column": 306, + "formater_type": 7, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 333, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "address", + "column": 309, + "formater_type": 10, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, { "pk": 292, "model": "ishtar_common.importtarget", @@ -5506,7 +7300,7 @@ "comment": "", "target": "year", "column": 267, - "formater_type": 1, + "formater_type": 14, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5514,13 +7308,13 @@ } }, { - "pk": 295, + "pk": 337, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "associated_file__external_id", - "column": 270, - "formater_type": 35, + "target": "parcel__year", + "column": 313, + "formater_type": 14, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5528,13 +7322,125 @@ } }, { - "pk": 298, + "pk": 340, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "scientist__title", - "column": 274, - "formater_type": 11, + "target": "unit", + "column": 315, + "formater_type": 18, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 343, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "length", + "column": 318, + "formater_type": 21, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 346, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "depth", + "column": 321, + "formater_type": 21, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 301, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "scientist__attached_to__name", + "column": 277, + "formater_type": 30, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 307, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "in_charge__attached_to__name", + "column": 283, + "formater_type": 3, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 316, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "cira_rapporteur__attached_to__name", + "column": 292, + "formater_type": 3, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 352, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "filling", + "column": 327, + "formater_type": 16, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 355, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "identification", + "column": 330, + "formater_type": 24, + "concat_str": "", + "regexp_filter": null, + "concat": false, + "force_new": false + } + }, + { + "pk": 358, + "model": "ishtar_common.importtarget", + "fields": { + "comment": "", + "target": "taq_estimated", + "column": 333, + "formater_type": 1, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5542,13 +7448,13 @@ } }, { - "pk": 301, + "pk": 361, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "scientist__organization__name", - "column": 277, - "formater_type": 30, + "target": "context_record__external_id", + "column": 336, + "formater_type": 11, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5556,13 +7462,13 @@ } }, { - "pk": 304, + "pk": 364, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "in_charge__title", - "column": 280, - "formater_type": 11, + "target": "context_record__external_id", + "column": 339, + "formater_type": 3, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5570,13 +7476,13 @@ } }, { - "pk": 307, + "pk": 367, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "in_charge__organization__name", - "column": 283, - "formater_type": 3, + "target": "find__description", + "column": 342, + "formater_type": 16, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5584,13 +7490,13 @@ } }, { - "pk": 310, + "pk": 370, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "excavation_end_date", - "column": 286, - "formater_type": 25, + "target": "find__material_types", + "column": 346, + "formater_type": 20, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5598,13 +7504,13 @@ } }, { - "pk": 313, + "pk": 373, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "negative_result", - "column": 289, - "formater_type": 19, + "target": "find__object_types", + "column": 349, + "formater_type": 26, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5612,13 +7518,13 @@ } }, { - "pk": 316, + "pk": 376, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "cira_rapporteur__organization__name", - "column": 292, - "formater_type": 3, + "target": "find__remarkabilities", + "column": 352, + "formater_type": 44, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5626,13 +7532,13 @@ } }, { - "pk": 319, + "pk": 381, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "finds_deadline", - "column": 295, - "formater_type": 25, + "target": "find__dimensions_comment", + "column": 357, + "formater_type": 16, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5640,13 +7546,13 @@ } }, { - "pk": 322, + "pk": 387, "model": "ishtar_common.importtarget", "fields": { "comment": "", - "target": "report_delivery_date", - "column": 298, - "formater_type": 25, + "target": "find__image", + "column": 363, + "formater_type": 27, "concat_str": "", "regexp_filter": null, "concat": false, @@ -5707,6 +7613,15 @@ "options": "" } }, + { + "pk": 42, + "model": "ishtar_common.formatertype", + "fields": { + "formater_type": "TypeFormater", + "many_split": "", + "options": "archaeological_context_records.models.ActivityType" + } + }, { "pk": 24, "model": "ishtar_common.formatertype", @@ -5752,6 +7667,15 @@ "options": "archaeological_finds.models.ConservatoryState" } }, + { + "pk": 43, + "model": "ishtar_common.formatertype", + "fields": { + "formater_type": "TypeFormater", + "many_split": "&", + "options": "archaeological_finds.models.IntegrityType" + } + }, { "pk": 20, "model": "ishtar_common.formatertype", @@ -5780,12 +7704,12 @@ } }, { - "pk": 40, + "pk": 44, "model": "ishtar_common.formatertype", "fields": { "formater_type": "TypeFormater", "many_split": "&", - "options": "archaeological_operations.models.archaeological_sites" + "options": "archaeological_finds.models.RemarkabilityType" } }, { @@ -5806,6 +7730,15 @@ "options": "archaeological_operations.models.Period" } }, + { + "pk": 41, + "model": "ishtar_common.formatertype", + "fields": { + "formater_type": "TypeFormater", + "many_split": "&", + "options": "archaeological_operations.models.RemainType" + } + }, { "pk": 37, "model": "ishtar_common.formatertype", @@ -5887,6 +7820,15 @@ "options": "120" } }, + { + "pk": 45, + "model": "ishtar_common.formatertype", + "fields": { + "formater_type": "UnicodeFormater", + "many_split": "", + "options": "20" + } + }, { "pk": 30, "model": "ishtar_common.formatertype", @@ -6311,5 +8253,203 @@ "concat": false, "force_new": false } + }, + { + "pk": 34, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 303, + "concat_str": "", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 33, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 304, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 31, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 302, + "concat_str": "-", + "field_name": "parcel__external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 32, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 302, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 35, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 311, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 36, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 312, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 37, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 314, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 38, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 336, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 39, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 336, + "concat_str": "-", + "field_name": "find__external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 40, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 337, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 41, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 337, + "concat_str": "-", + "field_name": "find__external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 42, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 338, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 43, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 338, + "concat_str": "-", + "field_name": "find__external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 44, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 339, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 45, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 339, + "concat_str": "-", + "field_name": "find__external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 46, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 340, + "concat_str": "", + "field_name": "find__label", + "concat": false, + "force_new": false + } + }, + { + "pk": 47, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 340, + "concat_str": "-", + "field_name": "external_id", + "concat": false, + "force_new": false + } + }, + { + "pk": 48, + "model": "ishtar_common.importerduplicatefield", + "fields": { + "column": 340, + "concat_str": "-", + "field_name": "find__external_id", + "concat": false, + "force_new": false + } } -] +] \ No newline at end of file -- cgit v1.2.3 From b1c94c5f5949ba5514a95918187b223c78d4b986 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 21 Dec 2016 14:48:31 +0100 Subject: Fix import fixture --- ishtar_common/fixtures/initial_importtypes-fr.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/fixtures/initial_importtypes-fr.json b/ishtar_common/fixtures/initial_importtypes-fr.json index ee4715bf5..0592ca60f 100644 --- a/ishtar_common/fixtures/initial_importtypes-fr.json +++ b/ishtar_common/fixtures/initial_importtypes-fr.json @@ -7,7 +7,6 @@ "is_template": true, "unicity_keys": "code_patriarche", "users": [ - 2 ], "slug": "operatio", "associated_models": "archaeological_operations.models.Operation", @@ -22,7 +21,6 @@ "is_template": true, "unicity_keys": null, "users": [ - 2 ], "slug": null, "associated_models": "archaeological_operations.models.Operation", @@ -37,7 +35,6 @@ "is_template": true, "unicity_keys": null, "users": [ - 2 ], "slug": null, "associated_models": "archaeological_context_records.models.ContextRecord", @@ -8452,4 +8449,4 @@ "force_new": false } } -] \ No newline at end of file +] -- cgit v1.2.3 From 7f1d9db82a29af007715eb786cc736277041704e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 22 Dec 2016 12:46:24 +0100 Subject: Manage cached_label for treatments - display full label in finds tables (refs #3395) --- archaeological_context_records/models.py | 4 +- archaeological_finds/models.py | 2 +- archaeological_finds/models_finds.py | 38 ++- archaeological_finds/models_treatments.py | 2 +- .../0012_auto__add_field_container_cached_label.py | 283 +++++++++++++++++++++ .../0013_generate_cache_lbl_for_containers.py | 281 ++++++++++++++++++++ archaeological_warehouse/models.py | 30 ++- ishtar_common/widgets.py | 5 +- 8 files changed, 622 insertions(+), 23 deletions(-) create mode 100644 archaeological_warehouse/migrations/0012_auto__add_field_container_cached_label.py create mode 100644 archaeological_warehouse/migrations/0013_generate_cache_lbl_for_containers.py (limited to 'ishtar_common') diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 22ff3b095..7d399ecd9 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -129,7 +129,7 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, TABLE_COLS.insert(1, 'operation__code_patriarche') TABLE_COLS_FOR_OPE = ['label', 'parcel', 'unit', 'datings__period', 'description'] - TABLE_COLS_FOR_OPE_LBL = {'section__parcel_number': _("Parcel")} + COL_LABELS = {'section__parcel_number': _("Parcel")} CONTEXTUAL_TABLE_COLS = { 'full': { 'related_context_records': 'detailled_related_context_records' @@ -405,7 +405,7 @@ class RecordRelations(GeneralRecordRelations, models.Model): "relation_type", "right_record__label", "right_record__unit", "right_record__parcel", "right_record__datings__period", "right_record__description"] - TABLE_COLS_LBL = { + COL_LABELS = { "left_record__label": _(u"ID (left)"), "left_record__unit": _(u"Unit (left)"), "left_record__parcel": _(u"Parcel (left)"), diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index f9d93b1a9..7d56bb771 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -13,4 +13,4 @@ __all__ = ['MaterialType', 'ConservatoryState', 'PreservationType', 'TreatmentType', 'Treatment', 'AbsFindTreatments', 'FindUpstreamTreatments', 'FindDownstreamTreatments', 'FindTreatments', 'TreatmentSource', 'TreatmentFile', - 'TreatmentFileType', 'TreatmentFileSource'] \ No newline at end of file + 'TreatmentFileType', 'TreatmentFileSource'] diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index be6037eaa..e1fcb38b7 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -295,7 +295,7 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): 'base_finds__context_record__parcel__town', 'base_finds__context_record__operation__year', 'base_finds__context_record__operation__operation_code', - 'container__reference', 'container__location', + 'container__cached_label', 'base_finds__batch', 'base_finds__context_record__parcel__town', 'base_finds__context_record__parcel', ] @@ -307,11 +307,13 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): 'base_finds__cache_complete_id', 'previous_id', 'label', 'material_types', 'datings__period__label', 'find_number', 'object_types', + 'container__cached_label', 'description', 'base_finds__context_record__parcel__town', 'base_finds__context_record__parcel', ] - TABLE_COLS_FOR_OPE_LBL = { + COL_LABELS = { 'datings__period__label': _(u"Periods"), + 'container__cached_label': _(u"Container"), } EXTRA_FULL_FIELDS = [ @@ -369,6 +371,18 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): 'basket': 'basket', 'cached_label': 'cached_label__icontains', 'image': 'image__isnull'} + EXTRA_REQUEST_KEYS.update( + dict( + [(key, key) for key in TABLE_COLS + if key not in EXTRA_REQUEST_KEYS] + ) + ) + EXTRA_REQUEST_KEYS.update( + dict( + [(key, key) for key in TABLE_COLS_FOR_OPE + if key not in EXTRA_REQUEST_KEYS] + ) + ) # fields base_finds = models.ManyToManyField(BaseFind, verbose_name=_(u"Base find"), @@ -486,10 +500,9 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): @property def full_label(self): - lbl = u" - ".join([ - getattr(self, attr) - for attr in ('label', 'administrative_index') - if getattr(self, attr)]) + lbl = u" - ".join([getattr(self, attr) + for attr in ('label', 'administrative_index') + if getattr(self, attr)]) base = u" - ".join([base_find.complete_id() for base_find in self.base_finds.all()]) if base: @@ -641,9 +654,9 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): def get_query_owns(cls, user): return Q(base_finds__context_record__operation__scientist=user. ishtaruser.person) | \ - Q(base_finds__context_record__operation__in_charge=user. - ishtaruser.person) | \ - Q(history_creator=user) + Q(base_finds__context_record__operation__in_charge=user. + ishtaruser.person) | \ + Q(history_creator=user) @classmethod def get_owns(cls, user, menu_filtr=None, limit=None): @@ -737,9 +750,10 @@ m2m_changed.connect(base_find_find_changed, sender=Find.base_finds.through) class FindSource(Source): SHOW_URL = 'show-findsource' MODIFY_URL = 'find_source_modify' - TABLE_COLS = ['find__base_finds__context_record__operation', - 'find__base_finds__context_record', 'find'] + \ - Source.TABLE_COLS + TABLE_COLS = [ + 'find__base_finds__context_record__operation', + 'find__base_finds__context_record', 'find'] + \ + Source.TABLE_COLS # search parameters BOOL_FIELDS = ['duplicate'] diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 95817fc40..0f8b4796a 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -71,7 +71,7 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): "upstream_cached_label": "upstream__cached_label", 'image': 'image__isnull', } - TABLE_COLS_LBL = { + COL_LABELS = { "downstream_cached_label": _(u"Downstream find"), "upstream_cached_label": _(u"Upstream find"), } diff --git a/archaeological_warehouse/migrations/0012_auto__add_field_container_cached_label.py b/archaeological_warehouse/migrations/0012_auto__add_field_container_cached_label.py new file mode 100644 index 000000000..2ffeaa231 --- /dev/null +++ b/archaeological_warehouse/migrations/0012_auto__add_field_container_cached_label.py @@ -0,0 +1,283 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Container.cached_label' + db.add_column('archaeological_warehouse_container', 'cached_label', + self.gf('django.db.models.fields.CharField')(max_length=500, null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Container.cached_label' + db.delete_column('archaeological_warehouse_container', 'cached_label') + + + models = { + 'archaeological_warehouse.container': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Container'}, + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containerlocalisation': { + 'Meta': {'ordering': "('container', 'division__order')", 'unique_together': "(('container', 'division'),)", 'object_name': 'ContainerLocalisation'}, + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']"}), + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivisionLink']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '200'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousedivision': { + 'Meta': {'object_name': 'WarehouseDivision'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.warehousedivisionlink': { + 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.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']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.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.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'}) + } + } + + complete_apps = ['archaeological_warehouse'] \ No newline at end of file diff --git a/archaeological_warehouse/migrations/0013_generate_cache_lbl_for_containers.py b/archaeological_warehouse/migrations/0013_generate_cache_lbl_for_containers.py new file mode 100644 index 000000000..3386c85ec --- /dev/null +++ b/archaeological_warehouse/migrations/0013_generate_cache_lbl_for_containers.py @@ -0,0 +1,281 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models +from ishtar_common.utils import cached_label_changed +from archaeological_warehouse.models import Container + + +class Migration(SchemaMigration): + + def forwards(self, orm): + for obj in Container.objects.all(): + obj.skip_history_when_saving = True + obj.save() + + def backwards(self, orm): + pass + + models = { + 'archaeological_warehouse.container': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Container'}, + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containerlocalisation': { + 'Meta': {'ordering': "('container', 'division__order')", 'unique_together': "(('container', 'division'),)", 'object_name': 'ContainerLocalisation'}, + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']"}), + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivisionLink']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '200'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousedivision': { + 'Meta': {'object_name': 'WarehouseDivision'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.warehousedivisionlink': { + 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.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']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.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.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'}) + } + } + + complete_apps = ['archaeological_warehouse'] \ No newline at end of file diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 0eb19814d..0996a10e8 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -19,11 +19,14 @@ import datetime +from django.conf import settings from django.contrib.gis.db import models from django.db.models.signals import post_save, post_delete from django.template.defaultfilters import slugify from django.utils.translation import ugettext_lazy as _, ugettext +from ishtar_common.utils import cached_label_changed + from ishtar_common.models import GeneralType, \ LightHistorizedItem, OwnPerms, Address, Person, post_save_cache @@ -72,6 +75,11 @@ class Warehouse(Address, OwnPerms): return datetime.date.today().strftime('%Y-%m-%d') + '-' + \ slugify(unicode(self)) + def save(self, *args, **kwargs): + super(Warehouse, self).save(*args, **kwargs) + for container in self.containers.all(): + cached_label_changed(Container, {'instance': container}) + class WarehouseDivision(GeneralType): class Meta: @@ -128,16 +136,24 @@ class Container(LightHistorizedItem): verbose_name=_("Container type")) reference = models.CharField(_(u"Container ref."), max_length=40) comment = models.TextField(_(u"Comment")) + cached_label = models.CharField(_(u"Cached name"), max_length=500, + null=True, blank=True) class Meta: verbose_name = _(u"Container") verbose_name_plural = _(u"Containers") + ordering = ('cached_label',) def __unicode__(self): lbl = u" - ".join((self.reference, unicode(self.container_type), unicode(self.location))) return lbl + def _generate_cached_label(self): + items = [self.reference, self.precise_location] + cached_label = u" | ".join(items) + return cached_label + @property def associated_filename(self): return datetime.date.today().strftime('%Y-%m-%d') + '-' + \ @@ -149,11 +165,13 @@ class Container(LightHistorizedItem): def precise_location(self): location = unicode(self.location) locas = [ - u"{} {}".format(loca.division.division, loca.reference) - for loca in ContainerLocalisation.objects.filter( - container=self) + u"{} {}".format(loca.division.division, loca.reference) + for loca in ContainerLocalisation.objects.filter( + container=self) ] - return location + u" - " + u", ".join(locas) + return location + u" | " + u", ".join(locas) + +post_save.connect(cached_label_changed, sender=Container) class ContainerLocalisation(models.Model): @@ -172,3 +190,7 @@ class ContainerLocalisation(models.Model): lbl = u" - ".join((unicode(self.container), unicode(self.division), self.reference)) return lbl + + def save(self, *args, **kwargs): + super(ContainerLocalisation, self).save(*args, **kwargs) + cached_label_changed(Container, {'instance': self.container}) diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index be0ab8cba..ddbfa91bf 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -573,9 +573,8 @@ class JQueryJqGrid(forms.RadioSelect): def get_cols(self, python=False): jq_col_names, extra_cols = [], [] col_labels = {} - if hasattr(self.associated_model, self.table_cols + '_LBL'): - col_labels = getattr(self.associated_model, - self.table_cols + '_LBL') + if hasattr(self.associated_model, 'COL_LABELS'): + col_labels = self.associated_model.COL_LABELS for col_names in getattr(self.associated_model, self.table_cols): field_verbose_names = [] field_verbose_name, field_name = "", "" -- cgit v1.2.3 From 362df5dd42f41237ed1545571704a56db59e4d46 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 23 Dec 2016 17:01:35 +0100 Subject: Add index to containers (refs #3391) - manage multiple cached labels --- ...r_cached_location__add_field_container_index.py | 304 +++++++++++++++++++++ archaeological_warehouse/models.py | 11 +- ishtar_common/utils.py | 13 +- 3 files changed, 324 insertions(+), 4 deletions(-) create mode 100644 archaeological_warehouse/migrations/0015_auto__add_field_container_cached_location__add_field_container_index.py (limited to 'ishtar_common') diff --git a/archaeological_warehouse/migrations/0015_auto__add_field_container_cached_location__add_field_container_index.py b/archaeological_warehouse/migrations/0015_auto__add_field_container_cached_location__add_field_container_index.py new file mode 100644 index 000000000..4e267e1ac --- /dev/null +++ b/archaeological_warehouse/migrations/0015_auto__add_field_container_cached_location__add_field_container_index.py @@ -0,0 +1,304 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Container.cached_location' + db.add_column('archaeological_warehouse_container', 'cached_location', + self.gf('django.db.models.fields.CharField')(max_length=500, null=True, blank=True), + keep_default=False) + + # Adding field 'Container.index' + db.add_column('archaeological_warehouse_container', 'index', + self.gf('django.db.models.fields.IntegerField')(default=1), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Container.cached_location' + db.delete_column('archaeological_warehouse_container', 'cached_location') + + # Deleting field 'Container.index' + db.delete_column('archaeological_warehouse_container', 'index') + + + models = { + 'archaeological_warehouse.collection': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Collection'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_collection'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'collections'", 'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Container'}, + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containerlocalisation': { + 'Meta': {'ordering': "('container', 'division__order')", 'unique_together': "(('container', 'division'),)", 'object_name': 'ContainerLocalisation'}, + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']"}), + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivisionLink']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '200'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousedivision': { + 'Meta': {'object_name': 'WarehouseDivision'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.warehousedivisionlink': { + 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.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']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.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.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'}) + } + } + + complete_apps = ['archaeological_warehouse'] \ No newline at end of file diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index c6146e3a7..e4b24e2e7 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -144,6 +144,7 @@ class Container(LightHistorizedItem): 'reference': 'reference__icontains', } SHOW_URL = 'show-container' + CACHED_LABELS = ['cached_label', 'cached_location'] # fields location = models.ForeignKey(Warehouse, verbose_name=_(u"Warehouse"), @@ -154,6 +155,9 @@ class Container(LightHistorizedItem): comment = models.TextField(_(u"Comment")) cached_label = models.CharField(_(u"Cached name"), max_length=500, null=True, blank=True) + cached_location = models.CharField(_(u"Cached location"), max_length=500, + null=True, blank=True) + index = models.IntegerField(u"Index", default=1) class Meta: verbose_name = _(u"Container") @@ -162,7 +166,7 @@ class Container(LightHistorizedItem): def __unicode__(self): lbl = u" - ".join((self.reference, unicode(self.container_type), - unicode(self.location))) + unicode(self.index), unicode(self.location))) return lbl def _generate_cached_label(self): @@ -170,6 +174,11 @@ class Container(LightHistorizedItem): cached_label = u" | ".join(items) return cached_label + def _generate_cached_location(self): + items = [self.location, self.index] + cached_label = u" - ".join(items) + return cached_label + @property def associated_filename(self): return datetime.date.today().strftime('%Y-%m-%d') + '-' + \ diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index 44112bca3..9b3c85694 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -60,11 +60,18 @@ def cached_label_changed(sender, **kwargs): and instance._cached_label_checked: return instance._cached_label_checked = True - lbl = instance._generate_cached_label() - if lbl != instance.cached_label: + cached_labels = ['cached_label'] + if hasattr(sender, 'CACHED_LABELS'): + cached_labels = sender.CACHED_LABELS + changed = False + for cached_label in cached_labels: + lbl = getattr(instance, '_generate_' + cached_label)() + if lbl != getattr(instance, cached_label): + setattr(instance, cached_label, lbl) + changed = True + if changed: if hasattr(instance, '_cascade_change') and instance._cascade_change: instance.skip_history_when_saving = True - instance.cached_label = lbl instance.save() if hasattr(instance, '_get_associated_cached_labels'): for item in instance._get_associated_cached_labels(): -- cgit v1.2.3 From eaad97f909965da717d1db0da356c490f270859e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 23 Dec 2016 20:16:10 +0100 Subject: Applicant details on treatment file sheet (refs #3383) --- .../templates/ishtar/sheet_treatment.html | 4 ++-- .../templates/ishtar/sheet_treatmentfile.html | 23 +++++++++++++++++----- ishtar_common/models.py | 6 +++--- 3 files changed, 23 insertions(+), 10 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/templates/ishtar/sheet_treatment.html b/archaeological_finds/templates/ishtar/sheet_treatment.html index 8ce8a0350..a06c10b3c 100644 --- a/archaeological_finds/templates/ishtar/sheet_treatment.html +++ b/archaeological_finds/templates/ishtar/sheet_treatment.html @@ -17,9 +17,9 @@ {% if item.external_id %}

      {{ item.external_id }}

      {% endif %} {% if item.end_date %} -

      {% trans "Closed" %} ({{item.end_date}})

      {% endif %} +

      {% trans "Closed" %} ({{item.end_date}})

      {% else %} -

      {% trans "Active" %}

      {% endif %} +

      {% trans "Active" %}

      {% endif %}
        diff --git a/archaeological_finds/templates/ishtar/sheet_treatmentfile.html b/archaeological_finds/templates/ishtar/sheet_treatmentfile.html index 58efe482a..8988d9595 100644 --- a/archaeological_finds/templates/ishtar/sheet_treatmentfile.html +++ b/archaeological_finds/templates/ishtar/sheet_treatmentfile.html @@ -13,22 +13,35 @@ {% if item.external_id %}

        {{ item.external_id }}

        {% endif %} {% if item.end_date %} -

        {% trans "Closed" %} ({{item.end_date}})

        {% endif %} +

        {% trans "Closed" %} ({{item.end_date}})

        {% else %} -

        {% trans "Active" %}

        {% endif %} +

        {% trans "Active" %}

        {% endif %}
          {% field_li "Type" item.type %} - {% field_li "Responsible" item.in_charge %} - {% field_li "Applicant" item.applicant %} - {% field_li "Applicant organisation" item.applicant_organisation %} + {% field_li_detail "Responsible" item.in_charge %} {% field_li "Creation date" item.creation_date %} {% field_li "Reception date" item.reception_date %} {% field_li "Closing date" item.end_date %}
        {% field "Comment" item.comment "
        " "
        " %} +{% if item.applicant %} +

        {% trans "Applicant" %}

        +
          + {% field_li_detail "Name" item.applicant %} +
        +{% field "Contact" item.applicant.address_lbl %} +{% endif %} +{% if item.applicant_organisation %} +

        {% trans "Applicant organisation" %}

        +
          + {% field_li_detail "Name" item.applicant_organisation %} +
        +{% field "Contact" item.applicant.address_lbl %} +{% endif %} + {% trans "Treatments" as treatments %} {% if item.treatments.count %} {% dynamic_table_document treatments 'treatments' 'file' item.pk '' output '' 'treatment' %} diff --git a/ishtar_common/models.py b/ishtar_common/models.py index d4f0c595e..d05ffdd77 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1498,15 +1498,15 @@ class Address(BaseHistorizedItem): if self.phone: if lbl: lbl += u"\n" - lbl += u"{}{}".format(unicode(_("Tel: ")), self.phone) + lbl += u"{} {}".format(unicode(_("Tel: ")), self.phone) if self.mobile_phone: if lbl: lbl += u"\n" - lbl += u"{}{}".format(unicode(_("Mobile: ")), self.mobile_phone) + lbl += u"{} {}".format(unicode(_("Mobile: ")), self.mobile_phone) if self.email: if lbl: lbl += u"\n" - lbl += u"{}{}".format(unicode(_("Email: ")), self.email) + lbl += u"{} {}".format(unicode(_("Email: ")), self.email) return lbl -- cgit v1.2.3 From 7cd2e6de106151e27cd1720bbebfec0d679d88e5 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 23 Dec 2016 22:15:34 +0100 Subject: Container: Localisation form become modification form --- archaeological_warehouse/forms.py | 8 ++++++++ archaeological_warehouse/ishtar_menu.py | 10 +++++++--- archaeological_warehouse/urls.py | 6 +++--- archaeological_warehouse/views.py | 13 +++++++------ archaeological_warehouse/wizards.py | 23 ++++++++++++----------- ishtar_common/wizards.py | 14 ++++++++++++-- 6 files changed, 49 insertions(+), 25 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index d51dcf1f4..846e7cb46 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -143,6 +143,8 @@ class WarehouseForm(ManageOldType, forms.Form): class ContainerForm(ManageOldType, forms.Form): form_label = _(u"Container") + associated_models = {'container_type': models.ContainerType, + 'location': models.Warehouse} reference = forms.CharField(label=_(u"Ref.")) container_type = forms.ChoiceField(label=_(u"Container type"), choices=[]) location = forms.IntegerField( @@ -203,6 +205,12 @@ ContainerFormSelection = get_form_selection( _(u"You should select a container."), new=True, new_message=_(u"Add a new container")) +MainContainerFormSelection = get_form_selection( + 'ContainerFormSelection', _(u"Container search"), 'pk', + models.Container, ContainerSelect, 'get-container', + _(u"You should select a container.") +) + class BasePackagingForm(SelectFindBasketForm): form_label = _(u"Packaging") diff --git a/archaeological_warehouse/ishtar_menu.py b/archaeological_warehouse/ishtar_menu.py index 7f182d02b..6bc65c9c7 100644 --- a/archaeological_warehouse/ishtar_menu.py +++ b/archaeological_warehouse/ishtar_menu.py @@ -45,9 +45,13 @@ MENU_SECTIONS = [ MenuItem('warehouse_modification', _(u"Modification"), model=models.Warehouse, access_controls=['change_warehouse',]), - MenuItem('container_localisation', _(u"Container localisation"), - model=models.Warehouse, - access_controls=['change_warehouse',]), + SectionItem( + 'containers', _(u"Containers"), + childs=[ + MenuItem('container_modification', _(u"Modification"), + model=models.Warehouse, + access_controls=['change_warehouse',]), + ]) ])) ] """ diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py index 5c18200db..cb04d6cbc 100644 --- a/archaeological_warehouse/urls.py +++ b/archaeological_warehouse/urls.py @@ -57,8 +57,8 @@ urlpatterns += patterns( check_rights(['change_warehouse'])( views.warehouse_modification_wizard), name='warehouse_modification'), - url(r'^container_localisation/(?P.+)?$', + url(r'^container_modification/(?P.+)?$', check_rights(['change_warehouse'])( - views.container_localisation_wizard), - name='container_localisation'), + views.container_modification_wizard), + name='container_modification'), ) diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index 5366aa53b..ac81a9897 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -110,12 +110,13 @@ warehouse_modification_wizard = WarehouseModificationWizard.as_view([ ) -container_localisation_wizard = LocalisationWizard.as_view([ - ('seleccontainer-container_localisation', ContainerFormSelection), - ('localisation-container_localisation', LocalisationForm), - ('final-container_localisation', FinalForm)], - label=_(u"Container localisation"), - url_name='container_localisation', +container_modification_wizard = ContainerModificationWizard.as_view([ + ('selec-container_modification', MainContainerFormSelection), + ('container-container_modification', ContainerModifyForm), + ('localisation-container_modification', LocalisationForm), + ('final-container_modification', FinalForm)], + label=_(u"Container modification"), + url_name='container_modification', ) """ diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py index bdb3959dc..4bdc150cc 100644 --- a/archaeological_warehouse/wizards.py +++ b/archaeological_warehouse/wizards.py @@ -66,18 +66,20 @@ class WarehouseModificationWizard(Wizard): wizard_done_window = reverse_lazy('show-warehouse') -class LocalisationWizard(Wizard): +class ContainerWizard(Wizard): + model = models.Container wizard_templates = { 'localisation-container_localisation': 'ishtar/wizard/wizard_containerlocalisation.html', } + ignore_init_steps = ['localisation'] def get_form_kwargs(self, step=None): - kwargs = super(LocalisationWizard, self).get_form_kwargs(step) - if step == 'localisation-container_localisation': + kwargs = super(ContainerWizard, self).get_form_kwargs(step) + if step == 'localisation-' + self.url_name: container = None container_pk = self.session_get_value( - 'seleccontainer-container_localisation', 'container') + 'selec-' + self.url_name, 'pk') q = models.Container.objects.filter(pk=container_pk) if q.count(): container = q.all()[0] @@ -88,17 +90,13 @@ class LocalisationWizard(Wizard): """ Save the localisation """ + super(ContainerWizard, self).done(form_list) container = None for idx, form in enumerate(form_list): if not form.is_valid(): return self.render(form) - if not idx: # container form - try: - container = models.Container.objects.get( - pk=form.cleaned_data['container']) - except models.Container.DoesNotExist: - return self.render(form) - elif idx == 1: # localisation form + container = self.get_current_object() + if idx == 2: # localisation form for div_name in form.cleaned_data: try: division = models.WarehouseDivisionLink.objects.get( @@ -117,3 +115,6 @@ class LocalisationWizard(Wizard): return render_to_response( self.wizard_done_template, {}, context_instance=RequestContext(self.request)) + +class ContainerModificationWizard(ContainerWizard): + modification = True diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 6e5216c6a..ad16ce0e1 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -127,6 +127,8 @@ class Wizard(NamedUrlWizardView): wizard_templates = {} filter_owns = {} current_obj_slug = '' + current_object_key = 'pk' + ignore_init_steps = [] file_storage = default_storage saved_args = {} # argument to pass on object save @@ -200,6 +202,10 @@ class Wizard(NamedUrlWizardView): templates = [self.wizard_confirm] + templates return templates + def get_ignore_init_steps(self): + return ['{}-{}'.format(step, self.url_name) for step in + self.ignore_init_steps] + def get_context_data(self, form, **kwargs): """Add previous, next and current steps to manage the wizard path""" context = super(Wizard, self).get_context_data(form) @@ -254,7 +260,8 @@ class Wizard(NamedUrlWizardView): for key in v: form_key = next_step + prefix + key prefixed_values[form_key] = v[key] - if not prefixed_values: + if not prefixed_values and \ + next_step not in self.get_ignore_init_steps(): # simulate a non empty data for form that might be # valid when empty prefixed_values['__non_empty_data'] = '' @@ -481,6 +488,9 @@ class Wizard(NamedUrlWizardView): for k in dct: if k.startswith('pk'): continue + if k not in obj.__class__._meta.get_all_field_names(): + print(k, obj.__class__._meta.get_all_field_names()) + continue # False set to None for images and files if not k.endswith('_id') and ( isinstance(obj.__class__._meta.get_field(k), FileField) or @@ -914,7 +924,7 @@ class Wizard(NamedUrlWizardView): current_obj = None main_form_key = 'selec-' + self.url_name try: - idx = self.session_get_value(main_form_key, 'pk') + idx = self.session_get_value(main_form_key, self.current_object_key) idx = int(idx) current_obj = self.model.objects.get(pk=idx) except(TypeError, ValueError, ObjectDoesNotExist): -- cgit v1.2.3 From ca98a99c8543fb820e5052839d82b02ad302de9a Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sat, 24 Dec 2016 13:17:23 +0100 Subject: Container creation form (refs #3392) --- archaeological_warehouse/forms.py | 38 ++- archaeological_warehouse/ishtar_menu.py | 6 + .../0018_auto__chg_field_container_comment.py | 294 +++++++++++++++++++++ archaeological_warehouse/models.py | 2 +- archaeological_warehouse/urls.py | 4 + archaeological_warehouse/views.py | 7 + archaeological_warehouse/wizards.py | 14 +- ishtar_common/wizards.py | 6 +- 8 files changed, 353 insertions(+), 18 deletions(-) create mode 100644 archaeological_warehouse/migrations/0018_auto__chg_field_container_comment.py (limited to 'ishtar_common') diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index 846e7cb46..5932fc7aa 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -178,6 +178,7 @@ class ContainerForm(ManageOldType, forms.Form): class ContainerModifyForm(ContainerForm): + pk = forms.IntegerField(required=False, widget=forms.HiddenInput) index = forms.IntegerField(_(u"Index")) def __init__(self, *args, **kwargs): @@ -186,6 +187,20 @@ class ContainerModifyForm(ContainerForm): self.fields.keyOrder.insert( self.fields.keyOrder.index("location") + 1, 'index') + def clean(self): + # manage unique ID + cleaned_data = self.cleaned_data + index = cleaned_data.get("index") + warehouse = cleaned_data.get("location") + q = models.Container.objects.filter( + index=index, location__pk=warehouse) + if 'pk' in cleaned_data and cleaned_data['pk']: + q = q.exclude(pk=int(cleaned_data['pk'])) + if q.count(): + raise forms.ValidationError(_(u"This ID already exists for " + u"this warehouse.")) + return cleaned_data + class ContainerSelect(TableSelect): location = get_warehouse_field() @@ -236,18 +251,21 @@ class LocalisationForm(forms.Form): form_label = _(u"Localisation") def __init__(self, *args, **kwargs): - container = kwargs.pop('container') + container, warehouse = None, None + if 'warehouse' in kwargs: + warehouse = kwargs.pop('warehouse') + if 'container' in kwargs: + container = kwargs.pop('container') super(LocalisationForm, self).__init__(*args, **kwargs) - if not container: + if not warehouse: return - for divlink in container.location.warehousedivisionlink_set.order_by( + for divlink in warehouse.warehousedivisionlink_set.order_by( 'order').all(): - initial = None - q = models.ContainerLocalisation.objects.filter( - division=divlink, container=container) - if q.count(): - initial = q.all()[0].reference - else: - initial = u"-" + initial = u"-" + if container: + q = models.ContainerLocalisation.objects.filter( + division=divlink, container=container) + if q.count(): + initial = q.all()[0].reference self.fields['division_{}'.format(divlink.pk)] = forms.CharField( label=str(divlink.division), max_length=200, initial=initial) diff --git a/archaeological_warehouse/ishtar_menu.py b/archaeological_warehouse/ishtar_menu.py index 6bc65c9c7..d9a1bba15 100644 --- a/archaeological_warehouse/ishtar_menu.py +++ b/archaeological_warehouse/ishtar_menu.py @@ -48,9 +48,15 @@ MENU_SECTIONS = [ SectionItem( 'containers', _(u"Containers"), childs=[ + MenuItem('container_creation', _(u"Creation"), + model=models.Warehouse, + access_controls=['change_warehouse',]), MenuItem('container_modification', _(u"Modification"), model=models.Warehouse, access_controls=['change_warehouse',]), + #MenuItem('container_deletion', _(u"Deletion"), + # model=models.Warehouse, + # access_controls=['change_warehouse',]), ]) ])) ] diff --git a/archaeological_warehouse/migrations/0018_auto__chg_field_container_comment.py b/archaeological_warehouse/migrations/0018_auto__chg_field_container_comment.py new file mode 100644 index 000000000..bb6d2585e --- /dev/null +++ b/archaeological_warehouse/migrations/0018_auto__chg_field_container_comment.py @@ -0,0 +1,294 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Changing field 'Container.comment' + db.alter_column('archaeological_warehouse_container', 'comment', self.gf('django.db.models.fields.TextField')(null=True)) + + def backwards(self, orm): + + # User chose to not deal with backwards NULL issues for 'Container.comment' + raise RuntimeError("Cannot reverse this migration. 'Container.comment' and its values cannot be restored.") + + models = { + 'archaeological_warehouse.collection': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Collection'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_collection'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'collections'", 'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('index', 'location'),)", 'object_name': 'Container'}, + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}) + }, + 'archaeological_warehouse.containerlocalisation': { + 'Meta': {'ordering': "('container', 'division__order')", 'unique_together': "(('container', 'division'),)", 'object_name': 'ContainerLocalisation'}, + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']"}), + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivisionLink']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '200'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousedivision': { + 'Meta': {'object_name': 'WarehouseDivision'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.warehousedivisionlink': { + 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.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']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.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.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'}) + } + } + + complete_apps = ['archaeological_warehouse'] \ No newline at end of file diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 156755e18..1ab28504e 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -157,7 +157,7 @@ class Container(LightHistorizedItem): container_type = models.ForeignKey(ContainerType, verbose_name=_("Container type")) reference = models.CharField(_(u"Container ref."), max_length=40) - comment = models.TextField(_(u"Comment")) + comment = models.TextField(_(u"Comment"), null=True, blank=True) cached_label = models.CharField(_(u"Cached name"), max_length=500, null=True, blank=True) cached_location = models.CharField(_(u"Cached location"), max_length=500, diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py index cb04d6cbc..7cc001eb9 100644 --- a/archaeological_warehouse/urls.py +++ b/archaeological_warehouse/urls.py @@ -57,6 +57,10 @@ urlpatterns += patterns( check_rights(['change_warehouse'])( views.warehouse_modification_wizard), name='warehouse_modification'), + url(r'^container_creation/(?P.+)?$', + check_rights(['change_warehouse'])( + views.container_creation_wizard), + name='container_creation'), url(r'^container_modification/(?P.+)?$', check_rights(['change_warehouse'])( views.container_modification_wizard), diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index ac81a9897..5ce878ab3 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -109,6 +109,13 @@ warehouse_modification_wizard = WarehouseModificationWizard.as_view([ url_name='warehouse_modification', ) +container_creation_wizard = ContainerWizard.as_view([ + ('container-container_creation', ContainerForm), + ('localisation-container_creation', LocalisationForm), + ('final-container_creation', FinalForm)], + label=_(u"Container creation"), + url_name='container_creation', +) container_modification_wizard = ContainerModificationWizard.as_view([ ('selec-container_modification', MainContainerFormSelection), diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py index 4bdc150cc..0cc6915f8 100644 --- a/archaeological_warehouse/wizards.py +++ b/archaeological_warehouse/wizards.py @@ -77,13 +77,16 @@ class ContainerWizard(Wizard): def get_form_kwargs(self, step=None): kwargs = super(ContainerWizard, self).get_form_kwargs(step) if step == 'localisation-' + self.url_name: - container = None container_pk = self.session_get_value( 'selec-' + self.url_name, 'pk') q = models.Container.objects.filter(pk=container_pk) if q.count(): - container = q.all()[0] - kwargs['container'] = container + kwargs['container'] = q.all()[0] + warehouse_pk = self.session_get_value( + 'container-' + self.url_name, 'location') + q = models.Warehouse.objects.filter(pk=warehouse_pk) + if q.count(): + kwargs['warehouse'] = q.all()[0] return kwargs def done(self, form_list, **kwargs): @@ -91,12 +94,11 @@ class ContainerWizard(Wizard): Save the localisation """ super(ContainerWizard, self).done(form_list) - container = None for idx, form in enumerate(form_list): if not form.is_valid(): return self.render(form) - container = self.get_current_object() - if idx == 2: # localisation form + container = self.get_current_object() or self.current_object + if container and form.prefix == 'localisation-' + self.url_name: for div_name in form.cleaned_data: try: division = models.WarehouseDivisionLink.objects.get( diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index ad16ce0e1..55d1224bf 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -489,7 +489,6 @@ class Wizard(NamedUrlWizardView): if k.startswith('pk'): continue if k not in obj.__class__._meta.get_all_field_names(): - print(k, obj.__class__._meta.get_all_field_names()) continue # False set to None for images and files if not k.endswith('_id') and ( @@ -568,6 +567,11 @@ class Wizard(NamedUrlWizardView): dct[dependant_item] = c_item if 'pk' in dct: dct.pop('pk') + # remove non relevant fields + all_field_names = self.get_saved_model()._meta.get_all_field_names() + for k in dct.copy(): + if k not in all_field_names: + dct.pop(k) saved_args = self.saved_args.copy() for k in saved_args: if k in dct: -- cgit v1.2.3 From 1b971637de6693d6721dfcdceaeecefb8f51860b Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 27 Dec 2016 17:51:55 +0100 Subject: Simple management for shortcut menu of treatment and treatment file (refs #3384) --- archaeological_finds/models_treatments.py | 27 ++++++++++++++++++++++++--- archaeological_finds/urls.py | 6 ++++++ ishtar_common/models.py | 3 ++- ishtar_common/views.py | 9 +++++++-- 4 files changed, 39 insertions(+), 6 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 67bbd3ddb..eff8d8371 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -30,7 +30,7 @@ from django.utils.translation import ugettext_lazy as _, ugettext from ishtar_common.utils import cached_label_changed from ishtar_common.models import GeneralType, ImageModel, BaseHistorizedItem, \ OwnPerms, HistoricalRecords, Person, Organization, Source, \ - ValueGetter, post_save_cache + ValueGetter, post_save_cache, ShortMenuItem from archaeological_warehouse.models import Warehouse, Container from archaeological_finds.models_finds import Find, FindBasket from archaeological_operations.models import ClosedItem @@ -66,7 +66,7 @@ post_save.connect(post_save_cache, sender=TreatmentState) post_delete.connect(post_save_cache, sender=TreatmentState) -class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): +class Treatment(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): SHOW_URL = 'show-treatment' TABLE_COLS = ('year', 'index', 'treatment_types__label', 'treatment_state__label', @@ -87,6 +87,7 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): "upstream_cached_label": _(u"Upstream find"), } IMAGE_PREFIX = 'treatment' + SLUG = 'treatment' label = models.CharField(_(u"Label"), blank=True, null=True, max_length=200) other_reference = models.CharField(_(u"Other ref."), blank=True, null=True, @@ -143,6 +144,17 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): lbl += u" %s %s" % (_(u"by"), unicode(self.person)) return lbl + @classmethod + def get_owns(cls, user, menu_filtr=None, limit=None): + replace_query = {} + if menu_filtr: + replace_query = {'file': menu_filtr} + owns = super(Treatment, cls).get_owns( + user, replace_query=replace_query, limit=limit) + return sorted( + owns, key=lambda x: x.cached_label + if hasattr(x, 'cached_label') else unicode(x)) + def _generate_cached_label(self): items = [unicode(getattr(self, k)) for k in ['year', 'index', 'other_reference', 'label'] if @@ -382,10 +394,12 @@ post_save.connect(post_save_cache, sender=TreatmentFileType) post_delete.connect(post_save_cache, sender=TreatmentFileType) -class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter): +class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, + ShortMenuItem): SLUG = 'treatmentfile' SHOW_URL = 'show-treatmentfile' TABLE_COLS = ['type', 'year', 'index', 'internal_reference', 'name'] + SLUG = 'treatmentfile' # fields year = models.IntegerField(_(u"Year"), @@ -446,6 +460,13 @@ class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter): for attr in ('year', 'index', 'internal_reference', 'name') if getattr(self, attr)]) + @classmethod + def get_owns(cls, user, menu_filtr=None, limit=None): + owns = super(TreatmentFile, cls).get_owns(user, limit=limit) + return sorted( + owns, key=lambda x: x.cached_label + if hasattr(x, 'cached_label') else unicode(x)) + def _generate_cached_label(self): items = [unicode(getattr(self, k)) for k in ['year', 'index', 'internal_reference', 'name'] if diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index f1ddb1223..7be07d015 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -275,10 +275,16 @@ urlpatterns += patterns( 'revert_find', name='revert-find'), url(r'^get-treatment/(?P.+)?$', 'get_treatment', name='get-treatment'), + url(r'get-treatment-shortcut/(?P.+)?$', + 'get_treatment', name='get-treatment-shortcut', + kwargs={'full': 'shortcut'}), url(r'^show-treatment(?:/(?P.+))?/(?P.+)?$', 'show_treatment', name=models.Treatment.SHOW_URL), url(r'get-treatmentfile/(?P.+)?$', 'get_treatmentfile', name='get-treatmentfile'), + url(r'get-treatmentfile-shortcut/(?P.+)?$', + 'get_treatmentfile', name='get-treatmentfile-shortcut', + kwargs={'full': 'shortcut'}), url(r'^show-treatmentfile(?:/(?P.+))?/(?P.+)?$', 'show_treatmentfile', name=models.TreatmentFile.SHOW_URL), diff --git a/ishtar_common/models.py b/ishtar_common/models.py index d05ffdd77..fcb367ae5 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -254,7 +254,8 @@ class OwnPerms: query = cls.get_query_owns(user) if not query and not replace_query: return cls.objects.filter(pk__isnull=True) - q = cls.objects.filter(query) + if query: + q = cls.objects.filter(query) if replace_query: q = cls.objects.filter(**replace_query) if limit: diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 6426fef8f..783c6badb 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -58,7 +58,7 @@ from menus import menu from archaeological_files.models import File from archaeological_operations.models import Operation from archaeological_context_records.models import ContextRecord -from archaeological_finds.models import Find +from archaeological_finds.models import Find, Treatment, TreatmentFile from archaeological_operations.forms import DashboardForm as DashboardFormOpe from archaeological_files.forms import DashboardForm as DashboardFormFile @@ -239,6 +239,9 @@ def shortcut_menu(request): CURRENT_ITEMS.append((_(u"Context record"), ContextRecord)) if profile.find: CURRENT_ITEMS.append((_(u"Find"), Find)) + if profile.warehouse: + CURRENT_ITEMS.append((_(u"Treatment file"), TreatmentFile)) + CURRENT_ITEMS.append((_(u"Treatment"), Treatment)) if hasattr(request.user, 'ishtaruser') and \ request.user.ishtaruser.advanced_shortcut_menu: dct = {'current_menu': [], 'menu': [], @@ -301,7 +304,9 @@ def get_current_items(request): for key, model in (('file', File), ('operation', Operation), ('contextrecord', ContextRecord), - ('find', Find)): + ('find', Find), + ('treatmentfile', TreatmentFile), + ('treatment', Treatment)): currents[key] = None if key in request.session and request.session[key]: try: -- cgit v1.2.3 From 535a71c99f4961113821ae60327edc44b01fdf9e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 2 Jan 2017 15:32:57 +0100 Subject: Wizard: when an item is given with id in forms don't filter it --- ishtar_common/wizards.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ishtar_common') diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 55d1224bf..4f0295421 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -570,7 +570,8 @@ class Wizard(NamedUrlWizardView): # remove non relevant fields all_field_names = self.get_saved_model()._meta.get_all_field_names() for k in dct.copy(): - if k not in all_field_names: + if (k.endswith('_id') and k[:-3] not in all_field_names) and \ + k not in all_field_names: dct.pop(k) saved_args = self.saved_args.copy() for k in saved_args: -- cgit v1.2.3 From cd6fd329f22241a6a3dd14a14c579bdf1831677d Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 2 Jan 2017 15:33:56 +0100 Subject: Manage multiple condition for cascading shortcut menu - Manage shortcut menu for treatment and treatment files (refs #3384) --- archaeological_context_records/models.py | 6 +++--- archaeological_finds/models_finds.py | 8 +++++--- archaeological_finds/models_treatments.py | 34 ++++++++++++++++++++++++++++--- archaeological_operations/models.py | 6 +++--- ishtar_common/models.py | 2 +- ishtar_common/static/js/ishtar.js | 12 +++++++++++ ishtar_common/views.py | 18 +++++++++++++--- 7 files changed, 70 insertions(+), 16 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 7d399ecd9..a0ba6c379 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -268,9 +268,9 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, @classmethod def get_owns(cls, user, menu_filtr=None, limit=None): - replace_query = {} - if menu_filtr: - replace_query = {'operation': menu_filtr} + replace_query = None + if menu_filtr and 'operation' in menu_filtr: + replace_query = Q(operation=menu_filtr['operation']) owns = super(ContextRecord, cls).get_owns( user, replace_query=replace_query, limit=limit) diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 9a7a71f84..e29669773 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -663,9 +663,11 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): @classmethod def get_owns(cls, user, menu_filtr=None, limit=None): - replace_query = {} - if menu_filtr: - replace_query = {'base_finds__context_record': menu_filtr} + replace_query = None + if menu_filtr and 'contextrecord' in menu_filtr: + replace_query = Q( + base_finds__context_record=menu_filtr['contextrecord'] + ) owns = super(Find, cls).get_owns( user, replace_query=replace_query, limit=limit) diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index eff8d8371..5e763085c 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -21,7 +21,7 @@ import datetime from django.conf import settings from django.contrib.gis.db import models -from django.db.models import Max +from django.db.models import Max, Q from django.db.models.signals import post_save, post_delete, pre_delete from django.template.defaultfilters import slugify from django.utils.translation import ugettext_lazy as _, ugettext @@ -144,11 +144,29 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): lbl += u" %s %s" % (_(u"by"), unicode(self.person)) return lbl + @property + def short_class_name(self): + return _(u"TREATMENT") + + @classmethod + def get_query_owns(cls, user): + return (Q(history_creator=user) | + Q(person__ishtaruser=user.ishtaruser)) \ + & Q(end_date__isnull=True) + @classmethod def get_owns(cls, user, menu_filtr=None, limit=None): - replace_query = {} + replace_query = None if menu_filtr: - replace_query = {'file': menu_filtr} + if 'treatmentfile' in menu_filtr: + replace_query = Q(file=menu_filtr['treatmentfile']) + if 'find' in menu_filtr: + q = Q(upstream=menu_filtr['find']) | Q( + downstream=menu_filtr['find']) + if replace_query: + replace_query = replace_query | q + else: + replace_query = q owns = super(Treatment, cls).get_owns( user, replace_query=replace_query, limit=limit) return sorted( @@ -454,6 +472,16 @@ class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, def __unicode__(self): return self.cached_label + @property + def short_class_name(self): + return _(u"Treatment file") + + @classmethod + def get_query_owns(cls, user): + return (Q(history_creator=user) | + Q(in_charge__ishtaruser=user.ishtaruser)) \ + & Q(end_date__isnull=True) + @property def associated_filename(self): return "-".join([str(slugify(getattr(self, attr))) diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 7507da817..0270a0c74 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -377,9 +377,9 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, @classmethod def get_owns(cls, user, menu_filtr=None, limit=None): - replace_query = {} - if menu_filtr: - replace_query = {'associated_file': menu_filtr} + replace_query = None + if menu_filtr and 'file' in menu_filtr: + replace_query = Q(associated_file=menu_filtr['file']) owns = super(Operation, cls).get_owns( user, replace_query=replace_query, limit=limit) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index fcb367ae5..ccb817adc 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -257,7 +257,7 @@ class OwnPerms: if query: q = cls.objects.filter(query) if replace_query: - q = cls.objects.filter(**replace_query) + q = cls.objects.filter(replace_query) if limit: items += list(q.order_by('-pk')[:limit]) else: diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 8abf23289..b5f4f1a79 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -102,6 +102,18 @@ function init_shortcut_fields(){ load_shortcut_menu ); }); + $("#current_treatment").change(function(){ + $.post('/' + url_path + 'update-current-item/', + {item:'treatment', value:$("#current_treatment").val()}, + load_shortcut_menu + ); + }); + $("#current_treatmentfile").change(function(){ + $.post('/' + url_path + 'update-current-item/', + {item:'treatmentfile', value:$("#current_treatmentfile").val()}, + load_shortcut_menu + ); + }); } function init_advanced_shortcut_fields(){ diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 783c6badb..cf3f968b1 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -264,7 +264,7 @@ def shortcut_menu(request): 'ishtar/blocks/advanced_shortcut_menu.html', dct, context_instance=RequestContext(request)) dct = {'current_menu': []} - current_selected_item = None + current_selected_item = {} for lbl, model in CURRENT_ITEMS: new_selected_item = None model_name = model.SLUG @@ -294,7 +294,8 @@ def shortcut_menu(request): pass if items: dct['current_menu'].append((lbl, model_name, cls, items)) - current_selected_item = new_selected_item + if new_selected_item: + current_selected_item[model_name] = new_selected_item return render_to_response('ishtar/blocks/shortcut_menu.html', dct, context_instance=RequestContext(request)) @@ -317,6 +318,16 @@ def get_current_items(request): def unpin(request, item_type): + if item_type not in ('find', 'contextrecord', 'operation', 'file', + 'treatment', 'treatmentfile'): + logger.warning("unpin unknow type: {}".format(item_type)) + return HttpResponse('nok') + request.session['treatment'] = '' + if item_type == 'treatment': + return HttpResponse('ok') + request.session['treatmentfile'] = '' + if item_type == 'treatmentfile': + return HttpResponse('ok') request.session['find'] = '' if item_type == 'find': return HttpResponse('ok') @@ -327,7 +338,8 @@ def unpin(request, item_type): if item_type == 'operation': return HttpResponse('ok') request.session['file'] = '' - return HttpResponse('ok') + if item_type == 'file': + return HttpResponse('ok') def update_current_item(request, item_type=None, pk=None): -- cgit v1.2.3 From 6830c1ba33771fdecca15aeffded5b92aa88775c Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 5 Jan 2017 16:30:14 +0100 Subject: Town autocomplete: disable search by department name --- ishtar_common/views.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/views.py b/ishtar_common/views.py index cf3f968b1..d99e7f7ef 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -479,9 +479,8 @@ def autocomplete_town(request): for q in q.split(' '): extra = Q(name__icontains=q) if settings.COUNTRY == 'fr': - extra = (extra | Q(numero_insee__istartswith=q) | - Q(departement__label__istartswith=q)) - query = query & extra + extra |= Q(numero_insee__istartswith=q) + query &= extra limit = 20 towns = models.Town.objects.filter(query)[:limit] data = json.dumps([{'id': town.pk, 'value': unicode(town)} -- cgit v1.2.3 From 9f8f172e7e18c9d8fffc5d973f269a50a975d34e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 5 Jan 2017 18:19:06 +0100 Subject: Better management of context record relations tables (refs #3347) --- archaeological_context_records/forms.py | 1 + .../migrations/0027_view_record_relations.py | 659 +++++++++++++++++++++ archaeological_context_records/models.py | 38 ++ .../templates/ishtar/sheet_contextrecord.html | 2 +- archaeological_context_records/urls.py | 3 + archaeological_context_records/views.py | 2 +- ishtar_common/templatetags/window_tables.py | 4 +- ishtar_common/views.py | 8 +- 8 files changed, 709 insertions(+), 8 deletions(-) create mode 100644 archaeological_context_records/migrations/0027_view_record_relations.py (limited to 'ishtar_common') diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index f47f41614..0452243e2 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -159,6 +159,7 @@ class RecordFormGeneral(ManageOldType, forms.Form): max_length=255, required=False, widget=widgets.ImageFileInput()) def __init__(self, *args, **kwargs): + # TODO: simplify operation = None if 'data' in kwargs and kwargs['data'] and \ ('operation' in kwargs['data'] or diff --git a/archaeological_context_records/migrations/0027_view_record_relations.py b/archaeological_context_records/migrations/0027_view_record_relations.py new file mode 100644 index 000000000..ebf4a1349 --- /dev/null +++ b/archaeological_context_records/migrations/0027_view_record_relations.py @@ -0,0 +1,659 @@ +# -*- 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): + sql = """ + CREATE VIEW record_relations AS + SELECT DISTINCT right_record_id as id, + right_record_id, + left_record_id, + relation_type_id + FROM archaeological_context_records_recordrelations; + + -- deactivate deletion + CREATE RULE record_relations_del AS ON DELETE TO record_relations + DO INSTEAD DELETE FROM record_relations where id=NULL; + """ + db.execute(sql) + + def backwards(self, orm): + sql = """ + DROP VIEW record_relations; + """ + db.execute(sql) + + models = { + 'archaeological_context_records.activitytype': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.contextrecord': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'}, + 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + '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': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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': '255', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.contextrecordsource': { + 'Meta': {'object_name': 'ContextRecordSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contextrecordsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_context_records.dating': { + 'Meta': {'object_name': 'Dating'}, + 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}), + 'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.datingquality': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingQuality'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.datingtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.historicalcontextrecord': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalContextRecord'}, + 'activity_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + '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': '255', 'null': 'True', 'blank': 'True'}), + 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'location': ('django.db.models.fields.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': '255', 'null': 'True', 'blank': 'True'}), + 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'unit_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_context_records.identificationtype': { + 'Meta': {'ordering': "('order', 'label')", 'object_name': 'IdentificationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_context_records.recordrelations': { + 'Meta': {'object_name': 'RecordRelations'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"}), + 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']"}), + 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"}) + }, + 'archaeological_context_records.recordrelationview': { + 'Meta': {'unique_together': "(('id', 'right_record'),)", 'object_name': 'RecordRelationView', 'db_table': "'find_uptreatments'", 'managed': 'False'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['archaeological_context_records.RelationType']"}), + 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", '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': '2017'}) + }, + 'archaeological_files.filetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'FileType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_files.permittype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_files.saisinetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + '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'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.parcel': { + 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'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']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'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 a0ba6c379..51a239230 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -431,6 +431,44 @@ class RecordRelations(GeneralRecordRelations, models.Model): post_delete.connect(post_delete_record_relation, sender=RecordRelations) +class RecordRelationView(models.Model): + """ + CREATE VIEW record_relations AS + SELECT DISTINCT right_record_id as id, + right_record_id, + left_record_id, + relation_type_id + FROM archaeological_context_records_recordrelations; + + -- deactivate deletion + CREATE RULE record_relations_del AS ON DELETE TO record_relations + DO INSTEAD DELETE FROM record_relations where id=NULL; + """ + TABLE_COLS = [ + "relation_type", + "right_record__label", "right_record__unit", "right_record__parcel", + "right_record__datings__period", "right_record__description"] + COL_LABELS = { + "relation_type": _(u"Relation type"), + "right_record__label": _(u"ID"), + "right_record__unit": _(u"Unit"), + "right_record__parcel": _(u"Parcel"), + "right_record__description": _(u"Description"), + "right_record__datings__period": _(u"Periods") + } + left_record = models.ForeignKey(ContextRecord, related_name='+') + right_record = models.ForeignKey(ContextRecord, related_name='+') + relation_type = models.ForeignKey(RelationType, related_name='+') + + class Meta: + managed = False + db_table = 'record_relations' + unique_together = ('id', 'right_record') + + def __unicode__(self): + return u"{} \"{}\"".format(self.relation_type, self.right_record) + + class ContextRecordSource(Source): SHOW_URL = 'show-contextrecordsource' MODIFY_URL = 'record_source_modify' diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html index e5edb4af5..e5304f9cb 100644 --- a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html @@ -59,7 +59,7 @@ {% trans "Context record relations" as cr_rels %} {% if item.right_relations.count %} -{% dynamic_table_document cr_rels 'context_records_relations' 'left_record' item.pk '' output %} +{% dynamic_table_document cr_rels 'context_records_relations' 'left_record_id' item.pk '' output %} {% endif %} diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index 24e8e06eb..8cfb1b391 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -69,6 +69,9 @@ urlpatterns += patterns( name='autocomplete-contextrecord'), url(r'show-contextrecord(?:/(?P.+))?/(?P.+)?$', 'show_contextrecord', name=models.ContextRecord.SHOW_URL), + # show-contextrecordrelation is only a view the id point to a context record + url(r'show-contextrecord(?:/(?P.+))?/(?P.+)?$', + 'show_contextrecord', name='show-contextrecordrelation'), url(r'show-historized-contextrecord/(?P.+)?/(?P.+)?$', 'show_contextrecord', name='show-historized-contextrecord'), url(r'revert-contextrecord/(?P.+)/(?P.+)$', diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 8991e4edd..b79cd2671 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -80,7 +80,7 @@ get_contextrecordsource = get_item( 'get_contextrecordsource', 'contextrecordsource') get_contextrecordrelation = get_item( - models.RecordRelations, 'get_contextrecordrelation', + models.RecordRelationView, 'get_contextrecordrelation', 'contextrecordrelation') record_search_wizard = SearchWizard.as_view([ diff --git a/ishtar_common/templatetags/window_tables.py b/ishtar_common/templatetags/window_tables.py index e9f628ab6..fc2ba3874 100644 --- a/ishtar_common/templatetags/window_tables.py +++ b/ishtar_common/templatetags/window_tables.py @@ -15,7 +15,7 @@ from ishtar_common.widgets import JQueryJqGrid from archaeological_files.models import File from archaeological_operations.models import OperationSource, Operation from archaeological_context_records.models import ContextRecord, \ - ContextRecordSource, RecordRelations as CRRecordRelations + ContextRecordSource, RecordRelationView from archaeological_finds.models import Find, FindSource, \ FindUpstreamTreatments, FindDownstreamTreatments, FindTreatments from archaeological_warehouse.models import Container @@ -41,7 +41,7 @@ ASSOCIATED_MODELS['context_records_docs'] = ( ContextRecordSource, 'get-contextrecordsource', 'get-contextrecordsource-full') ASSOCIATED_MODELS['context_records_relations'] = ( - CRRecordRelations, 'get-contextrecordrelation', '') + RecordRelationView, 'get-contextrecordrelation', '') ASSOCIATED_MODELS['finds'] = (Find, 'get-find', 'get-find-full') ASSOCIATED_MODELS['finds_for_ope'] = ( diff --git a/ishtar_common/views.py b/ishtar_common/views.py index d99e7f7ef..5f37a4dbf 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -768,7 +768,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], alt_dct = dct.copy() alt_dct.pop(k) alt_dct.update(or_req) - query = query | Q(**alt_dct) + query |= Q(**alt_dct) for rtype_prefix in relation_types: vals = list(relation_types[rtype_prefix]) @@ -793,8 +793,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], if not dct: # fake condition to trick Django (1.4): without it only the # alt_dct is managed - query = query & Q(pk__isnull=False) - query = query | Q(**alt_dct) + query &= Q(pk__isnull=False) + query |= Q(**alt_dct) for k, or_req in or_reqs: altor_dct = alt_dct.copy() altor_dct.pop(k) @@ -805,7 +805,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], altor_dct[ rtype_prefix + 'right_relations__right_record__' + j] =\ val - query = query | Q(**altor_dct) + query |= Q(**altor_dct) if own: query = query & model.get_query_owns(request.user) -- cgit v1.2.3 From 1aa58f90a149d7de7813dcf45fe8c1fb04a63143 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 9 Jan 2017 13:30:23 +0100 Subject: tests: force managing of unmanage tables --- example_project/settings.py | 2 ++ ishtar_common/tests.py | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) (limited to 'ishtar_common') diff --git a/example_project/settings.py b/example_project/settings.py index a191b83b3..437c75673 100644 --- a/example_project/settings.py +++ b/example_project/settings.py @@ -229,6 +229,8 @@ OP_PREFIX = 'OP' PRE_APPS = [] EXTRA_APPS = [] +TEST_RUNNER = 'ishtar_common.tests.ManagedModelTestRunner' + try: from local_settings import * except ImportError, e: diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index a00f8a174..6db425cab 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -29,6 +29,7 @@ from django.core.urlresolvers import reverse from django.template.defaultfilters import slugify from django.test import TestCase from django.test.client import Client +from django.test.simple import DjangoTestSuiteRunner from ishtar_common import models @@ -101,6 +102,29 @@ class WizardTestFormData(object): test(test_object, final_step_response) +class ManagedModelTestRunner(DjangoTestSuiteRunner): + """ + Test runner that automatically makes all unmanaged models in your Django + project managed for the duration of the test run, so that one doesn't need + to execute the SQL manually to create them. + """ + def setup_test_environment(self, *args, **kwargs): + from django.db.models.loading import get_models + self.unmanaged_models = [m for m in get_models() + if not m._meta.managed] + for m in self.unmanaged_models: + m._meta.managed = True + super(ManagedModelTestRunner, self).setup_test_environment(*args, + **kwargs) + + def teardown_test_environment(self, *args, **kwargs): + super(ManagedModelTestRunner, self).teardown_test_environment(*args, + **kwargs) + # reset unmanaged models + for m in self.unmanaged_models: + m._meta.managed = False + + class WizardTest(object): url_name = None wizard_name = '' -- cgit v1.2.3 From e8373b2d7c1ef6c554aeadd93b577001b049000e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 9 Jan 2017 18:09:37 +0100 Subject: Contex record: fix relation tables --- archaeological_context_records/models.py | 17 +++++++++++------ archaeological_context_records/urls.py | 3 +++ archaeological_context_records/views.py | 4 ++++ .../templates/ishtar/sheet_operation.html | 2 +- ishtar_common/templatetags/window_tables.py | 5 ++++- ishtar_common/views.py | 2 +- 6 files changed, 24 insertions(+), 9 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 5e4d31c3b..cf39870ca 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -128,8 +128,9 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, if settings.COUNTRY == 'fr': TABLE_COLS.insert(1, 'operation__code_patriarche') TABLE_COLS_FOR_OPE = ['label', 'parcel', 'unit', - 'datings__period', 'description'] - COL_LABELS = {'section__parcel_number': _("Parcel")} + 'datings__period__label', 'description'] + COL_LABELS = {'section__parcel_number': _(u"Parcel"), + 'datings__period__label': _(u"Periods")} CONTEXTUAL_TABLE_COLS = { 'full': { 'related_context_records': 'detailled_related_context_records' @@ -401,10 +402,9 @@ class RecordRelations(GeneralRecordRelations, models.Model): relation_type = models.ForeignKey(RelationType) TABLE_COLS = [ "left_record__label", "left_record__unit", "left_record__parcel", - "left_record__datings__period", "left_record__description", "relation_type", "right_record__label", "right_record__unit", "right_record__parcel", - "right_record__datings__period", "right_record__description"] + ] COL_LABELS = { "left_record__label": _(u"ID (left)"), "left_record__unit": _(u"Unit (left)"), @@ -412,8 +412,8 @@ class RecordRelations(GeneralRecordRelations, models.Model): "left_record__description": _(u"Description (left)"), "left_record__datings__period": _(u"Periods (left)"), "relation_type": _(u"Relation type"), - "right_record__label": _(u"Unit (right)"), - "right_record__unit": _(u"Parcel (right)"), + "right_record__label": _(u"ID (right)"), + "right_record__unit": _(u"Unit (right)"), "right_record__parcel": _(u"Parcel (right)"), "right_record__description": _(u"Description (right)"), "right_record__datings__period": _(u"Periods (right)") @@ -456,6 +456,11 @@ class RecordRelationView(models.Model): "right_record__description": _(u"Description"), "right_record__datings__period": _(u"Periods") } + + # search parameters + EXTRA_REQUEST_KEYS = { + "left_record_id": "left_record_id" + } left_record = models.ForeignKey(ContextRecord, related_name='+', on_delete=models.DO_NOTHING) right_record = models.ForeignKey(ContextRecord, related_name='+', diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index 8cfb1b391..341d321f9 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -97,6 +97,9 @@ urlpatterns += patterns( kwargs={'full': 'shortcut'}), url(r'get-contextrecordrelation/(?P.+)?$', 'get_contextrecordrelation', name='get-contextrecordrelation'), + url(r'get-contextrecordrelationdetail/(?P.+)?$', + 'get_contextrecordrelationdetail', + name='get-contextrecordrelationdetail'), url(r'show-contextrecordsource(?:/(?P.+))?/(?P.+)?$', 'show_contextrecordsource', name=models.ContextRecordSource.SHOW_URL), url(r'get-contexrecordsource/(?P.+)?$', diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index b79cd2671..cf3a13b3b 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -83,6 +83,10 @@ get_contextrecordrelation = get_item( models.RecordRelationView, 'get_contextrecordrelation', 'contextrecordrelation') +get_contextrecordrelationdetail = get_item( + models.RecordRelations, 'get_contextrecordrelationdetail', + 'contextrecordrelationdetail') + record_search_wizard = SearchWizard.as_view([ ('general-record_search', RecordFormSelection)], label=_(u"Context record search"), diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html index 4fc6c1a28..43446c516 100644 --- a/archaeological_operations/templates/ishtar/sheet_operation.html +++ b/archaeological_operations/templates/ishtar/sheet_operation.html @@ -115,7 +115,7 @@ {% trans "Context record relations" as cr_rels %} {% if item.context_record_relations_q.count %} -{% dynamic_table_document cr_rels 'context_records_relations' 'left_record__operation' item.pk '' output %} +{% dynamic_table_document cr_rels 'context_records_relations_detail' 'left_record__operation' item.pk '' output %} {% endif %} {% trans "Documents from associated context records" as cr_docs %} diff --git a/ishtar_common/templatetags/window_tables.py b/ishtar_common/templatetags/window_tables.py index fc2ba3874..2fc364f25 100644 --- a/ishtar_common/templatetags/window_tables.py +++ b/ishtar_common/templatetags/window_tables.py @@ -15,7 +15,8 @@ from ishtar_common.widgets import JQueryJqGrid from archaeological_files.models import File from archaeological_operations.models import OperationSource, Operation from archaeological_context_records.models import ContextRecord, \ - ContextRecordSource, RecordRelationView + ContextRecordSource, RecordRelationView, \ + RecordRelations as CRRecordRelations from archaeological_finds.models import Find, FindSource, \ FindUpstreamTreatments, FindDownstreamTreatments, FindTreatments from archaeological_warehouse.models import Container @@ -42,6 +43,8 @@ ASSOCIATED_MODELS['context_records_docs'] = ( 'get-contextrecordsource', 'get-contextrecordsource-full') ASSOCIATED_MODELS['context_records_relations'] = ( RecordRelationView, 'get-contextrecordrelation', '') +ASSOCIATED_MODELS['context_records_relations_detail'] = ( + CRRecordRelations, 'get-contextrecordrelationdetail', '') ASSOCIATED_MODELS['finds'] = (Find, 'get-find', 'get-find-full') ASSOCIATED_MODELS['finds_for_ope'] = ( diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 5f37a4dbf..1e272fc78 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -827,7 +827,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], and request.session[model_name] if current: dct = {upper_key: current} - query = query & Q(**dct) + query &= Q(**dct) items = model.objects.filter(query).distinct() # print(items.query) -- cgit v1.2.3 From f5f93b8c556d591967dd2001a684fd67dca7b44f Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 9 Jan 2017 22:16:03 +0100 Subject: Update translation --- archaeological_context_records/locale/django.pot | 167 ++++--- archaeological_finds/locale/django.pot | 512 ++++++++++--------- archaeological_operations/locale/django.pot | 20 +- archaeological_warehouse/locale/django.pot | 156 ++++-- ishtar_common/locale/django.pot | 540 ++++++++++---------- translations/de/ishtar_common.po | 540 ++++++++++---------- translations/fr/archaeological_context_records.po | 172 ++++--- translations/fr/archaeological_finds.po | 570 ++++++++++++---------- translations/fr/archaeological_operations.po | 20 +- translations/fr/archaeological_warehouse.po | 176 ++++--- translations/fr/ishtar_common.po | 540 ++++++++++---------- 11 files changed, 1837 insertions(+), 1576 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index 7793cc906..188135243 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -6,11 +6,11 @@ msgid "" msgstr "" -#: forms.py:47 forms.py:51 models.py:174 wizards.py:77 +#: forms.py:47 forms.py:51 models.py:175 wizards.py:77 msgid "Operation" msgstr "" -#: forms.py:59 forms.py:137 models.py:176 +#: forms.py:59 forms.py:137 models.py:177 models.py:453 msgid "ID" msgstr "" @@ -34,7 +34,7 @@ msgstr "" msgid "Search within related operations" msgstr "" -#: forms.py:77 forms.py:232 models.py:55 +#: forms.py:77 forms.py:233 models.py:55 msgid "Period" msgstr "" @@ -50,7 +50,7 @@ msgstr "" msgid "Search within relations" msgstr "" -#: forms.py:111 forms.py:335 views.py:88 +#: forms.py:111 forms.py:336 views.py:92 msgid "Context record search" msgstr "" @@ -62,43 +62,44 @@ msgstr "" msgid "General" msgstr "" -#: forms.py:136 models.py:132 models.py:172 +#: forms.py:136 models.py:132 models.py:173 models.py:455 msgid "Parcel" msgstr "" -#: forms.py:139 models.py:177 templates/ishtar/sheet_contextrecord.html:27 +#: forms.py:139 models.py:178 models.py:456 +#: templates/ishtar/sheet_contextrecord.html:27 msgid "Description" msgstr "" -#: forms.py:141 models.py:178 +#: forms.py:141 models.py:179 msgid "General comment" msgstr "" -#: forms.py:143 models.py:182 +#: forms.py:143 models.py:183 msgid "Length (m)" msgstr "" -#: forms.py:144 models.py:183 +#: forms.py:144 models.py:184 msgid "Width (m)" msgstr "" -#: forms.py:145 models.py:184 +#: forms.py:145 models.py:185 msgid "Thickness (m)" msgstr "" -#: forms.py:146 models.py:186 +#: forms.py:146 models.py:187 msgid "Depth (m)" msgstr "" -#: forms.py:147 models.py:194 +#: forms.py:147 models.py:195 models.py:454 msgid "Unit" msgstr "" -#: forms.py:148 models.py:196 +#: forms.py:148 models.py:197 msgid "Has furniture?" msgstr "" -#: forms.py:151 models.py:188 +#: forms.py:151 models.py:189 msgid "Location" msgstr "" @@ -113,116 +114,116 @@ msgid "" "p>" msgstr "" -#: forms.py:221 +#: forms.py:222 msgid "This ID already exists for this operation." msgstr "" -#: forms.py:227 forms.py:254 models.py:66 +#: forms.py:228 forms.py:255 models.py:66 msgid "Dating" msgstr "" -#: forms.py:233 models.py:56 +#: forms.py:234 models.py:56 msgid "Start date" msgstr "" -#: forms.py:234 models.py:57 models.py:181 +#: forms.py:235 models.py:57 models.py:182 msgid "End date" msgstr "" -#: forms.py:235 models.py:60 +#: forms.py:236 models.py:60 msgid "Quality" msgstr "" -#: forms.py:236 models.py:38 models.py:58 +#: forms.py:237 models.py:38 models.py:58 msgid "Dating type" msgstr "" -#: forms.py:263 ishtar_menu.py:29 models.py:468 +#: forms.py:264 ishtar_menu.py:29 models.py:514 msgid "Context record" msgstr "" -#: forms.py:284 +#: forms.py:285 msgid "Relations" msgstr "" -#: forms.py:288 forms.py:296 models.py:199 +#: forms.py:289 forms.py:297 models.py:200 #: templates/ishtar/sheet_contextrecord.html:39 msgid "Interpretation" msgstr "" -#: forms.py:292 +#: forms.py:293 msgid "Comments on dating" msgstr "" -#: forms.py:294 models.py:198 +#: forms.py:295 models.py:199 msgid "Filling" msgstr "" -#: forms.py:298 models.py:219 +#: forms.py:299 models.py:220 msgid "Activity" msgstr "" -#: forms.py:300 models.py:217 +#: forms.py:301 models.py:218 msgid "Identification" msgstr "" -#: forms.py:302 models.py:202 +#: forms.py:303 models.py:203 msgid "TAQ" msgstr "" -#: forms.py:303 models.py:206 +#: forms.py:304 models.py:207 msgid "Estimated TAQ" msgstr "" -#: forms.py:305 models.py:209 +#: forms.py:306 models.py:210 msgid "TPQ" msgstr "" -#: forms.py:306 models.py:213 +#: forms.py:307 models.py:214 msgid "Estimated TPQ" msgstr "" -#: forms.py:321 +#: forms.py:322 msgid "Operation search" msgstr "" -#: forms.py:323 +#: forms.py:324 msgid "You should select an operation." msgstr "" -#: forms.py:328 +#: forms.py:329 msgid "Would you like to delete this context record?" msgstr "" -#: forms.py:337 +#: forms.py:338 msgid "You should select a context record." msgstr "" -#: forms.py:342 +#: forms.py:343 msgid "Year of the operation" msgstr "" -#: forms.py:344 +#: forms.py:345 msgid "Numeric reference" msgstr "" -#: forms.py:350 +#: forms.py:351 msgid "Town of the operation" msgstr "" -#: forms.py:352 +#: forms.py:353 msgid "Period of the context record" msgstr "" -#: forms.py:354 +#: forms.py:355 msgid "Unit type of the context record" msgstr "" -#: forms.py:367 +#: forms.py:368 msgid "Documentation search" msgstr "" -#: forms.py:369 +#: forms.py:370 msgid "You should select a document." msgstr "" @@ -298,116 +299,120 @@ msgstr "" msgid "Identification Types" msgstr "" -#: models.py:160 -msgid "Parcel (town)" +#: models.py:133 models.py:457 +msgid "Periods" msgstr "" #: models.py:161 +msgid "Parcel (town)" +msgstr "" + +#: models.py:162 msgid "Related context records" msgstr "" -#: models.py:163 +#: models.py:164 msgid "Parcel (external ID)" msgstr "" -#: models.py:164 +#: models.py:165 msgid "Datings (period)" msgstr "" -#: models.py:165 +#: models.py:166 msgid "Parcel (year)" msgstr "" -#: models.py:169 +#: models.py:170 msgid "External ID" msgstr "" -#: models.py:171 +#: models.py:172 msgid "External ID is set automatically" msgstr "" -#: models.py:179 +#: models.py:180 msgid "Date d'ouverture" msgstr "" -#: models.py:189 +#: models.py:190 msgid "A short description of the location of the context record" msgstr "" -#: models.py:192 +#: models.py:193 msgid "Comment on datings" msgstr "" -#: models.py:203 +#: models.py:204 msgid "" "\"Terminus Ante Quem\" the context record can't have been created after this " "date" msgstr "" -#: models.py:207 +#: models.py:208 msgid "Estimation of a \"Terminus Ante Quem\"" msgstr "" -#: models.py:210 +#: models.py:211 msgid "" "\"Terminus Post Quem\" the context record can't have been created before " "this date" msgstr "" -#: models.py:214 +#: models.py:215 msgid "Estimation of a \"Terminus Post Quem\"" msgstr "" -#: models.py:222 +#: models.py:223 msgid "Point" msgstr "" -#: models.py:223 +#: models.py:224 msgid "Polygon" msgstr "" -#: models.py:224 +#: models.py:225 msgid "Cached name" msgstr "" -#: models.py:228 models.py:229 templates/ishtar/sheet_contextrecord.html:4 +#: models.py:229 models.py:230 templates/ishtar/sheet_contextrecord.html:4 msgid "Context Record" msgstr "" -#: models.py:231 +#: models.py:232 msgid "Can view all Context Records" msgstr "" -#: models.py:233 +#: models.py:234 msgid "Can view own Context Record" msgstr "" -#: models.py:235 +#: models.py:236 msgid "Can add own Context Record" msgstr "" -#: models.py:237 +#: models.py:238 msgid "Can change own Context Record" msgstr "" -#: models.py:239 +#: models.py:240 msgid "Can delete own Context Record" msgstr "" -#: models.py:249 +#: models.py:250 msgctxt "short" msgid "Context record" msgstr "" -#: models.py:386 +#: models.py:387 msgid "Inverse relation" msgstr "" -#: models.py:390 models.py:414 +#: models.py:391 models.py:414 models.py:452 msgid "Relation type" msgstr "" -#: models.py:391 +#: models.py:392 msgid "Relation types" msgstr "" @@ -432,10 +437,14 @@ msgid "Periods (left)" msgstr "" #: models.py:415 +msgid "ID (right)" +msgstr "" + +#: models.py:416 msgid "Unit (right)" msgstr "" -#: models.py:416 models.py:417 +#: models.py:417 msgid "Parcel (right)" msgstr "" @@ -455,39 +464,39 @@ msgstr "" msgid "Record relations" msgstr "" -#: models.py:465 +#: models.py:511 msgid "Context record documentation" msgstr "" -#: models.py:466 +#: models.py:512 msgid "Context record documentations" msgstr "" -#: views.py:98 +#: views.py:102 msgid "New context record" msgstr "" -#: views.py:109 +#: views.py:113 msgid "Context record modification" msgstr "" -#: views.py:123 +#: views.py:127 msgid "Context record deletion" msgstr "" -#: views.py:128 +#: views.py:132 msgid "Context record: source search" msgstr "" -#: views.py:136 +#: views.py:140 msgid "Context record: new source" msgstr "" -#: views.py:144 +#: views.py:148 msgid "Context record: source modification" msgstr "" -#: views.py:159 +#: views.py:163 msgid "Context record: source deletion" msgstr "" diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 7cd97a601..0ac52d19d 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -3,7 +3,6 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2015. # Valérie-Emma Leroux , 2016. #zanata -# Étienne Loks , 2016. #zanata msgid "" msgstr "" @@ -11,23 +10,23 @@ msgstr "" msgid "Context record" msgstr "" -#: forms.py:121 ishtar_menu.py:32 models_finds.py:449 models_finds.py:772 -#: models_finds.py:781 models_treatments.py:213 +#: forms.py:121 ishtar_menu.py:32 models_finds.py:466 models_finds.py:791 +#: models_finds.py:800 models_treatments.py:264 #: templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "" #: forms.py:132 forms.py:263 forms.py:487 models_finds.py:127 -#: models_finds.py:380 +#: models_finds.py:394 msgid "Free ID" msgstr "" -#: forms.py:134 models_finds.py:435 +#: forms.py:134 models_finds.py:449 msgid "Previous ID" msgstr "" -#: forms.py:135 forms.py:295 forms_treatments.py:130 models_finds.py:131 -#: models_finds.py:381 models_treatments.py:104 +#: forms.py:135 forms.py:295 forms_treatments.py:133 models_finds.py:131 +#: models_finds.py:395 models_treatments.py:123 msgid "Description" msgstr "" @@ -35,7 +34,7 @@ msgstr "" msgid "Batch/object" msgstr "" -#: forms.py:140 models_finds.py:409 +#: forms.py:140 models_finds.py:423 msgid "Is complete?" msgstr "" @@ -43,15 +42,15 @@ msgstr "" msgid "Material type" msgstr "" -#: forms.py:144 forms.py:289 models_finds.py:62 models_finds.py:385 +#: forms.py:144 forms.py:289 models_finds.py:62 models_finds.py:399 msgid "Conservatory state" msgstr "" -#: forms.py:147 models_finds.py:387 +#: forms.py:147 models_finds.py:401 msgid "Conservatory comment" msgstr "" -#: forms.py:150 models_finds.py:102 models_finds.py:412 +#: forms.py:150 models_finds.py:102 models_finds.py:426 msgid "Object types" msgstr "" @@ -59,96 +58,96 @@ msgstr "" msgid "Preservation type" msgstr "" -#: forms.py:155 forms.py:291 models_finds.py:414 +#: forms.py:155 forms.py:291 models_finds.py:428 msgid "Integrity / interest" msgstr "" -#: forms.py:158 forms.py:293 models_finds.py:417 +#: forms.py:158 forms.py:293 models_finds.py:431 msgid "Remarkability" msgstr "" -#: forms.py:161 models_finds.py:427 +#: forms.py:161 models_finds.py:441 msgid "Point of topographic reference" msgstr "" -#: forms.py:164 models_finds.py:421 +#: forms.py:164 models_finds.py:435 msgid "Length (cm)" msgstr "" -#: forms.py:165 models_finds.py:422 +#: forms.py:165 models_finds.py:436 msgid "Width (cm)" msgstr "" -#: forms.py:166 models_finds.py:423 +#: forms.py:166 models_finds.py:437 msgid "Height (cm)" msgstr "" -#: forms.py:167 models_finds.py:424 +#: forms.py:167 models_finds.py:438 msgid "Diameter (cm)" msgstr "" -#: forms.py:168 models_finds.py:425 +#: forms.py:168 models_finds.py:439 msgid "Thickness (cm)" msgstr "" -#: forms.py:169 forms.py:492 models_finds.py:392 +#: forms.py:169 forms.py:492 models_finds.py:406 msgid "Volume (l)" msgstr "" -#: forms.py:170 forms.py:493 models_finds.py:393 +#: forms.py:170 forms.py:493 models_finds.py:407 msgid "Weight (g)" msgstr "" -#: forms.py:172 models_finds.py:429 +#: forms.py:172 models_finds.py:443 msgid "Dimensions comment" msgstr "" -#: forms.py:173 forms.py:494 models_finds.py:396 +#: forms.py:173 forms.py:494 models_finds.py:410 msgid "Find number" msgstr "" -#: forms.py:175 models_finds.py:420 +#: forms.py:175 models_finds.py:434 msgid "Minimum number of individuals (MNI)" msgstr "" -#: forms.py:176 models_finds.py:431 +#: forms.py:176 models_finds.py:445 msgid "Mark" msgstr "" -#: forms.py:177 forms.py:299 models_finds.py:437 +#: forms.py:177 forms.py:299 models_finds.py:451 msgid "Check" msgstr "" -#: forms.py:179 models_finds.py:439 +#: forms.py:179 models_finds.py:453 msgid "Check date" msgstr "" -#: forms.py:180 forms_treatments.py:128 forms_treatments.py:409 -#: models_finds.py:132 models_finds.py:432 models_treatments.py:103 -#: models_treatments.py:403 +#: forms.py:180 forms_treatments.py:131 forms_treatments.py:418 +#: models_finds.py:132 models_finds.py:446 models_treatments.py:122 +#: models_treatments.py:467 msgid "Comment" msgstr "" -#: forms.py:183 models_finds.py:433 +#: forms.py:183 models_finds.py:447 msgid "Comment on dating" msgstr "" -#: forms.py:184 models_finds.py:441 +#: forms.py:184 models_finds.py:455 msgid "Estimated value" msgstr "" -#: forms.py:186 forms_treatments.py:139 +#: forms.py:186 forms_treatments.py:142 msgid "Image" msgstr "" -#: forms.py:187 forms_treatments.py:140 +#: forms.py:187 forms_treatments.py:143 #, python-format msgid "" "

        Heavy images are resized to: %(width)dx%(height)d (ratio is preserved)." msgstr "" -#: forms.py:226 forms.py:257 models_finds.py:404 +#: forms.py:226 forms.py:257 models_finds.py:418 msgid "Dating" msgstr "" @@ -156,15 +155,14 @@ msgstr "" msgid "Period" msgstr "" -#: forms.py:232 forms_treatments.py:134 forms_treatments.py:411 -#: models_finds.py:786 models_treatments.py:106 models_treatments.py:224 -#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 +#: forms.py:232 forms_treatments.py:137 forms_treatments.py:420 +#: models_finds.py:805 models_treatments.py:125 models_treatments.py:275 +#: templates/ishtar/sheet_find.html:101 templates/ishtar/sheet_find.html:141 msgid "Start date" msgstr "" -#: forms.py:234 forms_treatments.py:136 models_finds.py:787 -#: models_treatments.py:107 models_treatments.py:225 -#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 +#: forms.py:234 models_finds.py:806 models_treatments.py:276 +#: templates/ishtar/sheet_find.html:102 templates/ishtar/sheet_find.html:142 msgid "End date" msgstr "" @@ -188,9 +186,9 @@ msgstr "" msgid "Complete ID" msgstr "" -#: forms.py:266 forms_treatments.py:53 forms_treatments.py:94 -#: forms_treatments.py:259 forms_treatments.py:331 forms_treatments.py:381 -#: forms_treatments.py:464 models_treatments.py:83 models_treatments.py:375 +#: forms.py:266 forms_treatments.py:53 forms_treatments.py:95 +#: forms_treatments.py:268 forms_treatments.py:340 forms_treatments.py:390 +#: forms_treatments.py:473 models_treatments.py:98 models_treatments.py:439 msgid "Year" msgstr "" @@ -222,11 +220,11 @@ msgstr "" msgid "Find search" msgstr "" -#: forms.py:369 templates/ishtar/sheet_treatment.html:36 +#: forms.py:369 templates/ishtar/sheet_treatment.html:42 msgid "Upstream finds" msgstr "" -#: forms.py:371 models_finds.py:450 +#: forms.py:371 models_finds.py:467 msgid "Finds" msgstr "" @@ -250,7 +248,7 @@ msgstr "" msgid "Would you like to delete this find?" msgstr "" -#: forms.py:513 models_treatments.py:76 +#: forms.py:513 models_treatments.py:90 msgid "Upstream find" msgstr "" @@ -282,11 +280,11 @@ msgstr "" msgid "Description of the archaeological find" msgstr "" -#: forms.py:558 forms_treatments.py:563 forms_treatments.py:587 +#: forms.py:558 forms_treatments.py:574 forms_treatments.py:600 msgid "Documentation search" msgstr "" -#: forms.py:560 forms_treatments.py:565 forms_treatments.py:589 +#: forms.py:560 forms_treatments.py:576 forms_treatments.py:602 msgid "You should select a document." msgstr "" @@ -294,33 +292,33 @@ msgstr "" msgid "Another basket already exists with this name." msgstr "" -#: forms.py:587 forms.py:591 forms_treatments.py:156 ishtar_menu.py:56 +#: forms.py:587 forms.py:591 forms_treatments.py:159 ishtar_menu.py:56 msgid "Basket" msgstr "" -#: forms_treatments.py:51 forms_treatments.py:90 models_treatments.py:79 -#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:130 +#: forms_treatments.py:51 forms_treatments.py:91 models_treatments.py:94 +#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 msgid "Label" msgstr "" -#: forms_treatments.py:52 forms_treatments.py:93 models_treatments.py:81 +#: forms_treatments.py:52 forms_treatments.py:94 models_treatments.py:96 msgid "Other ref." msgstr "" -#: forms_treatments.py:54 forms_treatments.py:212 forms_treatments.py:260 -#: forms_treatments.py:323 forms_treatments.py:332 forms_treatments.py:434 -#: forms_treatments.py:465 forms_treatments.py:530 models_treatments.py:85 -#: models_treatments.py:377 +#: forms_treatments.py:54 forms_treatments.py:221 forms_treatments.py:269 +#: forms_treatments.py:332 forms_treatments.py:341 forms_treatments.py:443 +#: forms_treatments.py:474 forms_treatments.py:541 models_treatments.py:100 +#: models_treatments.py:441 msgid "Index" msgstr "" -#: forms_treatments.py:55 forms_treatments.py:99 forms_treatments.py:276 -#: forms_treatments.py:551 models_treatments.py:53 models_treatments.py:89 -#: models_treatments.py:223 +#: forms_treatments.py:55 forms_treatments.py:100 forms_treatments.py:285 +#: forms_treatments.py:562 models_treatments.py:56 models_treatments.py:105 +#: models_treatments.py:274 msgid "Treatment type" msgstr "" -#: forms_treatments.py:67 forms_treatments.py:533 views.py:359 +#: forms_treatments.py:67 forms_treatments.py:544 views.py:359 msgid "Treatment search" msgstr "" @@ -328,187 +326,199 @@ msgstr "" msgid "Base treatment" msgstr "" -#: forms_treatments.py:101 +#: forms_treatments.py:102 models_treatments.py:107 +msgid "State" +msgstr "" + +#: forms_treatments.py:104 msgid "Target" msgstr "" -#: forms_treatments.py:103 forms_treatments.py:392 models_treatments.py:96 +#: forms_treatments.py:106 forms_treatments.py:401 models_treatments.py:115 msgid "Responsible" msgstr "" -#: forms_treatments.py:109 models_treatments.py:99 +#: forms_treatments.py:112 models_treatments.py:118 msgid "Organization" msgstr "" -#: forms_treatments.py:115 models_treatments.py:91 models_treatments.py:226 +#: forms_treatments.py:118 models_treatments.py:110 models_treatments.py:277 msgid "Location" msgstr "" -#: forms_treatments.py:121 +#: forms_treatments.py:124 msgid "Container (relevant for packaging)" msgstr "" -#: forms_treatments.py:127 forms_treatments.py:388 +#: forms_treatments.py:130 forms_treatments.py:397 msgid "External ref." msgstr "" -#: forms_treatments.py:132 models_treatments.py:105 +#: forms_treatments.py:135 models_treatments.py:124 msgid "Goal" msgstr "" -#: forms_treatments.py:156 +#: forms_treatments.py:139 forms_treatments.py:426 models_treatments.py:126 +#: models_treatments.py:461 +msgid "Closing date" +msgstr "" + +#: forms_treatments.py:159 msgid "Single find" msgstr "" -#: forms_treatments.py:184 +#: forms_treatments.py:193 msgid "" "The container field is attached to the treatment. If no packaging treatment " "is done it is not relevant." msgstr "" -#: forms_treatments.py:189 +#: forms_treatments.py:198 msgid "If a packaging treatment is done, the container field must be filled." msgstr "" -#: forms_treatments.py:193 +#: forms_treatments.py:202 msgid "A responsible or an organization must be defined." msgstr "" -#: forms_treatments.py:231 +#: forms_treatments.py:240 msgid "Another treatment with this index exists for {}." msgstr "" -#: forms_treatments.py:237 -msgid "Associated file" +#: forms_treatments.py:246 models_treatments.py:103 +msgid "Associated request" msgstr "" -#: forms_treatments.py:241 forms_treatments.py:372 ishtar_menu.py:107 -#: models_treatments.py:408 models_treatments.py:473 wizards.py:183 -#: templates/ishtar/sheet_treatmentfile.html:5 -msgid "Treatment file" +#: forms_treatments.py:250 forms_treatments.py:381 ishtar_menu.py:107 +#: models_treatments.py:472 models_treatments.py:494 models_treatments.py:555 +#: wizards.py:183 templates/ishtar/sheet_treatmentfile.html:5 +msgid "Treatment request" msgstr "" -#: forms_treatments.py:250 +#: forms_treatments.py:259 msgid "" "Are you sure you want to delete this treatment? All changes made to the " "associated finds since this treatment record will be lost!" msgstr "" -#: forms_treatments.py:253 +#: forms_treatments.py:262 msgid "Would you like to delete this treatment?" msgstr "" -#: forms_treatments.py:261 forms_treatments.py:309 forms_treatments.py:466 -#: forms_treatments.py:515 +#: forms_treatments.py:270 forms_treatments.py:318 forms_treatments.py:475 +#: forms_treatments.py:526 msgid "Act type" msgstr "" -#: forms_treatments.py:262 forms_treatments.py:467 +#: forms_treatments.py:271 forms_treatments.py:476 msgid "Indexed?" msgstr "" -#: forms_treatments.py:263 forms_treatments.py:468 models_finds.py:120 +#: forms_treatments.py:272 forms_treatments.py:477 models_finds.py:120 msgid "Object" msgstr "" -#: forms_treatments.py:267 forms_treatments.py:472 +#: forms_treatments.py:276 forms_treatments.py:481 msgid "Signature date after" msgstr "" -#: forms_treatments.py:269 forms_treatments.py:474 +#: forms_treatments.py:278 forms_treatments.py:483 msgid "Signature date before" msgstr "" -#: forms_treatments.py:271 forms_treatments.py:546 +#: forms_treatments.py:280 forms_treatments.py:557 msgid "Treatment name" msgstr "" -#: forms_treatments.py:272 forms_treatments.py:547 +#: forms_treatments.py:281 forms_treatments.py:558 msgid "Treatment year" msgstr "" -#: forms_treatments.py:273 forms_treatments.py:548 +#: forms_treatments.py:282 forms_treatments.py:559 msgid "Treatment index" msgstr "" -#: forms_treatments.py:275 forms_treatments.py:550 +#: forms_treatments.py:284 forms_treatments.py:561 msgid "Treatment internal reference" msgstr "" -#: forms_treatments.py:279 forms_treatments.py:484 +#: forms_treatments.py:288 forms_treatments.py:495 msgid "Modified by" msgstr "" -#: forms_treatments.py:329 forms_treatments.py:379 models_treatments.py:382 +#: forms_treatments.py:338 forms_treatments.py:388 models_treatments.py:446 msgid "Name" msgstr "" -#: forms_treatments.py:330 forms_treatments.py:386 +#: forms_treatments.py:339 forms_treatments.py:395 msgid "Internal ref." msgstr "" -#: forms_treatments.py:333 forms_treatments.py:390 forms_treatments.py:481 -#: forms_treatments.py:575 models_treatments.py:362 models_treatments.py:383 -msgid "Treatment file type" +#: forms_treatments.py:342 forms_treatments.py:399 +#: templates/ishtar/sheet_find.html:97 templates/ishtar/sheet_find.html:137 +#: templates/ishtar/sheet_find.html:215 +msgid "Type" msgstr "" -#: forms_treatments.py:335 +#: forms_treatments.py:344 msgid "In charge" msgstr "" -#: forms_treatments.py:341 forms_treatments.py:398 models_treatments.py:391 +#: forms_treatments.py:350 forms_treatments.py:407 models_treatments.py:455 +#: templates/ishtar/sheet_treatmentfile.html:31 msgid "Applicant" msgstr "" -#: forms_treatments.py:347 forms_treatments.py:404 models_treatments.py:395 +#: forms_treatments.py:356 forms_treatments.py:413 models_treatments.py:459 +#: templates/ishtar/sheet_treatmentfile.html:38 msgid "Applicant organisation" msgstr "" -#: forms_treatments.py:360 forms_treatments.py:538 views.py:462 -msgid "Treatment file search" +#: forms_treatments.py:369 forms_treatments.py:549 +msgid "Treatment request search" msgstr "" -#: forms_treatments.py:414 models_treatments.py:401 +#: forms_treatments.py:423 models_treatments.py:465 msgid "Reception date" msgstr "" -#: forms_treatments.py:417 models_treatments.py:397 -msgid "Closing date" -msgstr "" - -#: forms_treatments.py:453 +#: forms_treatments.py:462 msgid "Another treatment file with this index exists for {}." msgstr "" -#: forms_treatments.py:459 +#: forms_treatments.py:468 msgid "Are you sure you want to delete this treatment file?" msgstr "" -#: forms_treatments.py:460 +#: forms_treatments.py:469 msgid "Would you like to delete this treatment file?" msgstr "" -#: forms_treatments.py:476 forms_treatments.py:570 -msgid "Treatment file name" +#: forms_treatments.py:485 forms_treatments.py:581 +msgid "Treatment request name" +msgstr "" + +#: forms_treatments.py:487 forms_treatments.py:583 +msgid "Treatment request year" msgstr "" -#: forms_treatments.py:477 forms_treatments.py:571 -msgid "Treatment file year" +#: forms_treatments.py:489 forms_treatments.py:585 +msgid "Treatment request index" msgstr "" -#: forms_treatments.py:478 forms_treatments.py:572 -msgid "Treatment file index" +#: forms_treatments.py:491 forms_treatments.py:587 +msgid "Treatment request internal reference" msgstr "" -#: forms_treatments.py:480 forms_treatments.py:574 -msgid "Treatment file internal reference" +#: forms_treatments.py:492 forms_treatments.py:588 models_treatments.py:424 +msgid "Treatment request type" msgstr "" -#: forms_treatments.py:535 +#: forms_treatments.py:546 msgid "You should select a treatment." msgstr "" -#: forms_treatments.py:541 +#: forms_treatments.py:552 msgid "You should select a treatment file." msgstr "" @@ -542,12 +552,12 @@ msgstr "" msgid "Documentation" msgstr "" -#: ishtar_menu.py:131 ishtar_menu.py:211 models_finds.py:783 +#: ishtar_menu.py:131 ishtar_menu.py:211 models_finds.py:802 msgid "Administrative act" msgstr "" -#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:204 -#: templates/ishtar/sheet_find.html:206 +#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:210 +#: templates/ishtar/sheet_find.html:212 msgid "Documents" msgstr "" @@ -555,8 +565,8 @@ msgstr "" msgid "Source" msgstr "" -#: ishtar_menu.py:183 models_treatments.py:115 models_treatments.py:215 -#: models_treatments.py:457 templates/ishtar/sheet_treatment.html:5 +#: ishtar_menu.py:183 models_treatments.py:134 models_treatments.py:266 +#: models_treatments.py:539 templates/ishtar/sheet_treatment.html:5 msgid "Treatment" msgstr "" @@ -576,7 +586,7 @@ msgstr "" msgid "Parent material" msgstr "" -#: models_finds.py:51 models_finds.py:383 +#: models_finds.py:51 models_finds.py:397 msgid "Material types" msgstr "" @@ -620,12 +630,12 @@ msgstr "" msgid "Batch" msgstr "" -#: models_finds.py:128 models_finds.py:376 models_treatments.py:101 -#: models_treatments.py:380 +#: models_finds.py:128 models_finds.py:390 models_treatments.py:120 +#: models_treatments.py:444 msgid "External ID" msgstr "" -#: models_finds.py:130 models_finds.py:378 +#: models_finds.py:130 models_finds.py:392 msgid "External ID is set automatically" msgstr "" @@ -665,7 +675,7 @@ msgstr "" msgid "Cached value - do not edit" msgstr "" -#: models_finds.py:159 models_finds.py:374 +#: models_finds.py:159 models_finds.py:388 msgid "Base find" msgstr "" @@ -713,244 +723,265 @@ msgstr "" msgid "Checked and correct" msgstr "" -#: models_finds.py:314 +#: models_finds.py:315 msgid "Periods" msgstr "" -#: models_finds.py:324 +#: models_finds.py:316 models_finds.py:421 models_treatments.py:127 +#: models_treatments.py:278 templates/ishtar/sheet_find.html:100 +#: templates/ishtar/sheet_find.html:140 +msgid "Container" +msgstr "" + +#: models_finds.py:326 msgid "Base find - Short ID" msgstr "" -#: models_finds.py:325 +#: models_finds.py:327 msgid "Base find - Complete ID" msgstr "" -#: models_finds.py:326 +#: models_finds.py:328 msgid "Base find - Comment" msgstr "" -#: models_finds.py:327 +#: models_finds.py:329 msgid "Base find - Description" msgstr "" -#: models_finds.py:328 +#: models_finds.py:330 msgid "Base find - Topographic localisation" msgstr "" -#: models_finds.py:330 +#: models_finds.py:332 msgid "Base find - Special interest" msgstr "" -#: models_finds.py:331 +#: models_finds.py:333 msgid "Base find - Discovery date" msgstr "" -#: models_finds.py:379 models_treatments.py:219 +#: models_finds.py:393 models_treatments.py:40 models_treatments.py:270 msgid "Order" msgstr "" -#: models_finds.py:390 +#: models_finds.py:404 msgid "Type of preservation to consider" msgstr "" -#: models_finds.py:394 +#: models_finds.py:408 msgid "Weight unit" msgstr "" -#: models_finds.py:400 templates/ishtar/sheet_find.html:83 +#: models_finds.py:414 templates/ishtar/sheet_find.html:89 msgid "Upstream treatment" msgstr "" -#: models_finds.py:403 templates/ishtar/sheet_find.html:123 +#: models_finds.py:417 templates/ishtar/sheet_find.html:129 msgid "Downstream treatment" msgstr "" -#: models_finds.py:407 models_treatments.py:108 models_treatments.py:227 -#: templates/ishtar/sheet_find.html:94 templates/ishtar/sheet_find.html:134 -msgid "Container" +#: models_finds.py:458 +msgid "Collection" msgstr "" -#: models_finds.py:443 models_treatments.py:111 models_treatments.py:404 +#: models_finds.py:460 models_treatments.py:130 models_treatments.py:468 msgid "Cached name" msgstr "" -#: models_finds.py:452 +#: models_finds.py:469 msgid "Can view all Finds" msgstr "" -#: models_finds.py:453 +#: models_finds.py:470 msgid "Can view own Find" msgstr "" -#: models_finds.py:454 +#: models_finds.py:471 msgid "Can add own Find" msgstr "" -#: models_finds.py:455 +#: models_finds.py:472 msgid "Can change own Find" msgstr "" -#: models_finds.py:456 +#: models_finds.py:473 msgid "Can delete own Find" msgstr "" -#: models_finds.py:462 +#: models_finds.py:479 msgid "FIND" msgstr "" -#: models_finds.py:770 +#: models_finds.py:789 msgid "Find documentation" msgstr "" -#: models_finds.py:771 +#: models_finds.py:790 msgid "Find documentations" msgstr "" -#: models_finds.py:784 +#: models_finds.py:803 msgid "Person" msgstr "" -#: models_finds.py:790 +#: models_finds.py:809 msgid "Property" msgstr "" -#: models_finds.py:791 +#: models_finds.py:810 msgid "Properties" msgstr "" -#: models_treatments.py:40 +#: models_treatments.py:41 +msgid "Parent type" +msgstr "" + +#: models_treatments.py:43 msgid "Virtual" msgstr "" -#: models_treatments.py:42 +#: models_treatments.py:45 msgid "Upstream is many" msgstr "" -#: models_treatments.py:44 +#: models_treatments.py:47 msgid "Check this if for this treatment from many finds you'll get one." msgstr "" -#: models_treatments.py:47 +#: models_treatments.py:50 msgid "Downstream is many" msgstr "" -#: models_treatments.py:49 +#: models_treatments.py:52 msgid "Check this if for this treatment from one find you'll get many." msgstr "" -#: models_treatments.py:54 +#: models_treatments.py:57 msgid "Treatment types" msgstr "" -#: models_treatments.py:75 +#: models_treatments.py:65 +msgid "Type of treatment state" +msgstr "" + +#: models_treatments.py:66 +msgid "Type of treatment states" +msgstr "" + +#: models_treatments.py:89 msgid "Downstream find" msgstr "" -#: models_treatments.py:93 +#: models_treatments.py:112 msgid "Location where the treatment is done. Target warehouse for a move." msgstr "" -#: models_treatments.py:110 +#: models_treatments.py:129 msgid "Target a basket" msgstr "" -#: models_treatments.py:116 templates/ishtar/sheet_find.html:80 -#: templates/ishtar/sheet_treatmentfile.html:27 +#: models_treatments.py:135 templates/ishtar/sheet_find.html:86 +#: templates/ishtar/sheet_treatmentfile.html:45 msgid "Treatments" msgstr "" -#: models_treatments.py:119 +#: models_treatments.py:138 msgid "Can view all Treatments" msgstr "" -#: models_treatments.py:120 +#: models_treatments.py:139 msgid "Can view own Treatment" msgstr "" -#: models_treatments.py:121 +#: models_treatments.py:140 msgid "Can add own Treatment" msgstr "" -#: models_treatments.py:122 +#: models_treatments.py:141 msgid "Can change own Treatment" msgstr "" -#: models_treatments.py:123 +#: models_treatments.py:142 msgid "Can delete own Treatment" msgstr "" -#: models_treatments.py:129 -msgid "by" +#: models_treatments.py:154 +msgid "TREATMENT" msgstr "" -#: models_treatments.py:228 templates/ishtar/sheet_find.html:93 -#: templates/ishtar/sheet_find.html:133 +#: models_treatments.py:279 templates/ishtar/sheet_find.html:99 +#: templates/ishtar/sheet_find.html:139 msgid "Doer" msgstr "" -#: models_treatments.py:229 models_treatments.py:230 -#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:132 +#: models_treatments.py:280 models_treatments.py:281 +#: templates/ishtar/sheet_find.html:98 templates/ishtar/sheet_find.html:138 msgid "Related finds" msgstr "" -#: models_treatments.py:351 +#: models_treatments.py:413 msgid "Is upstream" msgstr "" -#: models_treatments.py:363 -msgid "Treatment file types" +#: models_treatments.py:425 +msgid "Treatment request types" msgstr "" -#: models_treatments.py:378 +#: models_treatments.py:442 msgid "Internal reference" msgstr "" -#: models_treatments.py:387 +#: models_treatments.py:447 +msgid "Treatment file type" +msgstr "" + +#: models_treatments.py:451 msgid "Person in charge" msgstr "" -#: models_treatments.py:399 +#: models_treatments.py:463 msgid "Creation date" msgstr "" -#: models_treatments.py:409 -msgid "Treatment files" +#: models_treatments.py:473 +msgid "Treatment requests" msgstr "" -#: models_treatments.py:412 -msgid "Can view all Treatment files" +#: models_treatments.py:477 +msgid "Can view all Treatment requests" msgstr "" -#: models_treatments.py:414 -msgid "Can view own Treatment file" +#: models_treatments.py:479 +msgid "Can view own Treatment request" msgstr "" -#: models_treatments.py:416 -msgid "Can add own Treatment file" +#: models_treatments.py:481 +msgid "Can add own Treatment request" msgstr "" -#: models_treatments.py:418 -msgid "Can change own Treatment file" +#: models_treatments.py:483 +msgid "Can change own Treatment request" msgstr "" -#: models_treatments.py:420 -msgid "Can delete own Treatment file" +#: models_treatments.py:485 +msgid "Can delete own Treatment request" msgstr "" -#: models_treatments.py:463 +#: models_treatments.py:545 msgid "Treatment documentation" msgstr "" -#: models_treatments.py:464 +#: models_treatments.py:546 msgid "Treament documentations" msgstr "" -#: models_treatments.py:479 -msgid "Treatment file documentation" +#: models_treatments.py:562 +msgid "Treatment request documentation" msgstr "" -#: models_treatments.py:480 -msgid "Treament file documentations" +#: models_treatments.py:563 +msgid "Treatment request documentations" msgstr "" #: views.py:124 @@ -1001,75 +1032,79 @@ msgstr "" msgid "New treatment" msgstr "" -#: views.py:387 views.py:479 +#: views.py:388 views.py:480 msgid "Modify" msgstr "" -#: views.py:404 +#: views.py:405 msgid "Treatment deletion" msgstr "" -#: views.py:411 +#: views.py:412 msgid "Treatment: search administrative act" msgstr "" -#: views.py:420 +#: views.py:421 msgid "Treatment: new administrative act" msgstr "" -#: views.py:430 +#: views.py:431 msgid "Treatment: administrative act modification" msgstr "" -#: views.py:439 +#: views.py:440 msgid "Treatment: administrative act deletion" msgstr "" -#: views.py:472 +#: views.py:463 +msgid "Treatment file search" +msgstr "" + +#: views.py:473 msgid "New treatment file" msgstr "" -#: views.py:495 +#: views.py:496 msgid "Treatment file deletion" msgstr "" -#: views.py:502 +#: views.py:503 msgid "Treatment file: search administrative act" msgstr "" -#: views.py:512 +#: views.py:513 msgid "Treatment file: new administrative act" msgstr "" -#: views.py:522 +#: views.py:523 msgid "Treatment file: administrative act modification" msgstr "" -#: views.py:531 +#: views.py:532 msgid "Treatment file: administrative act deletion" msgstr "" -#: views.py:557 +#: views.py:558 msgid "Treatment: source search" msgstr "" -#: views.py:572 +#: views.py:573 msgid "Treatment: source modification" msgstr "" -#: views.py:587 +#: views.py:588 msgid "Treatment: source deletion" msgstr "" -#: views.py:600 +#: views.py:601 msgid "Treatment file: source search" msgstr "" -#: views.py:616 +#: views.py:617 msgid "Treatment file: source modification" msgstr "" -#: views.py:634 +#: views.py:635 msgid "Treatment file: source deletion" msgstr "" @@ -1077,36 +1112,35 @@ msgstr "" msgid "Operation" msgstr "" -#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:129 -msgid "Year - index" +#: templates/ishtar/sheet_find.html:79 +msgid "Localisation" msgstr "" -#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:131 -#: templates/ishtar/sheet_find.html:209 -msgid "Type" +#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 +msgid "Year - index" msgstr "" -#: templates/ishtar/sheet_find.html:119 +#: templates/ishtar/sheet_find.html:125 msgid "Export as CSV" msgstr "" -#: templates/ishtar/sheet_find.html:119 templates/ishtar/sheet_find.html:160 +#: templates/ishtar/sheet_find.html:125 templates/ishtar/sheet_find.html:166 msgid "CSV" msgstr "" -#: templates/ishtar/sheet_find.html:165 +#: templates/ishtar/sheet_find.html:171 msgid "Associated base finds" msgstr "" -#: templates/ishtar/sheet_find.html:208 +#: templates/ishtar/sheet_find.html:214 msgid "Title" msgstr "" -#: templates/ishtar/sheet_find.html:210 +#: templates/ishtar/sheet_find.html:216 msgid "Authors" msgstr "" -#: templates/ishtar/sheet_find.html:211 +#: templates/ishtar/sheet_find.html:217 msgid "Link" msgstr "" @@ -1118,7 +1152,17 @@ msgstr "" msgid "Find source" msgstr "" -#: templates/ishtar/sheet_treatment.html:41 +#: templates/ishtar/sheet_treatment.html:20 +#: templates/ishtar/sheet_treatmentfile.html:16 +msgid "Closed" +msgstr "" + +#: templates/ishtar/sheet_treatment.html:22 +#: templates/ishtar/sheet_treatmentfile.html:18 +msgid "Active" +msgstr "" + +#: templates/ishtar/sheet_treatment.html:47 msgid "Downstream finds" msgstr "" diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index d0b6b7647..384dafab5 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -520,7 +520,7 @@ msgstr "" msgid "Object" msgstr "" -#: forms.py:1307 views.py:324 +#: forms.py:1307 views.py:329 msgid "Administrative act search" msgstr "" @@ -563,7 +563,7 @@ msgstr "" msgid "Generate the associated doc?" msgstr "" -#: forms.py:1471 ishtar_menu.py:121 views.py:377 +#: forms.py:1471 ishtar_menu.py:121 views.py:382 msgctxt "admin act register" msgid "Register" msgstr "" @@ -1052,35 +1052,35 @@ msgstr "" msgid "Operation closing" msgstr "" -#: views.py:282 +#: views.py:287 msgid "Operation deletion" msgstr "" -#: views.py:287 +#: views.py:292 msgid "Operation: source search" msgstr "" -#: views.py:295 +#: views.py:300 msgid "Operation: source creation" msgstr "" -#: views.py:303 +#: views.py:308 msgid "Operation: source modification" msgstr "" -#: views.py:318 +#: views.py:323 msgid "Operation: source deletion" msgstr "" -#: views.py:337 +#: views.py:342 msgid "Operation: new administrative act" msgstr "" -#: views.py:347 +#: views.py:352 msgid "Operation: administrative act modification" msgstr "" -#: views.py:371 +#: views.py:376 msgid "Operation: administrative act deletion" msgstr "" diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index 717f674e9..48db02aaf 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -7,28 +7,28 @@ msgid "" msgstr "" -#: forms.py:35 forms.py:91 forms.py:149 ishtar_menu.py:39 models.py:57 -#: models.py:125 templates/ishtar/sheet_warehouse.html:4 +#: forms.py:35 forms.py:91 forms.py:156 ishtar_menu.py:39 models.py:60 +#: models.py:88 models.py:156 templates/ishtar/sheet_warehouse.html:4 msgid "Warehouse" msgstr "" -#: forms.py:44 forms.py:49 models.py:162 +#: forms.py:44 forms.py:49 models.py:230 msgid "Division" msgstr "" -#: forms.py:51 models.py:88 +#: forms.py:51 models.py:112 msgid "Order" msgstr "" -#: forms.py:62 models.py:50 +#: forms.py:62 models.py:53 msgid "Divisions" msgstr "" -#: forms.py:66 forms.py:95 models.py:42 +#: forms.py:66 forms.py:95 models.py:45 models.py:85 msgid "Name" msgstr "" -#: forms.py:67 forms.py:97 models.py:33 models.py:44 +#: forms.py:67 forms.py:97 models.py:36 models.py:47 msgid "Warehouse type" msgstr "" @@ -36,15 +36,15 @@ msgstr "" msgid "Town" msgstr "" -#: forms.py:79 +#: forms.py:79 views.py:98 msgid "Warehouse search" msgstr "" -#: forms.py:100 models.py:47 +#: forms.py:100 models.py:50 msgid "Person in charge" msgstr "" -#: forms.py:106 forms.py:154 models.py:48 models.py:130 +#: forms.py:106 forms.py:161 models.py:51 models.py:161 msgid "Comment" msgstr "" @@ -72,147 +72,211 @@ msgstr "" msgid "Mobile phone" msgstr "" -#: forms.py:145 models.py:133 models.py:160 +#: forms.py:145 forms.py:146 +msgid "Would you like to delete this warehouse?" +msgstr "" + +#: forms.py:150 models.py:169 models.py:228 #: templates/ishtar/sheet_container.html:4 msgid "Container" msgstr "" -#: forms.py:146 forms.py:181 models.py:103 +#: forms.py:153 forms.py:213 models.py:127 msgid "Ref." msgstr "" -#: forms.py:147 forms.py:180 models.py:106 models.py:128 +#: forms.py:154 forms.py:212 models.py:130 models.py:159 msgid "Container type" msgstr "" -#: forms.py:191 +#: forms.py:187 +msgid "Index" +msgstr "" + +#: forms.py:205 +msgid "This ID already exists for this warehouse." +msgstr "" + +#: forms.py:223 forms.py:229 views.py:127 msgid "Container search" msgstr "" -#: forms.py:193 +#: forms.py:225 forms.py:231 msgid "You should select a container." msgstr "" -#: forms.py:194 +#: forms.py:226 msgid "Add a new container" msgstr "" -#: forms.py:198 ishtar_menu.py:35 views.py:92 +#: forms.py:236 ishtar_menu.py:35 views.py:93 msgid "Packaging" msgstr "" -#: forms.py:204 +#: forms.py:242 msgid "Packager" msgstr "" -#: forms.py:210 +#: forms.py:248 msgid "Date" msgstr "" -#: forms.py:214 +#: forms.py:252 msgid "Packaged finds" msgstr "" -#: forms.py:218 +#: forms.py:256 models.py:162 msgid "Localisation" msgstr "" +#: forms.py:280 forms.py:281 +msgid "Would you like to delete this container?" +msgstr "" + #: ishtar_menu.py:32 msgid "Treatment" msgstr "" -#: ishtar_menu.py:42 +#: ishtar_menu.py:42 ishtar_menu.py:57 +msgid "Search" +msgstr "" + +#: ishtar_menu.py:45 ishtar_menu.py:60 msgid "Creation" msgstr "" -#: ishtar_menu.py:45 +#: ishtar_menu.py:48 ishtar_menu.py:63 msgid "Modification" msgstr "" -#: ishtar_menu.py:48 models.py:166 views.py:117 -msgid "Container localisation" +#: ishtar_menu.py:51 ishtar_menu.py:66 +msgid "Deletion" msgstr "" -#: models.py:34 +#: ishtar_menu.py:55 models.py:170 templates/ishtar/sheet_warehouse.html:17 +msgid "Containers" +msgstr "" + +#: models.py:37 msgid "Warehouse types" msgstr "" -#: models.py:58 +#: models.py:61 msgid "Warehouses" msgstr "" -#: models.py:60 +#: models.py:63 msgid "Can view all Warehouses" msgstr "" -#: models.py:61 +#: models.py:64 msgid "Can view own Warehouse" msgstr "" -#: models.py:62 +#: models.py:65 msgid "Can add own Warehouse" msgstr "" -#: models.py:63 +#: models.py:66 msgid "Can change own Warehouse" msgstr "" -#: models.py:64 +#: models.py:67 msgid "Can delete own Warehouse" msgstr "" -#: models.py:78 +#: models.py:87 +msgid "Description" +msgstr "" + +#: models.py:92 models.py:93 +msgid "Collection" +msgstr "" + +#: models.py:102 msgid "Warehouse division" msgstr "" -#: models.py:79 +#: models.py:103 msgid "Warehouse divisions" msgstr "" -#: models.py:99 +#: models.py:123 msgid "Length (mm)" msgstr "" -#: models.py:100 +#: models.py:124 msgid "Width (mm)" msgstr "" -#: models.py:101 +#: models.py:125 msgid "Height (mm)" msgstr "" -#: models.py:102 +#: models.py:126 msgid "Volume (l)" msgstr "" -#: models.py:107 +#: models.py:131 msgid "Container types" msgstr "" -#: models.py:129 +#: models.py:149 +msgid "Location - index" +msgstr "" + +#: models.py:150 +msgid "Precise localisation" +msgstr "" + +#: models.py:151 +msgid "Type" +msgstr "" + +#: models.py:160 msgid "Container ref." msgstr "" -#: models.py:134 templates/ishtar/sheet_warehouse.html:17 -msgid "Containers" +#: models.py:164 +msgid "Cached location" msgstr "" -#: models.py:163 +#: models.py:231 msgid "Reference" msgstr "" -#: models.py:167 +#: models.py:234 +msgid "Container localisation" +msgstr "" + +#: models.py:235 msgid "Container localisations" msgstr "" -#: views.py:99 +#: views.py:106 msgid "Warehouse creation" msgstr "" -#: views.py:108 +#: views.py:115 msgid "Warehouse modification" msgstr "" +#: views.py:122 +msgid "Warehouse deletion" +msgstr "" + +#: views.py:135 +msgid "Container creation" +msgstr "" + +#: views.py:144 +msgid "Container modification" +msgstr "" + +#: views.py:151 +msgid "Container deletion" +msgstr "" + #: templates/ishtar/sheet_container.html:17 msgid "Content" msgstr "" diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 084950014..df2d73651 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -155,12 +155,12 @@ msgstr "" msgid "Add a new item" msgstr "" -#: forms.py:262 models.py:1366 +#: forms.py:262 models.py:1367 msgid "Template" msgstr "" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1432 models.py:2824 +#: forms_common.py:406 models.py:1433 models.py:2825 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -176,8 +176,8 @@ msgid "" "french town Saint-Denis in the Seine-Saint-Denis department.

        " msgstr "" -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1605 -#: models.py:2451 models.py:2633 models.py:2694 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1606 +#: models.py:2452 models.py:2634 models.py:2695 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" @@ -189,63 +189,63 @@ msgid "" msgstr "" #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1606 models.py:2337 +#: ishtar_menu.py:75 models.py:1607 models.py:2338 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:1033 models.py:1365 -#: models.py:1651 models.py:1870 models.py:2331 models.py:2437 models.py:2810 +#: forms_common.py:376 forms_common.py:446 models.py:1034 models.py:1366 +#: models.py:1652 models.py:1871 models.py:2332 models.py:2438 models.py:2811 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "" -#: forms_common.py:174 models.py:1587 models.py:2001 +#: forms_common.py:174 models.py:1588 models.py:2002 msgid "Organization type" msgstr "" -#: forms_common.py:176 forms_common.py:400 models.py:1427 +#: forms_common.py:176 forms_common.py:400 models.py:1428 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "" -#: forms_common.py:178 forms_common.py:403 models.py:1428 +#: forms_common.py:178 forms_common.py:403 models.py:1429 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "" -#: forms_common.py:180 forms_common.py:404 models.py:1430 +#: forms_common.py:180 forms_common.py:404 models.py:1431 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "" -#: forms_common.py:183 forms_common.py:407 models.py:1433 +#: forms_common.py:183 forms_common.py:407 models.py:1434 msgid "Country" msgstr "" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1460 +#: forms_common.py:448 forms_common.py:572 models.py:1461 msgid "Email" msgstr "" -#: forms_common.py:186 forms_common.py:383 models.py:1445 +#: forms_common.py:186 forms_common.py:383 models.py:1446 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "" -#: forms_common.py:187 forms_common.py:392 models.py:1457 +#: forms_common.py:187 forms_common.py:392 models.py:1458 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2031 -#: models.py:2333 models.py:2745 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2032 +#: models.py:2334 models.py:2746 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -269,7 +269,7 @@ msgstr "" msgid "Organization to merge" msgstr "" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2435 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2436 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "" @@ -287,25 +287,25 @@ msgstr "" msgid "Identity" msgstr "" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:2002 -#: models.py:2429 models.py:2431 models.py:2742 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:2003 +#: models.py:2430 models.py:2432 models.py:2743 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" -#: forms_common.py:372 models.py:2433 +#: forms_common.py:372 models.py:2434 msgid "Salutation" msgstr "" -#: forms_common.py:378 models.py:2439 +#: forms_common.py:378 models.py:2440 msgid "Raw name" msgstr "" -#: forms_common.py:381 models.py:1446 +#: forms_common.py:381 models.py:1447 msgid "Phone description" msgstr "" -#: forms_common.py:384 models.py:1448 models.py:1450 +#: forms_common.py:384 models.py:1449 models.py:1451 msgid "Phone description 2" msgstr "" @@ -313,11 +313,11 @@ msgstr "" msgid "Phone 2" msgstr "" -#: forms_common.py:388 models.py:1454 +#: forms_common.py:388 models.py:1455 msgid "Phone description 3" msgstr "" -#: forms_common.py:390 models.py:1452 +#: forms_common.py:390 models.py:1453 msgid "Phone 3" msgstr "" @@ -325,23 +325,23 @@ msgstr "" msgid "Current organization" msgstr "" -#: forms_common.py:409 models.py:1435 +#: forms_common.py:409 models.py:1436 msgid "Other address: address" msgstr "" -#: forms_common.py:412 models.py:1438 +#: forms_common.py:412 models.py:1439 msgid "Other address: address complement" msgstr "" -#: forms_common.py:414 models.py:1439 +#: forms_common.py:414 models.py:1440 msgid "Other address: postal code" msgstr "" -#: forms_common.py:416 models.py:1441 +#: forms_common.py:416 models.py:1442 msgid "Other address: town" msgstr "" -#: forms_common.py:418 models.py:1443 +#: forms_common.py:418 models.py:1444 msgid "Other address: country" msgstr "" @@ -357,7 +357,7 @@ msgstr "" msgid "Account search" msgstr "" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2385 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2386 msgid "Person type" msgstr "" @@ -365,7 +365,7 @@ msgstr "" msgid "Account" msgstr "" -#: forms_common.py:575 wizards.py:1241 +#: forms_common.py:575 wizards.py:1256 msgid "New password" msgstr "" @@ -389,7 +389,7 @@ msgstr "" msgid "Send the new password by email?" msgstr "" -#: forms_common.py:628 forms_common.py:641 models.py:2825 +#: forms_common.py:628 forms_common.py:641 models.py:2826 msgid "Towns" msgstr "" @@ -405,7 +405,7 @@ msgstr "" msgid "Documentation informations" msgstr "" -#: forms_common.py:775 forms_common.py:823 models.py:2003 models.py:2719 +#: forms_common.py:775 forms_common.py:823 models.py:2004 models.py:2720 msgid "Source type" msgstr "" @@ -417,37 +417,37 @@ msgstr "" msgid "Internal reference" msgstr "" -#: forms_common.py:783 models.py:2756 +#: forms_common.py:783 models.py:2757 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:784 models.py:2758 +#: forms_common.py:784 models.py:2759 msgid "Receipt date" msgstr "" -#: forms_common.py:786 models.py:2160 models.py:2760 +#: forms_common.py:786 models.py:2161 models.py:2761 msgid "Creation date" msgstr "" -#: forms_common.py:789 models.py:2763 +#: forms_common.py:789 models.py:2764 msgid "Receipt date in documentation" msgstr "" -#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:633 -#: models.py:1897 models.py:2443 models.py:2770 +#: forms_common.py:791 forms_common.py:827 models.py:323 models.py:634 +#: models.py:1898 models.py:2444 models.py:2771 msgid "Comment" msgstr "" -#: forms_common.py:793 forms_common.py:826 models.py:1035 models.py:1655 -#: models.py:1829 models.py:1871 models.py:2769 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1036 models.py:1656 +#: models.py:1830 models.py:1872 models.py:2770 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:796 models.py:2771 +#: forms_common.py:796 models.py:2772 msgid "Additional information" msgstr "" -#: forms_common.py:798 forms_common.py:830 models.py:2773 +#: forms_common.py:798 forms_common.py:830 models.py:2774 msgid "Has a duplicate" msgstr "" @@ -462,7 +462,7 @@ msgid "" "p>" msgstr "" -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2699 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2700 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" @@ -475,7 +475,7 @@ msgstr "" msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:856 models.py:2004 models.py:2687 models.py:2696 +#: forms_common.py:856 models.py:2005 models.py:2688 models.py:2697 msgid "Author type" msgstr "" @@ -487,7 +487,7 @@ msgstr "" msgid "There are identical authors." msgstr "" -#: forms_common.py:893 models.py:2700 models.py:2752 +#: forms_common.py:893 models.py:2701 models.py:2753 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -505,7 +505,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1161 views.py:1514 +#: ishtar_menu.py:39 models.py:1162 views.py:1530 msgid "Global variables" msgstr "" @@ -533,15 +533,15 @@ msgstr "" msgid "Manual merge" msgstr "" -#: ishtar_menu.py:109 models.py:2171 +#: ishtar_menu.py:109 models.py:2172 msgid "Imports" msgstr "" -#: ishtar_menu.py:112 views.py:1522 +#: ishtar_menu.py:112 views.py:1538 msgid "New import" msgstr "" -#: ishtar_menu.py:116 views.py:1536 +#: ishtar_menu.py:116 views.py:1552 msgid "Current imports" msgstr "" @@ -561,200 +561,200 @@ msgstr "" msgid "This item already exists." msgstr "" -#: models.py:318 models.py:632 models.py:1400 models.py:1412 models.py:1826 +#: models.py:319 models.py:633 models.py:1401 models.py:1413 models.py:1827 msgid "Label" msgstr "" -#: models.py:320 +#: models.py:321 msgid "Textual ID" msgstr "" -#: models.py:323 models.py:635 models.py:1369 +#: models.py:324 models.py:636 models.py:1370 msgid "Available" msgstr "" -#: models.py:654 models.py:1943 +#: models.py:655 models.py:1944 msgid "Key" msgstr "" -#: models.py:660 +#: models.py:661 msgid "Specific key to an import" msgstr "" -#: models.py:752 +#: models.py:753 msgid "Last editor" msgstr "" -#: models.py:755 +#: models.py:756 msgid "Creator" msgstr "" -#: models.py:897 models.py:2836 +#: models.py:898 models.py:2837 msgid "Order" msgstr "" -#: models.py:898 +#: models.py:899 msgid "Symmetrical" msgstr "" -#: models.py:899 +#: models.py:900 msgid "Tiny label" msgstr "" -#: models.py:913 +#: models.py:914 msgid "Cannot have symmetrical and an inverse_relation" msgstr "" -#: models.py:1027 +#: models.py:1028 msgid "Euro" msgstr "" -#: models.py:1028 +#: models.py:1029 msgid "US dollar" msgstr "" -#: models.py:1034 models.py:1653 +#: models.py:1035 models.py:1654 msgid "Slug" msgstr "" -#: models.py:1036 +#: models.py:1037 msgid "Files module" msgstr "" -#: models.py:1037 +#: models.py:1038 msgid "Context records module" msgstr "" -#: models.py:1039 +#: models.py:1040 msgid "Finds module" msgstr "" -#: models.py:1040 +#: models.py:1041 msgid "Need context records module" msgstr "" -#: models.py:1042 +#: models.py:1043 msgid "Warehouses module" msgstr "" -#: models.py:1043 +#: models.py:1044 msgid "Need finds module" msgstr "" -#: models.py:1045 +#: models.py:1046 msgid "Home page" msgstr "" -#: models.py:1046 +#: models.py:1047 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " "markdown syntax. {random_image} can be used to display a random image." msgstr "" -#: models.py:1050 +#: models.py:1051 msgid "File external id" msgstr "" -#: models.py:1052 +#: models.py:1053 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1057 +#: models.py:1058 msgid "Parcel external id" msgstr "" -#: models.py:1060 +#: models.py:1061 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1065 +#: models.py:1066 msgid "Context record external id" msgstr "" -#: models.py:1067 +#: models.py:1068 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1072 +#: models.py:1073 msgid "Base find external id" msgstr "" -#: models.py:1074 +#: models.py:1075 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1079 +#: models.py:1080 msgid "Find external id" msgstr "" -#: models.py:1081 +#: models.py:1082 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1086 +#: models.py:1087 msgid "Raw name for person" msgstr "" -#: models.py:1088 +#: models.py:1089 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1092 +#: models.py:1093 msgid "Current active" msgstr "" -#: models.py:1093 +#: models.py:1094 msgid "Currency" msgstr "" -#: models.py:1097 +#: models.py:1098 msgid "Ishtar site profile" msgstr "" -#: models.py:1098 +#: models.py:1099 msgid "Ishtar site profiles" msgstr "" -#: models.py:1154 +#: models.py:1155 msgid "Variable name" msgstr "" -#: models.py:1155 +#: models.py:1156 msgid "Description of the variable" msgstr "" -#: models.py:1157 models.py:1944 +#: models.py:1158 models.py:1945 msgid "Value" msgstr "" -#: models.py:1160 +#: models.py:1161 msgid "Global variable" msgstr "" -#: models.py:1270 models.py:1300 +#: models.py:1271 models.py:1301 msgid "Total" msgstr "" -#: models.py:1277 models.py:1401 models.py:1413 +#: models.py:1278 models.py:1402 models.py:1414 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -762,617 +762,617 @@ msgstr "" msgid "Number" msgstr "" -#: models.py:1364 +#: models.py:1365 msgid "Administrative Act" msgstr "" -#: models.py:1368 +#: models.py:1369 msgid "Associated object" msgstr "" -#: models.py:1372 +#: models.py:1373 msgid "Document template" msgstr "" -#: models.py:1373 +#: models.py:1374 msgid "Document templates" msgstr "" -#: models.py:1404 models.py:1414 models.py:2155 +#: models.py:1405 models.py:1415 models.py:2156 msgid "State" msgstr "" -#: models.py:1418 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1419 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "" -#: models.py:1419 +#: models.py:1420 msgid "Departments" msgstr "" -#: models.py:1456 +#: models.py:1457 msgid "Raw phone" msgstr "" -#: models.py:1462 +#: models.py:1463 msgid "Alternative address is prefered" msgstr "" -#: models.py:1501 +#: models.py:1502 msgid "Tel: " msgstr "" -#: models.py:1505 +#: models.py:1506 msgid "Mobile: " msgstr "" -#: models.py:1509 +#: models.py:1510 msgid "Email: " msgstr "" -#: models.py:1514 +#: models.py:1515 msgid "Merge key" msgstr "" -#: models.py:1588 +#: models.py:1589 msgid "Organization types" msgstr "" -#: models.py:1607 views.py:237 +#: models.py:1608 views.py:237 msgid "Operation" msgstr "" -#: models.py:1609 +#: models.py:1610 msgid "Archaeological site" msgstr "" -#: models.py:1610 +#: models.py:1611 msgid "Parcels" msgstr "" -#: models.py:1612 +#: models.py:1613 msgid "Operation source" msgstr "" -#: models.py:1615 views.py:1330 views.py:1380 +#: models.py:1616 views.py:1346 views.py:1396 msgid "Archaeological files" msgstr "" -#: models.py:1617 views.py:1333 views.py:1388 +#: models.py:1618 views.py:1349 views.py:1404 msgid "Context records" msgstr "" -#: models.py:1619 +#: models.py:1620 msgid "Context record relations" msgstr "" -#: models.py:1621 +#: models.py:1622 msgid "Base finds" msgstr "" -#: models.py:1657 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1658 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "" -#: models.py:1659 +#: models.py:1660 msgid "Associated model" msgstr "" -#: models.py:1662 +#: models.py:1663 msgid "Is template" msgstr "" -#: models.py:1663 +#: models.py:1664 msgid "Unicity keys (separator \";\")" msgstr "" -#: models.py:1667 +#: models.py:1668 msgid "Importer - Type" msgstr "" -#: models.py:1668 +#: models.py:1669 msgid "Importer - Types" msgstr "" -#: models.py:1758 +#: models.py:1759 msgid "Importer - Default" msgstr "" -#: models.py:1759 +#: models.py:1760 msgid "Importer - Defaults" msgstr "" -#: models.py:1794 +#: models.py:1795 msgid "Importer - Default value" msgstr "" -#: models.py:1795 +#: models.py:1796 msgid "Importer - Default values" msgstr "" -#: models.py:1828 +#: models.py:1829 msgid "Column number" msgstr "" -#: models.py:1831 +#: models.py:1832 msgid "Required" msgstr "" -#: models.py:1834 +#: models.py:1835 msgid "Importer - Column" msgstr "" -#: models.py:1835 +#: models.py:1836 msgid "Importer - Columns" msgstr "" -#: models.py:1855 +#: models.py:1856 msgid "Field name" msgstr "" -#: models.py:1857 models.py:1891 +#: models.py:1858 models.py:1892 msgid "Force creation of new items" msgstr "" -#: models.py:1859 models.py:1893 +#: models.py:1860 models.py:1894 msgid "Concatenate with existing" msgstr "" -#: models.py:1861 models.py:1895 +#: models.py:1862 models.py:1896 msgid "Concatenate character" msgstr "" -#: models.py:1865 +#: models.py:1866 msgid "Importer - Duplicate field" msgstr "" -#: models.py:1866 +#: models.py:1867 msgid "Importer - Duplicate fields" msgstr "" -#: models.py:1873 +#: models.py:1874 msgid "Regular expression" msgstr "" -#: models.py:1876 +#: models.py:1877 msgid "Importer - Regular expression" msgstr "" -#: models.py:1877 +#: models.py:1878 msgid "Importer - Regular expressions" msgstr "" -#: models.py:1900 +#: models.py:1901 msgid "Importer - Target" msgstr "" -#: models.py:1901 +#: models.py:1902 msgid "Importer - Targets" msgstr "" -#: models.py:1925 views.py:520 +#: models.py:1926 views.py:536 msgid "True" msgstr "" -#: models.py:1926 views.py:522 +#: models.py:1927 views.py:538 msgid "False" msgstr "" -#: models.py:1945 +#: models.py:1946 msgid "Is set" msgstr "" -#: models.py:1952 +#: models.py:1953 msgid "Importer - Target key" msgstr "" -#: models.py:1953 +#: models.py:1954 msgid "Importer - Targets keys" msgstr "" -#: models.py:2005 models.py:2735 models.py:2748 +#: models.py:2006 models.py:2736 models.py:2749 msgid "Format" msgstr "" -#: models.py:2006 models.py:2840 +#: models.py:2007 models.py:2841 msgid "Operation type" msgstr "" -#: models.py:2007 +#: models.py:2008 msgid "Period" msgstr "" -#: models.py:2008 +#: models.py:2009 msgid "Report state" msgstr "" -#: models.py:2009 +#: models.py:2010 msgid "Remain type" msgstr "" -#: models.py:2010 +#: models.py:2011 msgid "Unit" msgstr "" -#: models.py:2011 +#: models.py:2012 msgid "Activity type" msgstr "" -#: models.py:2012 +#: models.py:2013 msgid "Material" msgstr "" -#: models.py:2014 +#: models.py:2015 msgid "Conservatory state" msgstr "" -#: models.py:2015 +#: models.py:2016 msgid "Preservation type" msgstr "" -#: models.py:2016 +#: models.py:2017 msgid "Object type" msgstr "" -#: models.py:2018 +#: models.py:2019 msgid "Identification type" msgstr "" -#: models.py:2020 +#: models.py:2021 msgid "Context record relation type" msgstr "" -#: models.py:2021 models.py:2727 +#: models.py:2022 models.py:2728 msgid "Support type" msgstr "" -#: models.py:2027 +#: models.py:2028 msgid "Integer" msgstr "" -#: models.py:2028 +#: models.py:2029 msgid "Float" msgstr "" -#: models.py:2029 +#: models.py:2030 msgid "String" msgstr "" -#: models.py:2030 templates/sheet_ope.html:86 +#: models.py:2031 templates/sheet_ope.html:86 msgid "Date" msgstr "" -#: models.py:2032 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2033 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "" -#: models.py:2033 +#: models.py:2034 msgid "String to boolean" msgstr "" -#: models.py:2034 +#: models.py:2035 msgctxt "filesystem" msgid "File" msgstr "" -#: models.py:2035 +#: models.py:2036 msgid "Unknow type" msgstr "" -#: models.py:2051 +#: models.py:2052 msgid "4 digit year. e.g.: \"2015\"" msgstr "" -#: models.py:2052 +#: models.py:2053 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "" -#: models.py:2053 +#: models.py:2054 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "" -#: models.py:2063 +#: models.py:2064 msgid "Options" msgstr "" -#: models.py:2065 +#: models.py:2066 msgid "Split character(s)" msgstr "" -#: models.py:2069 +#: models.py:2070 msgid "Importer - Formater type" msgstr "" -#: models.py:2070 +#: models.py:2071 msgid "Importer - Formater types" msgstr "" -#: models.py:2119 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2120 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "" -#: models.py:2120 +#: models.py:2121 msgid "Analyse in progress" msgstr "" -#: models.py:2121 +#: models.py:2122 msgid "Analysed" msgstr "" -#: models.py:2122 +#: models.py:2123 msgid "Import pending" msgstr "" -#: models.py:2123 +#: models.py:2124 msgid "Import in progress" msgstr "" -#: models.py:2124 +#: models.py:2125 msgid "Finished with errors" msgstr "" -#: models.py:2125 +#: models.py:2126 msgid "Finished" msgstr "" -#: models.py:2126 +#: models.py:2127 msgid "Archived" msgstr "" -#: models.py:2138 +#: models.py:2139 msgid "Imported file" msgstr "" -#: models.py:2141 +#: models.py:2142 msgid "Associated images (zip file)" msgstr "" -#: models.py:2143 +#: models.py:2144 msgid "Encoding" msgstr "" -#: models.py:2145 +#: models.py:2146 msgid "Skip lines" msgstr "" -#: models.py:2146 templates/ishtar/import_list.html:47 +#: models.py:2147 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "" -#: models.py:2149 +#: models.py:2150 msgid "Result file" msgstr "" -#: models.py:2152 templates/ishtar/import_list.html:53 +#: models.py:2153 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "" -#: models.py:2158 +#: models.py:2159 msgid "Conservative import" msgstr "" -#: models.py:2163 +#: models.py:2164 msgid "End date" msgstr "" -#: models.py:2165 +#: models.py:2166 msgid "Remaining seconds" msgstr "" -#: models.py:2170 +#: models.py:2171 msgid "Import" msgstr "" -#: models.py:2187 +#: models.py:2188 msgid "Analyse" msgstr "" -#: models.py:2189 models.py:2192 +#: models.py:2190 models.py:2193 msgid "Re-analyse" msgstr "" -#: models.py:2190 +#: models.py:2191 msgid "Launch import" msgstr "" -#: models.py:2193 +#: models.py:2194 msgid "Re-import" msgstr "" -#: models.py:2194 +#: models.py:2195 msgid "Archive" msgstr "" -#: models.py:2196 +#: models.py:2197 msgid "Unarchive" msgstr "" -#: models.py:2197 widgets.py:129 templates/ishtar/form_delete.html:11 +#: models.py:2198 widgets.py:129 templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "" -#: models.py:2338 +#: models.py:2339 msgid "Organizations" msgstr "" -#: models.py:2340 +#: models.py:2341 msgid "Can view all Organizations" msgstr "" -#: models.py:2341 +#: models.py:2342 msgid "Can view own Organization" msgstr "" -#: models.py:2342 +#: models.py:2343 msgid "Can add own Organization" msgstr "" -#: models.py:2344 +#: models.py:2345 msgid "Can change own Organization" msgstr "" -#: models.py:2346 +#: models.py:2347 msgid "Can delete own Organization" msgstr "" -#: models.py:2381 +#: models.py:2382 msgid "Groups" msgstr "" -#: models.py:2386 +#: models.py:2387 msgid "Person types" msgstr "" -#: models.py:2397 +#: models.py:2398 msgid "Title type" msgstr "" -#: models.py:2398 +#: models.py:2399 msgid "Title types" msgstr "" -#: models.py:2407 +#: models.py:2408 msgid "Mr" msgstr "" -#: models.py:2408 +#: models.py:2409 msgid "Miss" msgstr "" -#: models.py:2409 +#: models.py:2410 msgid "Mr and Mrs" msgstr "" -#: models.py:2410 +#: models.py:2411 msgid "Mrs" msgstr "" -#: models.py:2411 +#: models.py:2412 msgid "Doctor" msgstr "" -#: models.py:2441 +#: models.py:2442 msgid "Contact type" msgstr "" -#: models.py:2444 models.py:2508 +#: models.py:2445 models.py:2509 msgid "Types" msgstr "" -#: models.py:2447 +#: models.py:2448 msgid "Is attached to" msgstr "" -#: models.py:2452 +#: models.py:2453 msgid "Persons" msgstr "" -#: models.py:2454 +#: models.py:2455 msgid "Can view all Persons" msgstr "" -#: models.py:2455 +#: models.py:2456 msgid "Can view own Person" msgstr "" -#: models.py:2456 +#: models.py:2457 msgid "Can add own Person" msgstr "" -#: models.py:2457 +#: models.py:2458 msgid "Can change own Person" msgstr "" -#: models.py:2458 +#: models.py:2459 msgid "Can delete own Person" msgstr "" -#: models.py:2636 +#: models.py:2637 msgid "Advanced shortcut menu" msgstr "" -#: models.py:2639 +#: models.py:2640 msgid "Ishtar user" msgstr "" -#: models.py:2640 +#: models.py:2641 msgid "Ishtar users" msgstr "" -#: models.py:2682 +#: models.py:2683 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2688 +#: models.py:2689 msgid "Author types" msgstr "" -#: models.py:2720 +#: models.py:2721 msgid "Source types" msgstr "" -#: models.py:2728 +#: models.py:2729 msgid "Support types" msgstr "" -#: models.py:2736 +#: models.py:2737 msgid "Formats" msgstr "" -#: models.py:2743 +#: models.py:2744 msgid "External ID" msgstr "" -#: models.py:2746 +#: models.py:2747 msgid "Support" msgstr "" -#: models.py:2750 +#: models.py:2751 msgid "Scale" msgstr "" -#: models.py:2764 +#: models.py:2765 msgid "Item number" msgstr "" -#: models.py:2765 +#: models.py:2766 msgid "Ref." msgstr "" -#: models.py:2768 +#: models.py:2769 msgid "Internal ref." msgstr "" -#: models.py:2811 +#: models.py:2812 msgid "Surface (m2)" msgstr "" -#: models.py:2812 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2813 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2837 +#: models.py:2838 msgid "Is preventive" msgstr "" -#: models.py:2841 +#: models.py:2842 msgid "Operation types" msgstr "" -#: models.py:2870 +#: models.py:2871 msgid "Preventive" msgstr "" -#: models.py:2871 +#: models.py:2872 msgid "Research" msgstr "" -#: utils.py:74 +#: utils.py:81 msgid " (...)" msgstr "" -#: utils.py:107 +#: utils.py:114 msgid "Load another random image?" msgstr "" @@ -1420,48 +1420,56 @@ msgstr "" msgid "Find" msgstr "" -#: views.py:1269 views.py:1312 +#: views.py:243 +msgid "Treatment file" +msgstr "" + +#: views.py:244 +msgid "Treatment" +msgstr "" + +#: views.py:1285 views.py:1328 msgid "Operation not permitted." msgstr "" -#: views.py:1271 +#: views.py:1287 #, python-format msgid "New %s" msgstr "" -#: views.py:1331 views.py:1384 +#: views.py:1347 views.py:1400 msgid "Operations" msgstr "" -#: views.py:1335 views.py:1391 +#: views.py:1351 views.py:1407 msgid "Finds" msgstr "" -#: views.py:1583 templates/ishtar/import_list.html:43 +#: views.py:1599 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "" -#: views.py:1598 +#: views.py:1614 msgid "Delete import" msgstr "" -#: views.py:1637 +#: views.py:1653 msgid "Merge persons" msgstr "" -#: views.py:1661 +#: views.py:1677 msgid "Select the main person" msgstr "" -#: views.py:1670 +#: views.py:1686 msgid "Merge organization" msgstr "" -#: views.py:1680 +#: views.py:1696 msgid "Select the main organization" msgstr "" -#: views.py:1720 views.py:1736 +#: views.py:1736 views.py:1752 msgid "Corporation manager" msgstr "" @@ -1469,27 +1477,27 @@ msgstr "" msgid "Search..." msgstr "" -#: widgets.py:671 templatetags/window_tables.py:88 +#: widgets.py:670 templatetags/window_tables.py:91 msgid "No results" msgstr "" -#: widgets.py:672 templatetags/window_tables.py:89 +#: widgets.py:671 templatetags/window_tables.py:92 msgid "Loading..." msgstr "" -#: widgets.py:673 +#: widgets.py:672 msgid "Remove" msgstr "" -#: wizards.py:335 templates/ishtar/import_delete.html:20 +#: wizards.py:342 templates/ishtar/import_delete.html:20 msgid "Yes" msgstr "" -#: wizards.py:337 +#: wizards.py:344 msgid "No" msgstr "" -#: wizards.py:1298 +#: wizards.py:1313 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" diff --git a/translations/de/ishtar_common.po b/translations/de/ishtar_common.po index 667f89a60..8b4070050 100644 --- a/translations/de/ishtar_common.po +++ b/translations/de/ishtar_common.po @@ -158,12 +158,12 @@ msgstr "" msgid "Add a new item" msgstr "" -#: forms.py:262 models.py:1366 +#: forms.py:262 models.py:1367 msgid "Template" msgstr "" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1432 models.py:2824 +#: forms_common.py:406 models.py:1433 models.py:2825 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -179,8 +179,8 @@ msgid "" "french town Saint-Denis in the Seine-Saint-Denis department.

        " msgstr "" -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1605 -#: models.py:2451 models.py:2633 models.py:2694 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1606 +#: models.py:2452 models.py:2634 models.py:2695 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" @@ -192,63 +192,63 @@ msgid "" msgstr "" #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1606 models.py:2337 +#: ishtar_menu.py:75 models.py:1607 models.py:2338 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:1033 models.py:1365 -#: models.py:1651 models.py:1870 models.py:2331 models.py:2437 models.py:2810 +#: forms_common.py:376 forms_common.py:446 models.py:1034 models.py:1366 +#: models.py:1652 models.py:1871 models.py:2332 models.py:2438 models.py:2811 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "" -#: forms_common.py:174 models.py:1587 models.py:2001 +#: forms_common.py:174 models.py:1588 models.py:2002 msgid "Organization type" msgstr "" -#: forms_common.py:176 forms_common.py:400 models.py:1427 +#: forms_common.py:176 forms_common.py:400 models.py:1428 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "" -#: forms_common.py:178 forms_common.py:403 models.py:1428 +#: forms_common.py:178 forms_common.py:403 models.py:1429 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "" -#: forms_common.py:180 forms_common.py:404 models.py:1430 +#: forms_common.py:180 forms_common.py:404 models.py:1431 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "" -#: forms_common.py:183 forms_common.py:407 models.py:1433 +#: forms_common.py:183 forms_common.py:407 models.py:1434 msgid "Country" msgstr "" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1460 +#: forms_common.py:448 forms_common.py:572 models.py:1461 msgid "Email" msgstr "" -#: forms_common.py:186 forms_common.py:383 models.py:1445 +#: forms_common.py:186 forms_common.py:383 models.py:1446 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "" -#: forms_common.py:187 forms_common.py:392 models.py:1457 +#: forms_common.py:187 forms_common.py:392 models.py:1458 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2031 -#: models.py:2333 models.py:2745 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2032 +#: models.py:2334 models.py:2746 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -272,7 +272,7 @@ msgstr "" msgid "Organization to merge" msgstr "" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2435 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2436 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "" @@ -290,25 +290,25 @@ msgstr "" msgid "Identity" msgstr "" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:2002 -#: models.py:2429 models.py:2431 models.py:2742 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:2003 +#: models.py:2430 models.py:2432 models.py:2743 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" -#: forms_common.py:372 models.py:2433 +#: forms_common.py:372 models.py:2434 msgid "Salutation" msgstr "" -#: forms_common.py:378 models.py:2439 +#: forms_common.py:378 models.py:2440 msgid "Raw name" msgstr "" -#: forms_common.py:381 models.py:1446 +#: forms_common.py:381 models.py:1447 msgid "Phone description" msgstr "" -#: forms_common.py:384 models.py:1448 models.py:1450 +#: forms_common.py:384 models.py:1449 models.py:1451 msgid "Phone description 2" msgstr "" @@ -316,11 +316,11 @@ msgstr "" msgid "Phone 2" msgstr "" -#: forms_common.py:388 models.py:1454 +#: forms_common.py:388 models.py:1455 msgid "Phone description 3" msgstr "" -#: forms_common.py:390 models.py:1452 +#: forms_common.py:390 models.py:1453 msgid "Phone 3" msgstr "" @@ -328,23 +328,23 @@ msgstr "" msgid "Current organization" msgstr "" -#: forms_common.py:409 models.py:1435 +#: forms_common.py:409 models.py:1436 msgid "Other address: address" msgstr "" -#: forms_common.py:412 models.py:1438 +#: forms_common.py:412 models.py:1439 msgid "Other address: address complement" msgstr "" -#: forms_common.py:414 models.py:1439 +#: forms_common.py:414 models.py:1440 msgid "Other address: postal code" msgstr "" -#: forms_common.py:416 models.py:1441 +#: forms_common.py:416 models.py:1442 msgid "Other address: town" msgstr "" -#: forms_common.py:418 models.py:1443 +#: forms_common.py:418 models.py:1444 msgid "Other address: country" msgstr "" @@ -360,7 +360,7 @@ msgstr "" msgid "Account search" msgstr "" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2385 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2386 msgid "Person type" msgstr "" @@ -368,7 +368,7 @@ msgstr "" msgid "Account" msgstr "" -#: forms_common.py:575 wizards.py:1241 +#: forms_common.py:575 wizards.py:1256 msgid "New password" msgstr "" @@ -392,7 +392,7 @@ msgstr "" msgid "Send the new password by email?" msgstr "" -#: forms_common.py:628 forms_common.py:641 models.py:2825 +#: forms_common.py:628 forms_common.py:641 models.py:2826 msgid "Towns" msgstr "" @@ -408,7 +408,7 @@ msgstr "" msgid "Documentation informations" msgstr "" -#: forms_common.py:775 forms_common.py:823 models.py:2003 models.py:2719 +#: forms_common.py:775 forms_common.py:823 models.py:2004 models.py:2720 msgid "Source type" msgstr "" @@ -420,37 +420,37 @@ msgstr "" msgid "Internal reference" msgstr "" -#: forms_common.py:783 models.py:2756 +#: forms_common.py:783 models.py:2757 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:784 models.py:2758 +#: forms_common.py:784 models.py:2759 msgid "Receipt date" msgstr "" -#: forms_common.py:786 models.py:2160 models.py:2760 +#: forms_common.py:786 models.py:2161 models.py:2761 msgid "Creation date" msgstr "" -#: forms_common.py:789 models.py:2763 +#: forms_common.py:789 models.py:2764 msgid "Receipt date in documentation" msgstr "" -#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:633 -#: models.py:1897 models.py:2443 models.py:2770 +#: forms_common.py:791 forms_common.py:827 models.py:323 models.py:634 +#: models.py:1898 models.py:2444 models.py:2771 msgid "Comment" msgstr "" -#: forms_common.py:793 forms_common.py:826 models.py:1035 models.py:1655 -#: models.py:1829 models.py:1871 models.py:2769 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1036 models.py:1656 +#: models.py:1830 models.py:1872 models.py:2770 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:796 models.py:2771 +#: forms_common.py:796 models.py:2772 msgid "Additional information" msgstr "" -#: forms_common.py:798 forms_common.py:830 models.py:2773 +#: forms_common.py:798 forms_common.py:830 models.py:2774 msgid "Has a duplicate" msgstr "" @@ -465,7 +465,7 @@ msgid "" "p>" msgstr "" -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2699 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2700 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" @@ -478,7 +478,7 @@ msgstr "" msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:856 models.py:2004 models.py:2687 models.py:2696 +#: forms_common.py:856 models.py:2005 models.py:2688 models.py:2697 msgid "Author type" msgstr "" @@ -490,7 +490,7 @@ msgstr "" msgid "There are identical authors." msgstr "" -#: forms_common.py:893 models.py:2700 models.py:2752 +#: forms_common.py:893 models.py:2701 models.py:2753 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -508,7 +508,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1161 views.py:1514 +#: ishtar_menu.py:39 models.py:1162 views.py:1530 msgid "Global variables" msgstr "" @@ -536,15 +536,15 @@ msgstr "" msgid "Manual merge" msgstr "" -#: ishtar_menu.py:109 models.py:2171 +#: ishtar_menu.py:109 models.py:2172 msgid "Imports" msgstr "" -#: ishtar_menu.py:112 views.py:1522 +#: ishtar_menu.py:112 views.py:1538 msgid "New import" msgstr "" -#: ishtar_menu.py:116 views.py:1536 +#: ishtar_menu.py:116 views.py:1552 msgid "Current imports" msgstr "" @@ -564,200 +564,200 @@ msgstr "" msgid "This item already exists." msgstr "" -#: models.py:318 models.py:632 models.py:1400 models.py:1412 models.py:1826 +#: models.py:319 models.py:633 models.py:1401 models.py:1413 models.py:1827 msgid "Label" msgstr "" -#: models.py:320 +#: models.py:321 msgid "Textual ID" msgstr "" -#: models.py:323 models.py:635 models.py:1369 +#: models.py:324 models.py:636 models.py:1370 msgid "Available" msgstr "" -#: models.py:654 models.py:1943 +#: models.py:655 models.py:1944 msgid "Key" msgstr "" -#: models.py:660 +#: models.py:661 msgid "Specific key to an import" msgstr "" -#: models.py:752 +#: models.py:753 msgid "Last editor" msgstr "" -#: models.py:755 +#: models.py:756 msgid "Creator" msgstr "" -#: models.py:897 models.py:2836 +#: models.py:898 models.py:2837 msgid "Order" msgstr "" -#: models.py:898 +#: models.py:899 msgid "Symmetrical" msgstr "" -#: models.py:899 +#: models.py:900 msgid "Tiny label" msgstr "" -#: models.py:913 +#: models.py:914 msgid "Cannot have symmetrical and an inverse_relation" msgstr "" -#: models.py:1027 +#: models.py:1028 msgid "Euro" msgstr "" -#: models.py:1028 +#: models.py:1029 msgid "US dollar" msgstr "" -#: models.py:1034 models.py:1653 +#: models.py:1035 models.py:1654 msgid "Slug" msgstr "" -#: models.py:1036 +#: models.py:1037 msgid "Files module" msgstr "" -#: models.py:1037 +#: models.py:1038 msgid "Context records module" msgstr "" -#: models.py:1039 +#: models.py:1040 msgid "Finds module" msgstr "" -#: models.py:1040 +#: models.py:1041 msgid "Need context records module" msgstr "" -#: models.py:1042 +#: models.py:1043 msgid "Warehouses module" msgstr "" -#: models.py:1043 +#: models.py:1044 msgid "Need finds module" msgstr "" -#: models.py:1045 +#: models.py:1046 msgid "Home page" msgstr "" -#: models.py:1046 +#: models.py:1047 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " "markdown syntax. {random_image} can be used to display a random image." msgstr "" -#: models.py:1050 +#: models.py:1051 msgid "File external id" msgstr "" -#: models.py:1052 +#: models.py:1053 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1057 +#: models.py:1058 msgid "Parcel external id" msgstr "" -#: models.py:1060 +#: models.py:1061 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1065 +#: models.py:1066 msgid "Context record external id" msgstr "" -#: models.py:1067 +#: models.py:1068 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1072 +#: models.py:1073 msgid "Base find external id" msgstr "" -#: models.py:1074 +#: models.py:1075 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:1079 +#: models.py:1080 msgid "Find external id" msgstr "" -#: models.py:1081 +#: models.py:1082 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1086 +#: models.py:1087 msgid "Raw name for person" msgstr "" -#: models.py:1088 +#: models.py:1089 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:1092 +#: models.py:1093 msgid "Current active" msgstr "" -#: models.py:1093 +#: models.py:1094 msgid "Currency" msgstr "" -#: models.py:1097 +#: models.py:1098 msgid "Ishtar site profile" msgstr "" -#: models.py:1098 +#: models.py:1099 msgid "Ishtar site profiles" msgstr "" -#: models.py:1154 +#: models.py:1155 msgid "Variable name" msgstr "" -#: models.py:1155 +#: models.py:1156 msgid "Description of the variable" msgstr "" -#: models.py:1157 models.py:1944 +#: models.py:1158 models.py:1945 msgid "Value" msgstr "" -#: models.py:1160 +#: models.py:1161 msgid "Global variable" msgstr "" -#: models.py:1270 models.py:1300 +#: models.py:1271 models.py:1301 msgid "Total" msgstr "" -#: models.py:1277 models.py:1401 models.py:1413 +#: models.py:1278 models.py:1402 models.py:1414 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -765,617 +765,617 @@ msgstr "" msgid "Number" msgstr "" -#: models.py:1364 +#: models.py:1365 msgid "Administrative Act" msgstr "" -#: models.py:1368 +#: models.py:1369 msgid "Associated object" msgstr "" -#: models.py:1372 +#: models.py:1373 msgid "Document template" msgstr "" -#: models.py:1373 +#: models.py:1374 msgid "Document templates" msgstr "" -#: models.py:1404 models.py:1414 models.py:2155 +#: models.py:1405 models.py:1415 models.py:2156 msgid "State" msgstr "" -#: models.py:1418 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1419 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "" -#: models.py:1419 +#: models.py:1420 msgid "Departments" msgstr "" -#: models.py:1456 +#: models.py:1457 msgid "Raw phone" msgstr "" -#: models.py:1462 +#: models.py:1463 msgid "Alternative address is prefered" msgstr "" -#: models.py:1501 +#: models.py:1502 msgid "Tel: " msgstr "" -#: models.py:1505 +#: models.py:1506 msgid "Mobile: " msgstr "" -#: models.py:1509 +#: models.py:1510 msgid "Email: " msgstr "" -#: models.py:1514 +#: models.py:1515 msgid "Merge key" msgstr "" -#: models.py:1588 +#: models.py:1589 msgid "Organization types" msgstr "" -#: models.py:1607 views.py:237 +#: models.py:1608 views.py:237 msgid "Operation" msgstr "" -#: models.py:1609 +#: models.py:1610 msgid "Archaeological site" msgstr "" -#: models.py:1610 +#: models.py:1611 msgid "Parcels" msgstr "" -#: models.py:1612 +#: models.py:1613 msgid "Operation source" msgstr "" -#: models.py:1615 views.py:1330 views.py:1380 +#: models.py:1616 views.py:1346 views.py:1396 msgid "Archaeological files" msgstr "" -#: models.py:1617 views.py:1333 views.py:1388 +#: models.py:1618 views.py:1349 views.py:1404 msgid "Context records" msgstr "" -#: models.py:1619 +#: models.py:1620 msgid "Context record relations" msgstr "" -#: models.py:1621 +#: models.py:1622 msgid "Base finds" msgstr "" -#: models.py:1657 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1658 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "" -#: models.py:1659 +#: models.py:1660 msgid "Associated model" msgstr "" -#: models.py:1662 +#: models.py:1663 msgid "Is template" msgstr "" -#: models.py:1663 +#: models.py:1664 msgid "Unicity keys (separator \";\")" msgstr "" -#: models.py:1667 +#: models.py:1668 msgid "Importer - Type" msgstr "" -#: models.py:1668 +#: models.py:1669 msgid "Importer - Types" msgstr "" -#: models.py:1758 +#: models.py:1759 msgid "Importer - Default" msgstr "" -#: models.py:1759 +#: models.py:1760 msgid "Importer - Defaults" msgstr "" -#: models.py:1794 +#: models.py:1795 msgid "Importer - Default value" msgstr "" -#: models.py:1795 +#: models.py:1796 msgid "Importer - Default values" msgstr "" -#: models.py:1828 +#: models.py:1829 msgid "Column number" msgstr "" -#: models.py:1831 +#: models.py:1832 msgid "Required" msgstr "" -#: models.py:1834 +#: models.py:1835 msgid "Importer - Column" msgstr "" -#: models.py:1835 +#: models.py:1836 msgid "Importer - Columns" msgstr "" -#: models.py:1855 +#: models.py:1856 msgid "Field name" msgstr "" -#: models.py:1857 models.py:1891 +#: models.py:1858 models.py:1892 msgid "Force creation of new items" msgstr "" -#: models.py:1859 models.py:1893 +#: models.py:1860 models.py:1894 msgid "Concatenate with existing" msgstr "" -#: models.py:1861 models.py:1895 +#: models.py:1862 models.py:1896 msgid "Concatenate character" msgstr "" -#: models.py:1865 +#: models.py:1866 msgid "Importer - Duplicate field" msgstr "" -#: models.py:1866 +#: models.py:1867 msgid "Importer - Duplicate fields" msgstr "" -#: models.py:1873 +#: models.py:1874 msgid "Regular expression" msgstr "" -#: models.py:1876 +#: models.py:1877 msgid "Importer - Regular expression" msgstr "" -#: models.py:1877 +#: models.py:1878 msgid "Importer - Regular expressions" msgstr "" -#: models.py:1900 +#: models.py:1901 msgid "Importer - Target" msgstr "" -#: models.py:1901 +#: models.py:1902 msgid "Importer - Targets" msgstr "" -#: models.py:1925 views.py:520 +#: models.py:1926 views.py:536 msgid "True" msgstr "" -#: models.py:1926 views.py:522 +#: models.py:1927 views.py:538 msgid "False" msgstr "" -#: models.py:1945 +#: models.py:1946 msgid "Is set" msgstr "" -#: models.py:1952 +#: models.py:1953 msgid "Importer - Target key" msgstr "" -#: models.py:1953 +#: models.py:1954 msgid "Importer - Targets keys" msgstr "" -#: models.py:2005 models.py:2735 models.py:2748 +#: models.py:2006 models.py:2736 models.py:2749 msgid "Format" msgstr "" -#: models.py:2006 models.py:2840 +#: models.py:2007 models.py:2841 msgid "Operation type" msgstr "" -#: models.py:2007 +#: models.py:2008 msgid "Period" msgstr "" -#: models.py:2008 +#: models.py:2009 msgid "Report state" msgstr "" -#: models.py:2009 +#: models.py:2010 msgid "Remain type" msgstr "" -#: models.py:2010 +#: models.py:2011 msgid "Unit" msgstr "" -#: models.py:2011 +#: models.py:2012 msgid "Activity type" msgstr "" -#: models.py:2012 +#: models.py:2013 msgid "Material" msgstr "" -#: models.py:2014 +#: models.py:2015 msgid "Conservatory state" msgstr "" -#: models.py:2015 +#: models.py:2016 msgid "Preservation type" msgstr "" -#: models.py:2016 +#: models.py:2017 msgid "Object type" msgstr "" -#: models.py:2018 +#: models.py:2019 msgid "Identification type" msgstr "" -#: models.py:2020 +#: models.py:2021 msgid "Context record relation type" msgstr "" -#: models.py:2021 models.py:2727 +#: models.py:2022 models.py:2728 msgid "Support type" msgstr "" -#: models.py:2027 +#: models.py:2028 msgid "Integer" msgstr "" -#: models.py:2028 +#: models.py:2029 msgid "Float" msgstr "" -#: models.py:2029 +#: models.py:2030 msgid "String" msgstr "" -#: models.py:2030 templates/sheet_ope.html:86 +#: models.py:2031 templates/sheet_ope.html:86 msgid "Date" msgstr "" -#: models.py:2032 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2033 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "" -#: models.py:2033 +#: models.py:2034 msgid "String to boolean" msgstr "" -#: models.py:2034 +#: models.py:2035 msgctxt "filesystem" msgid "File" msgstr "" -#: models.py:2035 +#: models.py:2036 msgid "Unknow type" msgstr "" -#: models.py:2051 +#: models.py:2052 msgid "4 digit year. e.g.: \"2015\"" msgstr "" -#: models.py:2052 +#: models.py:2053 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "" -#: models.py:2053 +#: models.py:2054 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "" -#: models.py:2063 +#: models.py:2064 msgid "Options" msgstr "" -#: models.py:2065 +#: models.py:2066 msgid "Split character(s)" msgstr "" -#: models.py:2069 +#: models.py:2070 msgid "Importer - Formater type" msgstr "" -#: models.py:2070 +#: models.py:2071 msgid "Importer - Formater types" msgstr "" -#: models.py:2119 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2120 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "" -#: models.py:2120 +#: models.py:2121 msgid "Analyse in progress" msgstr "" -#: models.py:2121 +#: models.py:2122 msgid "Analysed" msgstr "" -#: models.py:2122 +#: models.py:2123 msgid "Import pending" msgstr "" -#: models.py:2123 +#: models.py:2124 msgid "Import in progress" msgstr "" -#: models.py:2124 +#: models.py:2125 msgid "Finished with errors" msgstr "" -#: models.py:2125 +#: models.py:2126 msgid "Finished" msgstr "" -#: models.py:2126 +#: models.py:2127 msgid "Archived" msgstr "" -#: models.py:2138 +#: models.py:2139 msgid "Imported file" msgstr "" -#: models.py:2141 +#: models.py:2142 msgid "Associated images (zip file)" msgstr "" -#: models.py:2143 +#: models.py:2144 msgid "Encoding" msgstr "" -#: models.py:2145 +#: models.py:2146 msgid "Skip lines" msgstr "" -#: models.py:2146 templates/ishtar/import_list.html:47 +#: models.py:2147 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "" -#: models.py:2149 +#: models.py:2150 msgid "Result file" msgstr "" -#: models.py:2152 templates/ishtar/import_list.html:53 +#: models.py:2153 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "" -#: models.py:2158 +#: models.py:2159 msgid "Conservative import" msgstr "" -#: models.py:2163 +#: models.py:2164 msgid "End date" msgstr "" -#: models.py:2165 +#: models.py:2166 msgid "Remaining seconds" msgstr "" -#: models.py:2170 +#: models.py:2171 msgid "Import" msgstr "" -#: models.py:2187 +#: models.py:2188 msgid "Analyse" msgstr "" -#: models.py:2189 models.py:2192 +#: models.py:2190 models.py:2193 msgid "Re-analyse" msgstr "" -#: models.py:2190 +#: models.py:2191 msgid "Launch import" msgstr "" -#: models.py:2193 +#: models.py:2194 msgid "Re-import" msgstr "" -#: models.py:2194 +#: models.py:2195 msgid "Archive" msgstr "" -#: models.py:2196 +#: models.py:2197 msgid "Unarchive" msgstr "" -#: models.py:2197 widgets.py:129 templates/ishtar/form_delete.html:11 +#: models.py:2198 widgets.py:129 templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "" -#: models.py:2338 +#: models.py:2339 msgid "Organizations" msgstr "" -#: models.py:2340 +#: models.py:2341 msgid "Can view all Organizations" msgstr "" -#: models.py:2341 +#: models.py:2342 msgid "Can view own Organization" msgstr "" -#: models.py:2342 +#: models.py:2343 msgid "Can add own Organization" msgstr "" -#: models.py:2344 +#: models.py:2345 msgid "Can change own Organization" msgstr "" -#: models.py:2346 +#: models.py:2347 msgid "Can delete own Organization" msgstr "" -#: models.py:2381 +#: models.py:2382 msgid "Groups" msgstr "" -#: models.py:2386 +#: models.py:2387 msgid "Person types" msgstr "" -#: models.py:2397 +#: models.py:2398 msgid "Title type" msgstr "" -#: models.py:2398 +#: models.py:2399 msgid "Title types" msgstr "" -#: models.py:2407 +#: models.py:2408 msgid "Mr" msgstr "" -#: models.py:2408 +#: models.py:2409 msgid "Miss" msgstr "" -#: models.py:2409 +#: models.py:2410 msgid "Mr and Mrs" msgstr "" -#: models.py:2410 +#: models.py:2411 msgid "Mrs" msgstr "" -#: models.py:2411 +#: models.py:2412 msgid "Doctor" msgstr "" -#: models.py:2441 +#: models.py:2442 msgid "Contact type" msgstr "" -#: models.py:2444 models.py:2508 +#: models.py:2445 models.py:2509 msgid "Types" msgstr "" -#: models.py:2447 +#: models.py:2448 msgid "Is attached to" msgstr "" -#: models.py:2452 +#: models.py:2453 msgid "Persons" msgstr "" -#: models.py:2454 +#: models.py:2455 msgid "Can view all Persons" msgstr "" -#: models.py:2455 +#: models.py:2456 msgid "Can view own Person" msgstr "" -#: models.py:2456 +#: models.py:2457 msgid "Can add own Person" msgstr "" -#: models.py:2457 +#: models.py:2458 msgid "Can change own Person" msgstr "" -#: models.py:2458 +#: models.py:2459 msgid "Can delete own Person" msgstr "" -#: models.py:2636 +#: models.py:2637 msgid "Advanced shortcut menu" msgstr "" -#: models.py:2639 +#: models.py:2640 msgid "Ishtar user" msgstr "" -#: models.py:2640 +#: models.py:2641 msgid "Ishtar users" msgstr "" -#: models.py:2682 +#: models.py:2683 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2688 +#: models.py:2689 msgid "Author types" msgstr "" -#: models.py:2720 +#: models.py:2721 msgid "Source types" msgstr "" -#: models.py:2728 +#: models.py:2729 msgid "Support types" msgstr "" -#: models.py:2736 +#: models.py:2737 msgid "Formats" msgstr "" -#: models.py:2743 +#: models.py:2744 msgid "External ID" msgstr "" -#: models.py:2746 +#: models.py:2747 msgid "Support" msgstr "" -#: models.py:2750 +#: models.py:2751 msgid "Scale" msgstr "" -#: models.py:2764 +#: models.py:2765 msgid "Item number" msgstr "" -#: models.py:2765 +#: models.py:2766 msgid "Ref." msgstr "" -#: models.py:2768 +#: models.py:2769 msgid "Internal ref." msgstr "" -#: models.py:2811 +#: models.py:2812 msgid "Surface (m2)" msgstr "" -#: models.py:2812 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2813 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2837 +#: models.py:2838 msgid "Is preventive" msgstr "" -#: models.py:2841 +#: models.py:2842 msgid "Operation types" msgstr "" -#: models.py:2870 +#: models.py:2871 msgid "Preventive" msgstr "" -#: models.py:2871 +#: models.py:2872 msgid "Research" msgstr "" -#: utils.py:74 +#: utils.py:81 msgid " (...)" msgstr "" -#: utils.py:107 +#: utils.py:114 msgid "Load another random image?" msgstr "" @@ -1423,48 +1423,56 @@ msgstr "" msgid "Find" msgstr "" -#: views.py:1269 views.py:1312 +#: views.py:243 +msgid "Treatment file" +msgstr "" + +#: views.py:244 +msgid "Treatment" +msgstr "" + +#: views.py:1285 views.py:1328 msgid "Operation not permitted." msgstr "" -#: views.py:1271 +#: views.py:1287 #, python-format msgid "New %s" msgstr "" -#: views.py:1331 views.py:1384 +#: views.py:1347 views.py:1400 msgid "Operations" msgstr "" -#: views.py:1335 views.py:1391 +#: views.py:1351 views.py:1407 msgid "Finds" msgstr "" -#: views.py:1583 templates/ishtar/import_list.html:43 +#: views.py:1599 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "" -#: views.py:1598 +#: views.py:1614 msgid "Delete import" msgstr "" -#: views.py:1637 +#: views.py:1653 msgid "Merge persons" msgstr "" -#: views.py:1661 +#: views.py:1677 msgid "Select the main person" msgstr "" -#: views.py:1670 +#: views.py:1686 msgid "Merge organization" msgstr "" -#: views.py:1680 +#: views.py:1696 msgid "Select the main organization" msgstr "" -#: views.py:1720 views.py:1736 +#: views.py:1736 views.py:1752 msgid "Corporation manager" msgstr "" @@ -1472,27 +1480,27 @@ msgstr "" msgid "Search..." msgstr "" -#: widgets.py:671 templatetags/window_tables.py:88 +#: widgets.py:670 templatetags/window_tables.py:91 msgid "No results" msgstr "" -#: widgets.py:672 templatetags/window_tables.py:89 +#: widgets.py:671 templatetags/window_tables.py:92 msgid "Loading..." msgstr "" -#: widgets.py:673 +#: widgets.py:672 msgid "Remove" msgstr "" -#: wizards.py:335 templates/ishtar/import_delete.html:20 +#: wizards.py:342 templates/ishtar/import_delete.html:20 msgid "Yes" msgstr "" -#: wizards.py:337 +#: wizards.py:344 msgid "No" msgstr "" -#: wizards.py:1298 +#: wizards.py:1313 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "" diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 4a9a99f8c..04aea6bec 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -3,23 +3,24 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2015. # Valérie-Emma Leroux , 2016. #zanata +# Étienne Loks , 2017. #zanata msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-11-14 05:46-0500\n" -"Last-Translator: Valérie-Emma Leroux \n" +"PO-Revision-Date: 2017-01-09 01:15-0500\n" +"Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" -#: forms.py:47 forms.py:51 models.py:174 wizards.py:77 +#: forms.py:47 forms.py:51 models.py:175 wizards.py:77 msgid "Operation" msgstr "Opération" -#: forms.py:59 forms.py:137 models.py:176 +#: forms.py:59 forms.py:137 models.py:177 models.py:453 msgid "ID" msgstr "Identifiant" @@ -43,7 +44,7 @@ msgstr "Entité archéologique" msgid "Search within related operations" msgstr "Rechercher parmi les opérations liées" -#: forms.py:77 forms.py:232 models.py:55 +#: forms.py:77 forms.py:233 models.py:55 msgid "Period" msgstr "Période" @@ -59,7 +60,7 @@ msgstr "Parcelle (section/numéro/domaine public)" msgid "Search within relations" msgstr "Rechercher parmi les relations" -#: forms.py:111 forms.py:335 views.py:88 +#: forms.py:111 forms.py:336 views.py:92 msgid "Context record search" msgstr "Rechercher une Unité d'Enregistrement" @@ -71,43 +72,44 @@ msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement." msgid "General" msgstr "Général" -#: forms.py:136 models.py:132 models.py:172 +#: forms.py:136 models.py:132 models.py:173 models.py:455 msgid "Parcel" msgstr "Parcelle" -#: forms.py:139 models.py:177 templates/ishtar/sheet_contextrecord.html:27 +#: forms.py:139 models.py:178 models.py:456 +#: templates/ishtar/sheet_contextrecord.html:27 msgid "Description" msgstr "Description" -#: forms.py:141 models.py:178 +#: forms.py:141 models.py:179 msgid "General comment" msgstr "Commentaire général" -#: forms.py:143 models.py:182 +#: forms.py:143 models.py:183 msgid "Length (m)" msgstr "Taille (m)" -#: forms.py:144 models.py:183 +#: forms.py:144 models.py:184 msgid "Width (m)" msgstr "Largeur (m)" -#: forms.py:145 models.py:184 +#: forms.py:145 models.py:185 msgid "Thickness (m)" msgstr "Épaisseur (m)" -#: forms.py:146 models.py:186 +#: forms.py:146 models.py:187 msgid "Depth (m)" msgstr "Profondeur (m)" -#: forms.py:147 models.py:194 +#: forms.py:147 models.py:195 models.py:454 msgid "Unit" msgstr "Unité" -#: forms.py:148 models.py:196 +#: forms.py:148 models.py:197 msgid "Has furniture?" msgstr "Contient du mobilier ?" -#: forms.py:151 models.py:188 +#: forms.py:151 models.py:189 msgid "Location" msgstr "Lieu" @@ -124,116 +126,116 @@ msgstr "" "

        Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

        " -#: forms.py:221 +#: forms.py:222 msgid "This ID already exists for this operation." msgstr "Cet identifiant existe déjà pour cette opération." -#: forms.py:227 forms.py:254 models.py:66 +#: forms.py:228 forms.py:255 models.py:66 msgid "Dating" msgstr "Datation" -#: forms.py:233 models.py:56 +#: forms.py:234 models.py:56 msgid "Start date" msgstr "Date de début" -#: forms.py:234 models.py:57 models.py:181 +#: forms.py:235 models.py:57 models.py:182 msgid "End date" msgstr "Date de fin" -#: forms.py:235 models.py:60 +#: forms.py:236 models.py:60 msgid "Quality" msgstr "Qualité" -#: forms.py:236 models.py:38 models.py:58 +#: forms.py:237 models.py:38 models.py:58 msgid "Dating type" msgstr "Type de datation" -#: forms.py:263 ishtar_menu.py:29 models.py:468 +#: forms.py:264 ishtar_menu.py:29 models.py:514 msgid "Context record" msgstr "Unité d'Enregistrement" -#: forms.py:284 +#: forms.py:285 msgid "Relations" msgstr "Relations" -#: forms.py:288 forms.py:296 models.py:199 +#: forms.py:289 forms.py:297 models.py:200 #: templates/ishtar/sheet_contextrecord.html:39 msgid "Interpretation" msgstr "Interprétation" -#: forms.py:292 +#: forms.py:293 msgid "Comments on dating" msgstr "Commentaires sur la datation" -#: forms.py:294 models.py:198 +#: forms.py:295 models.py:199 msgid "Filling" msgstr "Remplissage" -#: forms.py:298 models.py:219 +#: forms.py:299 models.py:220 msgid "Activity" msgstr "Activité" -#: forms.py:300 models.py:217 +#: forms.py:301 models.py:218 msgid "Identification" msgstr "Identification" -#: forms.py:302 models.py:202 +#: forms.py:303 models.py:203 msgid "TAQ" msgstr "TAQ" -#: forms.py:303 models.py:206 +#: forms.py:304 models.py:207 msgid "Estimated TAQ" msgstr "TAQ estimé" -#: forms.py:305 models.py:209 +#: forms.py:306 models.py:210 msgid "TPQ" msgstr "TPQ" -#: forms.py:306 models.py:213 +#: forms.py:307 models.py:214 msgid "Estimated TPQ" msgstr "TPQ estimé" -#: forms.py:321 +#: forms.py:322 msgid "Operation search" msgstr "Rechercher une opération" -#: forms.py:323 +#: forms.py:324 msgid "You should select an operation." msgstr "Vous devez sélectionner une Opération." -#: forms.py:328 +#: forms.py:329 msgid "Would you like to delete this context record?" msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?" -#: forms.py:337 +#: forms.py:338 msgid "You should select a context record." msgstr "Vous devez sélectionner une Unité d'Enregistrement." -#: forms.py:342 +#: forms.py:343 msgid "Year of the operation" msgstr "Année de l'opération" -#: forms.py:344 +#: forms.py:345 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:350 +#: forms.py:351 msgid "Town of the operation" msgstr "Commune de l'opération" -#: forms.py:352 +#: forms.py:353 msgid "Period of the context record" msgstr "Période de l'Unité d'Enregistrement" -#: forms.py:354 +#: forms.py:355 msgid "Unit type of the context record" msgstr "Type d'unité de l'Unité d'Enregistrement" -#: forms.py:367 +#: forms.py:368 msgid "Documentation search" msgstr "Rechercher une documentation" -#: forms.py:369 +#: forms.py:370 msgid "You should select a document." msgstr "Vous devez sélectionner un document." @@ -309,47 +311,51 @@ msgstr "Type d'identification" msgid "Identification Types" msgstr "Types d'identification" -#: models.py:160 +#: models.py:133 models.py:457 +msgid "Periods" +msgstr "Périodes" + +#: models.py:161 msgid "Parcel (town)" msgstr "Parcelle (commune)" -#: models.py:161 +#: models.py:162 msgid "Related context records" msgstr "Unités d'Enregistrement liées" -#: models.py:163 +#: models.py:164 msgid "Parcel (external ID)" msgstr "Parcelle (identifiant externe)" -#: models.py:164 +#: models.py:165 msgid "Datings (period)" msgstr "Datations" -#: models.py:165 +#: models.py:166 msgid "Parcel (year)" msgstr "Parcelle (année)" -#: models.py:169 +#: models.py:170 msgid "External ID" msgstr "ID externe" -#: models.py:171 +#: models.py:172 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" -#: models.py:179 +#: models.py:180 msgid "Date d'ouverture" msgstr "Date d'ouverture" -#: models.py:189 +#: models.py:190 msgid "A short description of the location of the context record" msgstr "Une courte description de la localisation de l'Unité d'Enregistrement" -#: models.py:192 +#: models.py:193 msgid "Comment on datings" msgstr "Commentaire sur les datations" -#: models.py:203 +#: models.py:204 msgid "" "\"Terminus Ante Quem\" the context record can't have been created after this " "date" @@ -357,11 +363,11 @@ msgstr "" "« Terminus Ante Quem » l'Unité d'Enregistrement ne peut avoir été créée " "après cette date" -#: models.py:207 +#: models.py:208 msgid "Estimation of a \"Terminus Ante Quem\"" msgstr "Estimation d'un « Terminus Ante Quem »" -#: models.py:210 +#: models.py:211 msgid "" "\"Terminus Post Quem\" the context record can't have been created before " "this date" @@ -369,60 +375,60 @@ msgstr "" "« Terminus Post Quem » l'Unité d'Enregistrement ne peut avoir été créée " "avant cette date" -#: models.py:214 +#: models.py:215 msgid "Estimation of a \"Terminus Post Quem\"" msgstr "Estimation d'un « Terminus Post Quem »" -#: models.py:222 +#: models.py:223 msgid "Point" msgstr "Point" -#: models.py:223 +#: models.py:224 msgid "Polygon" msgstr "Polygone" -#: models.py:224 +#: models.py:225 msgid "Cached name" msgstr "Nom en cache" -#: models.py:228 models.py:229 templates/ishtar/sheet_contextrecord.html:4 +#: models.py:229 models.py:230 templates/ishtar/sheet_contextrecord.html:4 msgid "Context Record" msgstr "Unité d'Enregistrement" -#: models.py:231 +#: models.py:232 msgid "Can view all Context Records" msgstr "Peut voir toutes les Unités d'Enregistrement" -#: models.py:233 +#: models.py:234 msgid "Can view own Context Record" msgstr "Peut voir sa propre Unité d'Enregistrement" -#: models.py:235 +#: models.py:236 msgid "Can add own Context Record" msgstr "Peut ajouter sa propre Unité d'Enregistrement" -#: models.py:237 +#: models.py:238 msgid "Can change own Context Record" msgstr "Peut modifier sa propre Unité d'Enregistrement" -#: models.py:239 +#: models.py:240 msgid "Can delete own Context Record" msgstr "Peut supprimer sa propre Unité d'Enregistrement" -#: models.py:249 +#: models.py:250 msgctxt "short" msgid "Context record" msgstr "UE" -#: models.py:386 +#: models.py:387 msgid "Inverse relation" msgstr "Relation inverse" -#: models.py:390 models.py:414 +#: models.py:391 models.py:414 models.py:452 msgid "Relation type" msgstr "Type de relation" -#: models.py:391 +#: models.py:392 msgid "Relation types" msgstr "Types de relation" @@ -447,10 +453,14 @@ msgid "Periods (left)" msgstr "Périodes (gauche)" #: models.py:415 +msgid "ID (right)" +msgstr "ID (droit)" + +#: models.py:416 msgid "Unit (right)" msgstr "Unité (droite)" -#: models.py:416 models.py:417 +#: models.py:417 msgid "Parcel (right)" msgstr "Parcelle (droite)" @@ -470,39 +480,39 @@ msgstr "Relation entre Unités d'Enregistrement" msgid "Record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:465 +#: models.py:511 msgid "Context record documentation" msgstr "Documentation d'une Unité d'Enregistrement" -#: models.py:466 +#: models.py:512 msgid "Context record documentations" msgstr "Documentations des Unités d'Enregistrement" -#: views.py:98 +#: views.py:102 msgid "New context record" msgstr "Ajouter une Unité d'Enregistrement" -#: views.py:109 +#: views.py:113 msgid "Context record modification" msgstr "Modifier une Unité d'Enregistrement" -#: views.py:123 +#: views.py:127 msgid "Context record deletion" msgstr "Supprimer une Unité d'Enregistrement" -#: views.py:128 +#: views.py:132 msgid "Context record: source search" msgstr "Unité d'Enregistrement : rechercher une documentation associée" -#: views.py:136 +#: views.py:140 msgid "Context record: new source" msgstr "Unité d'Enregistrement : ajouter une documentation associée" -#: views.py:144 +#: views.py:148 msgid "Context record: source modification" msgstr "Unité d'Enregistrement : modifier une documentation associée" -#: views.py:159 +#: views.py:163 msgid "Context record: source deletion" msgstr "Unité d'Enregistrement : supprimer une documentation associée" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 8430c6a35..1b188747d 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2015. # Valérie-Emma Leroux , 2016. #zanata +# Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-12-20 07:14-0500\n" +"PO-Revision-Date: 2017-01-09 04:11-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" @@ -19,23 +20,23 @@ msgstr "" msgid "Context record" msgstr "Unité d'Enregistrement" -#: forms.py:121 ishtar_menu.py:32 models_finds.py:449 models_finds.py:772 -#: models_finds.py:781 models_treatments.py:213 +#: forms.py:121 ishtar_menu.py:32 models_finds.py:466 models_finds.py:791 +#: models_finds.py:800 models_treatments.py:264 #: templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "Mobilier" #: forms.py:132 forms.py:263 forms.py:487 models_finds.py:127 -#: models_finds.py:380 +#: models_finds.py:394 msgid "Free ID" msgstr "ID libre" -#: forms.py:134 models_finds.py:435 +#: forms.py:134 models_finds.py:449 msgid "Previous ID" msgstr "Identifiant précédent" -#: forms.py:135 forms.py:295 forms_treatments.py:130 models_finds.py:131 -#: models_finds.py:381 models_treatments.py:104 +#: forms.py:135 forms.py:295 forms_treatments.py:133 models_finds.py:131 +#: models_finds.py:395 models_treatments.py:123 msgid "Description" msgstr "Description" @@ -43,7 +44,7 @@ msgstr "Description" msgid "Batch/object" msgstr "Lot/objet" -#: forms.py:140 models_finds.py:409 +#: forms.py:140 models_finds.py:423 msgid "Is complete?" msgstr "Est complet ?" @@ -51,15 +52,15 @@ msgstr "Est complet ?" msgid "Material type" msgstr "Type de matériau" -#: forms.py:144 forms.py:289 models_finds.py:62 models_finds.py:385 +#: forms.py:144 forms.py:289 models_finds.py:62 models_finds.py:399 msgid "Conservatory state" msgstr "État sanitaire" -#: forms.py:147 models_finds.py:387 +#: forms.py:147 models_finds.py:401 msgid "Conservatory comment" msgstr "Commentaire relatif à la conservation" -#: forms.py:150 models_finds.py:102 models_finds.py:412 +#: forms.py:150 models_finds.py:102 models_finds.py:426 msgid "Object types" msgstr "Types d'objet" @@ -67,89 +68,89 @@ msgstr "Types d'objet" msgid "Preservation type" msgstr "Type de conservation" -#: forms.py:155 forms.py:291 models_finds.py:414 +#: forms.py:155 forms.py:291 models_finds.py:428 msgid "Integrity / interest" msgstr "Intégrité / intérêt" -#: forms.py:158 forms.py:293 models_finds.py:417 +#: forms.py:158 forms.py:293 models_finds.py:431 msgid "Remarkability" msgstr "Remarquabilité" -#: forms.py:161 models_finds.py:427 +#: forms.py:161 models_finds.py:441 msgid "Point of topographic reference" msgstr "Point de référence topographique" -#: forms.py:164 models_finds.py:421 +#: forms.py:164 models_finds.py:435 msgid "Length (cm)" msgstr "Longueur (cm)" -#: forms.py:165 models_finds.py:422 +#: forms.py:165 models_finds.py:436 msgid "Width (cm)" msgstr "Largeur (cm)" -#: forms.py:166 models_finds.py:423 +#: forms.py:166 models_finds.py:437 msgid "Height (cm)" msgstr "Hauteur (cm)" -#: forms.py:167 models_finds.py:424 +#: forms.py:167 models_finds.py:438 msgid "Diameter (cm)" msgstr "Diamètre (cm)" -#: forms.py:168 models_finds.py:425 +#: forms.py:168 models_finds.py:439 msgid "Thickness (cm)" msgstr "Épaisseur (cm)" -#: forms.py:169 forms.py:492 models_finds.py:392 +#: forms.py:169 forms.py:492 models_finds.py:406 msgid "Volume (l)" msgstr "Volume (l)" -#: forms.py:170 forms.py:493 models_finds.py:393 +#: forms.py:170 forms.py:493 models_finds.py:407 msgid "Weight (g)" msgstr "Poids (g)" -#: forms.py:172 models_finds.py:429 +#: forms.py:172 models_finds.py:443 msgid "Dimensions comment" msgstr "Commentaire concernant les dimensions" -#: forms.py:173 forms.py:494 models_finds.py:396 +#: forms.py:173 forms.py:494 models_finds.py:410 msgid "Find number" msgstr "Mobilier (en nombre)" -#: forms.py:175 models_finds.py:420 +#: forms.py:175 models_finds.py:434 msgid "Minimum number of individuals (MNI)" msgstr "Nombre minimum d'individus (NMI)" -#: forms.py:176 models_finds.py:431 +#: forms.py:176 models_finds.py:445 msgid "Mark" msgstr "Marque" -#: forms.py:177 forms.py:299 models_finds.py:437 +#: forms.py:177 forms.py:299 models_finds.py:451 msgid "Check" msgstr "Vérification" -#: forms.py:179 models_finds.py:439 +#: forms.py:179 models_finds.py:453 msgid "Check date" msgstr "Date de vérification" -#: forms.py:180 forms_treatments.py:128 forms_treatments.py:409 -#: models_finds.py:132 models_finds.py:432 models_treatments.py:103 -#: models_treatments.py:403 +#: forms.py:180 forms_treatments.py:131 forms_treatments.py:418 +#: models_finds.py:132 models_finds.py:446 models_treatments.py:122 +#: models_treatments.py:467 msgid "Comment" msgstr "Commentaires" -#: forms.py:183 models_finds.py:433 +#: forms.py:183 models_finds.py:447 msgid "Comment on dating" msgstr "Commentaire général sur les datations" -#: forms.py:184 models_finds.py:441 +#: forms.py:184 models_finds.py:455 msgid "Estimated value" msgstr "Valeur estimée" -#: forms.py:186 forms_treatments.py:139 +#: forms.py:186 forms_treatments.py:142 msgid "Image" msgstr "Image" -#: forms.py:187 forms_treatments.py:140 +#: forms.py:187 forms_treatments.py:143 #, python-format msgid "" "

        Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

        " -#: forms.py:226 forms.py:257 models_finds.py:404 +#: forms.py:226 forms.py:257 models_finds.py:418 msgid "Dating" msgstr "Datation" @@ -166,15 +167,14 @@ msgstr "Datation" msgid "Period" msgstr "Période" -#: forms.py:232 forms_treatments.py:134 forms_treatments.py:411 -#: models_finds.py:786 models_treatments.py:106 models_treatments.py:224 -#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 +#: forms.py:232 forms_treatments.py:137 forms_treatments.py:420 +#: models_finds.py:805 models_treatments.py:125 models_treatments.py:275 +#: templates/ishtar/sheet_find.html:101 templates/ishtar/sheet_find.html:141 msgid "Start date" msgstr "Date de début" -#: forms.py:234 forms_treatments.py:136 models_finds.py:787 -#: models_treatments.py:107 models_treatments.py:225 -#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 +#: forms.py:234 models_finds.py:806 models_treatments.py:276 +#: templates/ishtar/sheet_find.html:102 templates/ishtar/sheet_find.html:142 msgid "End date" msgstr "Date de fin" @@ -198,9 +198,9 @@ msgstr "ID court" msgid "Complete ID" msgstr "ID complet" -#: forms.py:266 forms_treatments.py:53 forms_treatments.py:94 -#: forms_treatments.py:259 forms_treatments.py:331 forms_treatments.py:381 -#: forms_treatments.py:464 models_treatments.py:83 models_treatments.py:375 +#: forms.py:266 forms_treatments.py:53 forms_treatments.py:95 +#: forms_treatments.py:268 forms_treatments.py:340 forms_treatments.py:390 +#: forms_treatments.py:473 models_treatments.py:98 models_treatments.py:439 msgid "Year" msgstr "Année" @@ -232,11 +232,11 @@ msgstr "Dispose d'une image ?" msgid "Find search" msgstr "Rechercher un mobilier" -#: forms.py:369 templates/ishtar/sheet_treatment.html:36 +#: forms.py:369 templates/ishtar/sheet_treatment.html:42 msgid "Upstream finds" msgstr "Mobilier amont" -#: forms.py:371 models_finds.py:450 +#: forms.py:371 models_finds.py:467 msgid "Finds" msgstr "Mobilier" @@ -260,7 +260,7 @@ msgstr "Mobiliers résultants" msgid "Would you like to delete this find?" msgstr "Voulez-vous supprimer ce mobilier ?" -#: forms.py:513 models_treatments.py:76 +#: forms.py:513 models_treatments.py:90 msgid "Upstream find" msgstr "Mobilier amont" @@ -292,11 +292,11 @@ msgstr "Type de matériau du mobilier" msgid "Description of the archaeological find" msgstr "Description du mobilier" -#: forms.py:558 forms_treatments.py:563 forms_treatments.py:587 +#: forms.py:558 forms_treatments.py:574 forms_treatments.py:600 msgid "Documentation search" msgstr "Rechercher une documentation" -#: forms.py:560 forms_treatments.py:565 forms_treatments.py:589 +#: forms.py:560 forms_treatments.py:576 forms_treatments.py:602 msgid "You should select a document." msgstr "Vous devez sélectionner un document." @@ -304,33 +304,33 @@ msgstr "Vous devez sélectionner un document." msgid "Another basket already exists with this name." msgstr "Un autre panier existant utilise déjà ce nom." -#: forms.py:587 forms.py:591 forms_treatments.py:156 ishtar_menu.py:56 +#: forms.py:587 forms.py:591 forms_treatments.py:159 ishtar_menu.py:56 msgid "Basket" msgstr "Panier" -#: forms_treatments.py:51 forms_treatments.py:90 models_treatments.py:79 -#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:130 +#: forms_treatments.py:51 forms_treatments.py:91 models_treatments.py:94 +#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 msgid "Label" msgstr "Intitulé" -#: forms_treatments.py:52 forms_treatments.py:93 models_treatments.py:81 +#: forms_treatments.py:52 forms_treatments.py:94 models_treatments.py:96 msgid "Other ref." msgstr "Autre réf." -#: forms_treatments.py:54 forms_treatments.py:212 forms_treatments.py:260 -#: forms_treatments.py:323 forms_treatments.py:332 forms_treatments.py:434 -#: forms_treatments.py:465 forms_treatments.py:530 models_treatments.py:85 -#: models_treatments.py:377 +#: forms_treatments.py:54 forms_treatments.py:221 forms_treatments.py:269 +#: forms_treatments.py:332 forms_treatments.py:341 forms_treatments.py:443 +#: forms_treatments.py:474 forms_treatments.py:541 models_treatments.py:100 +#: models_treatments.py:441 msgid "Index" msgstr "Index" -#: forms_treatments.py:55 forms_treatments.py:99 forms_treatments.py:276 -#: forms_treatments.py:551 models_treatments.py:53 models_treatments.py:89 -#: models_treatments.py:223 +#: forms_treatments.py:55 forms_treatments.py:100 forms_treatments.py:285 +#: forms_treatments.py:562 models_treatments.py:56 models_treatments.py:105 +#: models_treatments.py:274 msgid "Treatment type" msgstr "Type de traitement" -#: forms_treatments.py:67 forms_treatments.py:533 views.py:359 +#: forms_treatments.py:67 forms_treatments.py:544 views.py:359 msgid "Treatment search" msgstr "Rechercher un traitement" @@ -338,70 +338,79 @@ msgstr "Rechercher un traitement" msgid "Base treatment" msgstr "Traitement de base" -#: forms_treatments.py:101 +#: forms_treatments.py:102 models_treatments.py:107 +msgid "State" +msgstr "État" + +#: forms_treatments.py:104 msgid "Target" msgstr "Destination" -#: forms_treatments.py:103 forms_treatments.py:392 models_treatments.py:96 +#: forms_treatments.py:106 forms_treatments.py:401 models_treatments.py:115 msgid "Responsible" msgstr "Responsable" -#: forms_treatments.py:109 models_treatments.py:99 +#: forms_treatments.py:112 models_treatments.py:118 msgid "Organization" msgstr "Organisation" -#: forms_treatments.py:115 models_treatments.py:91 models_treatments.py:226 +#: forms_treatments.py:118 models_treatments.py:110 models_treatments.py:277 msgid "Location" msgstr "Lieu" -#: forms_treatments.py:121 +#: forms_treatments.py:124 msgid "Container (relevant for packaging)" -msgstr "Conteneur (pertinent dans le cadre du conditionnement)" +msgstr "Contenant (pertinent dans le cadre du conditionnement)" -#: forms_treatments.py:127 forms_treatments.py:388 +#: forms_treatments.py:130 forms_treatments.py:397 msgid "External ref." msgstr "Réf. externe" -#: forms_treatments.py:132 models_treatments.py:105 +#: forms_treatments.py:135 models_treatments.py:124 msgid "Goal" msgstr "But" -#: forms_treatments.py:156 +#: forms_treatments.py:139 forms_treatments.py:426 models_treatments.py:126 +#: models_treatments.py:461 +msgid "Closing date" +msgstr "Date de clôture" + +#: forms_treatments.py:159 msgid "Single find" msgstr "Mobilier isolé" -#: forms_treatments.py:184 +#: forms_treatments.py:193 msgid "" "The container field is attached to the treatment. If no packaging treatment " "is done it is not relevant." msgstr "" -"Le champ concernant le conteneur est rattaché au traitement. Si aucun " +"Le champ concernant le contenant est rattaché au traitement. Si aucun " "conditionnement n'est réalisé, il n'est pas pertinent." -#: forms_treatments.py:189 +#: forms_treatments.py:198 msgid "If a packaging treatment is done, the container field must be filled." msgstr "" -"Si un conditionnement est fait, le champ du conteneur doit être rempli." +"Si un conditionnement est fait, le champ du contenant doit être rempli." -#: forms_treatments.py:193 +#: forms_treatments.py:202 msgid "A responsible or an organization must be defined." msgstr "Un responsable ou une organisation doit être défini." -#: forms_treatments.py:231 +#: forms_treatments.py:240 msgid "Another treatment with this index exists for {}." msgstr "Un autre traitement avec cet index existe pour {}." -#: forms_treatments.py:237 -msgid "Associated file" -msgstr "Dossier associé" +#: forms_treatments.py:246 models_treatments.py:103 +msgid "Associated request" +msgstr "Demande associée" -#: forms_treatments.py:241 forms_treatments.py:372 ishtar_menu.py:107 -#: models_treatments.py:408 models_treatments.py:473 wizards.py:183 -#: templates/ishtar/sheet_treatmentfile.html:5 -msgid "Treatment file" -msgstr "Dossier de traitement" +#: forms_treatments.py:250 forms_treatments.py:381 ishtar_menu.py:107 +#: models_treatments.py:472 models_treatments.py:494 models_treatments.py:555 +#: wizards.py:183 templates/ishtar/sheet_treatmentfile.html:5 +msgid "Treatment request" +msgstr "Demande de traitement" -#: forms_treatments.py:250 +#: forms_treatments.py:259 msgid "" "Are you sure you want to delete this treatment? All changes made to the " "associated finds since this treatment record will be lost!" @@ -410,121 +419,124 @@ msgstr "" "sur le mobilier associé réalisées depuis l'enregistrement de ce traitement " "seront perdues !" -#: forms_treatments.py:253 +#: forms_treatments.py:262 msgid "Would you like to delete this treatment?" msgstr "Voulez-vous supprimer ce traitement ?" -#: forms_treatments.py:261 forms_treatments.py:309 forms_treatments.py:466 -#: forms_treatments.py:515 +#: forms_treatments.py:270 forms_treatments.py:318 forms_treatments.py:475 +#: forms_treatments.py:526 msgid "Act type" msgstr "Type d'acte" -#: forms_treatments.py:262 forms_treatments.py:467 +#: forms_treatments.py:271 forms_treatments.py:476 msgid "Indexed?" msgstr "Indexé ?" -#: forms_treatments.py:263 forms_treatments.py:468 models_finds.py:120 +#: forms_treatments.py:272 forms_treatments.py:477 models_finds.py:120 msgid "Object" msgstr "Objet" -#: forms_treatments.py:267 forms_treatments.py:472 +#: forms_treatments.py:276 forms_treatments.py:481 msgid "Signature date after" msgstr "Date de signature après" -#: forms_treatments.py:269 forms_treatments.py:474 +#: forms_treatments.py:278 forms_treatments.py:483 msgid "Signature date before" msgstr "Date de signature avant" -#: forms_treatments.py:271 forms_treatments.py:546 +#: forms_treatments.py:280 forms_treatments.py:557 msgid "Treatment name" msgstr "Nom du traitement" -#: forms_treatments.py:272 forms_treatments.py:547 +#: forms_treatments.py:281 forms_treatments.py:558 msgid "Treatment year" msgstr "Année du traitement" -#: forms_treatments.py:273 forms_treatments.py:548 +#: forms_treatments.py:282 forms_treatments.py:559 msgid "Treatment index" msgstr "Index du traitement" -#: forms_treatments.py:275 forms_treatments.py:550 +#: forms_treatments.py:284 forms_treatments.py:561 msgid "Treatment internal reference" msgstr "Référence interne du traitement" -#: forms_treatments.py:279 forms_treatments.py:484 +#: forms_treatments.py:288 forms_treatments.py:495 msgid "Modified by" msgstr "Modifié par" -#: forms_treatments.py:329 forms_treatments.py:379 models_treatments.py:382 +#: forms_treatments.py:338 forms_treatments.py:388 models_treatments.py:446 msgid "Name" msgstr "Nom" -#: forms_treatments.py:330 forms_treatments.py:386 +#: forms_treatments.py:339 forms_treatments.py:395 msgid "Internal ref." msgstr "Réf. interne" -#: forms_treatments.py:333 forms_treatments.py:390 forms_treatments.py:481 -#: forms_treatments.py:575 models_treatments.py:362 models_treatments.py:383 -msgid "Treatment file type" -msgstr "Type de dossier de traitement" +#: forms_treatments.py:342 forms_treatments.py:399 +#: templates/ishtar/sheet_find.html:97 templates/ishtar/sheet_find.html:137 +#: templates/ishtar/sheet_find.html:215 +msgid "Type" +msgstr "Type" -#: forms_treatments.py:335 +#: forms_treatments.py:344 msgid "In charge" msgstr "Responsable" -#: forms_treatments.py:341 forms_treatments.py:398 models_treatments.py:391 +#: forms_treatments.py:350 forms_treatments.py:407 models_treatments.py:455 +#: templates/ishtar/sheet_treatmentfile.html:31 msgid "Applicant" msgstr "Demandeur" -#: forms_treatments.py:347 forms_treatments.py:404 models_treatments.py:395 +#: forms_treatments.py:356 forms_treatments.py:413 models_treatments.py:459 +#: templates/ishtar/sheet_treatmentfile.html:38 msgid "Applicant organisation" msgstr "Organisation du demandeur" -#: forms_treatments.py:360 forms_treatments.py:538 views.py:462 -msgid "Treatment file search" -msgstr "Rechercher un dossier de traitement" +#: forms_treatments.py:369 forms_treatments.py:549 +msgid "Treatment request search" +msgstr "Rechercher une demande de traitement" -#: forms_treatments.py:414 models_treatments.py:401 +#: forms_treatments.py:423 models_treatments.py:465 msgid "Reception date" msgstr "Date de réception" -#: forms_treatments.py:417 models_treatments.py:397 -msgid "Closing date" -msgstr "Date de clôture" - -#: forms_treatments.py:453 +#: forms_treatments.py:462 msgid "Another treatment file with this index exists for {}." msgstr "Un autre dossier de traitement existe déjà avec cet index pour {}." -#: forms_treatments.py:459 +#: forms_treatments.py:468 msgid "Are you sure you want to delete this treatment file?" msgstr "Êtes-vous sûr de vouloir supprimer ce dossier de traitement ? " -#: forms_treatments.py:460 +#: forms_treatments.py:469 msgid "Would you like to delete this treatment file?" msgstr "Voulez-vous supprimer ce dossier de traitement ? " -#: forms_treatments.py:476 forms_treatments.py:570 -msgid "Treatment file name" +#: forms_treatments.py:485 forms_treatments.py:581 +msgid "Treatment request name" msgstr "Nom du dossier de traitement" -#: forms_treatments.py:477 forms_treatments.py:571 -msgid "Treatment file year" +#: forms_treatments.py:487 forms_treatments.py:583 +msgid "Treatment request year" msgstr "Année du dossier de traitement" -#: forms_treatments.py:478 forms_treatments.py:572 -msgid "Treatment file index" -msgstr "Index du dossier de traitement" +#: forms_treatments.py:489 forms_treatments.py:585 +msgid "Treatment request index" +msgstr "Index de la demande de traitement" + +#: forms_treatments.py:491 forms_treatments.py:587 +msgid "Treatment request internal reference" +msgstr "Référence interne de la demande de traitement" -#: forms_treatments.py:480 forms_treatments.py:574 -msgid "Treatment file internal reference" -msgstr "Référence interne du dossier de traitement" +#: forms_treatments.py:492 forms_treatments.py:588 models_treatments.py:424 +msgid "Treatment request type" +msgstr "Type de demande de traitement" -#: forms_treatments.py:535 +#: forms_treatments.py:546 msgid "You should select a treatment." msgstr "Vous devez sélectionner un traitement." -#: forms_treatments.py:541 +#: forms_treatments.py:552 msgid "You should select a treatment file." msgstr "Vous devez sélectionner un dossier de traitement." @@ -558,12 +570,12 @@ msgstr "Gestion des éléments" msgid "Documentation" msgstr "Documentation" -#: ishtar_menu.py:131 ishtar_menu.py:211 models_finds.py:783 +#: ishtar_menu.py:131 ishtar_menu.py:211 models_finds.py:802 msgid "Administrative act" msgstr "Acte administratif" -#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:204 -#: templates/ishtar/sheet_find.html:206 +#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:210 +#: templates/ishtar/sheet_find.html:212 msgid "Documents" msgstr "Documents" @@ -571,8 +583,8 @@ msgstr "Documents" msgid "Source" msgstr "Documentation" -#: ishtar_menu.py:183 models_treatments.py:115 models_treatments.py:215 -#: models_treatments.py:457 templates/ishtar/sheet_treatment.html:5 +#: ishtar_menu.py:183 models_treatments.py:134 models_treatments.py:266 +#: models_treatments.py:539 templates/ishtar/sheet_treatment.html:5 msgid "Treatment" msgstr "Traitement" @@ -592,7 +604,7 @@ msgstr "Recommandation" msgid "Parent material" msgstr "Matériau parent" -#: models_finds.py:51 models_finds.py:383 +#: models_finds.py:51 models_finds.py:397 msgid "Material types" msgstr "Types de matériau" @@ -636,12 +648,12 @@ msgstr "Inconnu" msgid "Batch" msgstr "Lot" -#: models_finds.py:128 models_finds.py:376 models_treatments.py:101 -#: models_treatments.py:380 +#: models_finds.py:128 models_finds.py:390 models_treatments.py:120 +#: models_treatments.py:444 msgid "External ID" msgstr "ID externe" -#: models_finds.py:130 models_finds.py:378 +#: models_finds.py:130 models_finds.py:392 msgid "External ID is set automatically" msgstr "L'identifiant externe est configuré automatiquement" @@ -681,7 +693,7 @@ msgstr "Polygon" msgid "Cached value - do not edit" msgstr "Valeur en cache - ne pas éditer" -#: models_finds.py:159 models_finds.py:374 +#: models_finds.py:159 models_finds.py:388 msgid "Base find" msgstr "Mobilier de base" @@ -729,251 +741,272 @@ msgstr "Vérifié mais incorrect" msgid "Checked and correct" msgstr "Vérifié et correct" -#: models_finds.py:314 +#: models_finds.py:315 msgid "Periods" msgstr "Périodes" -#: models_finds.py:324 +#: models_finds.py:316 models_finds.py:421 models_treatments.py:127 +#: models_treatments.py:278 templates/ishtar/sheet_find.html:100 +#: templates/ishtar/sheet_find.html:140 +msgid "Container" +msgstr "Contenant" + +#: models_finds.py:326 msgid "Base find - Short ID" msgstr "Mobilier de base - ID court" -#: models_finds.py:325 +#: models_finds.py:327 msgid "Base find - Complete ID" msgstr "Mobilier de base - ID complet" -#: models_finds.py:326 +#: models_finds.py:328 msgid "Base find - Comment" msgstr "Mobilier de base - Commentaires" -#: models_finds.py:327 +#: models_finds.py:329 msgid "Base find - Description" msgstr "Mobilier de base - Description" -#: models_finds.py:328 +#: models_finds.py:330 msgid "Base find - Topographic localisation" msgstr "Mobilier de base - Localisation topographique" -#: models_finds.py:330 +#: models_finds.py:332 msgid "Base find - Special interest" msgstr "Mobilier de base - Intérêt spécifique" -#: models_finds.py:331 +#: models_finds.py:333 msgid "Base find - Discovery date" msgstr "Mobilier de base - Date de découverte" -#: models_finds.py:379 models_treatments.py:219 +#: models_finds.py:393 models_treatments.py:40 models_treatments.py:270 msgid "Order" msgstr "Ordre" -#: models_finds.py:390 +#: models_finds.py:404 msgid "Type of preservation to consider" msgstr "Mesures de conservation à envisager" -#: models_finds.py:394 +#: models_finds.py:408 msgid "Weight unit" msgstr "Unité de poids" -#: models_finds.py:400 templates/ishtar/sheet_find.html:83 +#: models_finds.py:414 templates/ishtar/sheet_find.html:89 msgid "Upstream treatment" msgstr "Traitement amont" -#: models_finds.py:403 templates/ishtar/sheet_find.html:123 +#: models_finds.py:417 templates/ishtar/sheet_find.html:129 msgid "Downstream treatment" msgstr "Traitement aval" -#: models_finds.py:407 models_treatments.py:108 models_treatments.py:227 -#: templates/ishtar/sheet_find.html:94 templates/ishtar/sheet_find.html:134 -msgid "Container" -msgstr "Contenant" +#: models_finds.py:458 +msgid "Collection" +msgstr "" -#: models_finds.py:443 models_treatments.py:111 models_treatments.py:404 +#: models_finds.py:460 models_treatments.py:130 models_treatments.py:468 msgid "Cached name" msgstr "Nom en cache" -#: models_finds.py:452 +#: models_finds.py:469 msgid "Can view all Finds" msgstr "Peut voir tout le Mobilier" -#: models_finds.py:453 +#: models_finds.py:470 msgid "Can view own Find" msgstr "Peut voir son propre Mobilier" -#: models_finds.py:454 +#: models_finds.py:471 msgid "Can add own Find" msgstr "Peut ajouter son propre Mobilier" -#: models_finds.py:455 +#: models_finds.py:472 msgid "Can change own Find" msgstr "Peut modifier son propre Mobilier" -#: models_finds.py:456 +#: models_finds.py:473 msgid "Can delete own Find" msgstr "Peut supprimer son propre Mobilier" -#: models_finds.py:462 +#: models_finds.py:479 msgid "FIND" msgstr "MOBILIER" -#: models_finds.py:770 +#: models_finds.py:789 msgid "Find documentation" msgstr "Documentation de mobilier" -#: models_finds.py:771 +#: models_finds.py:790 msgid "Find documentations" msgstr "Documentations de mobilier" -#: models_finds.py:784 +#: models_finds.py:803 msgid "Person" msgstr "Individu" -#: models_finds.py:790 +#: models_finds.py:809 msgid "Property" msgstr "Propriété" -#: models_finds.py:791 +#: models_finds.py:810 msgid "Properties" msgstr "Propriétés" -#: models_treatments.py:40 +#: models_treatments.py:41 +msgid "Parent type" +msgstr "" + +#: models_treatments.py:43 msgid "Virtual" msgstr "Virtuel" -#: models_treatments.py:42 +#: models_treatments.py:45 msgid "Upstream is many" msgstr "Les éléments amont sont multiples" -#: models_treatments.py:44 +#: models_treatments.py:47 msgid "Check this if for this treatment from many finds you'll get one." msgstr "" "Cochez cela si, pour ce traitement, à partir de plusieurs éléments vous en " "obtenez un seul." -#: models_treatments.py:47 +#: models_treatments.py:50 msgid "Downstream is many" msgstr "Les éléments aval sont multiples" -#: models_treatments.py:49 +#: models_treatments.py:52 msgid "Check this if for this treatment from one find you'll get many." msgstr "" "Cochez cela si, pour ce traitement, à partir d'un seul élément vous en " "obtenez plusieurs." -#: models_treatments.py:54 +#: models_treatments.py:57 msgid "Treatment types" msgstr "Types de traitement" -#: models_treatments.py:75 +#: models_treatments.py:65 +msgid "Type of treatment state" +msgstr "Type d'état de traitement" + +#: models_treatments.py:66 +msgid "Type of treatment states" +msgstr "Types d'état de traitement" + +#: models_treatments.py:89 msgid "Downstream find" msgstr "Mobilier aval" -#: models_treatments.py:93 +#: models_treatments.py:112 msgid "Location where the treatment is done. Target warehouse for a move." msgstr "" "Endroit où le traitement est réalisé. Renseignez le dépôt de destination " "pour un déplacement." -#: models_treatments.py:110 +#: models_treatments.py:129 msgid "Target a basket" msgstr "Cibler un panier" -#: models_treatments.py:116 templates/ishtar/sheet_find.html:80 -#: templates/ishtar/sheet_treatmentfile.html:27 +#: models_treatments.py:135 templates/ishtar/sheet_find.html:86 +#: templates/ishtar/sheet_treatmentfile.html:45 msgid "Treatments" msgstr "Traitements" -#: models_treatments.py:119 +#: models_treatments.py:138 msgid "Can view all Treatments" msgstr "Peut voir tous les Traitements" -#: models_treatments.py:120 +#: models_treatments.py:139 msgid "Can view own Treatment" msgstr "Peut voir son propre Traitement" -#: models_treatments.py:121 +#: models_treatments.py:140 msgid "Can add own Treatment" msgstr "Peut ajouter son propre Traitement" -#: models_treatments.py:122 +#: models_treatments.py:141 msgid "Can change own Treatment" msgstr "Peut modifier son propre Traitement" -#: models_treatments.py:123 +#: models_treatments.py:142 msgid "Can delete own Treatment" msgstr "Peut supprimer son propre Traitement" -#: models_treatments.py:129 -msgid "by" -msgstr "par" +#: models_treatments.py:154 +msgid "TREATMENT" +msgstr "TRAITEMENT" -#: models_treatments.py:228 templates/ishtar/sheet_find.html:93 -#: templates/ishtar/sheet_find.html:133 +#: models_treatments.py:279 templates/ishtar/sheet_find.html:99 +#: templates/ishtar/sheet_find.html:139 msgid "Doer" msgstr "Opérateur" -#: models_treatments.py:229 models_treatments.py:230 -#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:132 +#: models_treatments.py:280 models_treatments.py:281 +#: templates/ishtar/sheet_find.html:98 templates/ishtar/sheet_find.html:138 msgid "Related finds" msgstr "Mobilier associé" -#: models_treatments.py:351 +#: models_treatments.py:413 msgid "Is upstream" msgstr "Est en amont" -#: models_treatments.py:363 -msgid "Treatment file types" -msgstr "Types de dossier de traitement" +#: models_treatments.py:425 +msgid "Treatment request types" +msgstr "Types de demande de traitement" -#: models_treatments.py:378 +#: models_treatments.py:442 msgid "Internal reference" msgstr "Référence interne" -#: models_treatments.py:387 +#: models_treatments.py:447 +msgid "Treatment file type" +msgstr "Type de dossier de traitement" + +#: models_treatments.py:451 msgid "Person in charge" msgstr "Personne responsable" -#: models_treatments.py:399 +#: models_treatments.py:463 msgid "Creation date" msgstr "Date de création" -#: models_treatments.py:409 -msgid "Treatment files" -msgstr "Dossiers de traitement" +#: models_treatments.py:473 +msgid "Treatment requests" +msgstr "Demandes de traitement" -#: models_treatments.py:412 -msgid "Can view all Treatment files" -msgstr "Peut voir tous les Dossiers de traitement" +#: models_treatments.py:477 +msgid "Can view all Treatment requests" +msgstr "Peut voir toutes les Demandes de traitement" -#: models_treatments.py:414 -msgid "Can view own Treatment file" -msgstr "Peut voir son propre Dossier de traitement" +#: models_treatments.py:479 +msgid "Can view own Treatment request" +msgstr "Peut voir sa propre Demande de traitement" -#: models_treatments.py:416 -msgid "Can add own Treatment file" -msgstr "Peut ajouter son propre Dossier de traitement" +#: models_treatments.py:481 +msgid "Can add own Treatment request" +msgstr "Peut ajouter sa propre Demande de traitement" -#: models_treatments.py:418 -msgid "Can change own Treatment file" -msgstr "Peut modifier son propre Dossier de traitement" +#: models_treatments.py:483 +msgid "Can change own Treatment request" +msgstr "Peut modifier sa propre Demande de traitement" -#: models_treatments.py:420 -msgid "Can delete own Treatment file" -msgstr "Peut supprimer son propre Dossier de traitement" +#: models_treatments.py:485 +msgid "Can delete own Treatment request" +msgstr "Peut supprimer sa propre Demande de traitement" -#: models_treatments.py:463 +#: models_treatments.py:545 msgid "Treatment documentation" -msgstr "Documentation d'un traitement" +msgstr "Documentation de traitement" -#: models_treatments.py:464 +#: models_treatments.py:546 msgid "Treament documentations" -msgstr "Documentations des traitements" +msgstr "Documentations de traitement" -#: models_treatments.py:479 -msgid "Treatment file documentation" -msgstr "Documentation de dossier de traitement" +#: models_treatments.py:562 +msgid "Treatment request documentation" +msgstr "Documentation de demande de traitement" -#: models_treatments.py:480 -msgid "Treament file documentations" -msgstr "Documentations de dossier de traitement" +#: models_treatments.py:563 +msgid "Treatment request documentations" +msgstr "Documentations de demande de traitement" #: views.py:124 msgid "New find" @@ -1023,75 +1056,79 @@ msgstr "Supprimer un panier" msgid "New treatment" msgstr "Ajouter un traitement" -#: views.py:387 views.py:479 +#: views.py:388 views.py:480 msgid "Modify" msgstr "Modifier" -#: views.py:404 +#: views.py:405 msgid "Treatment deletion" msgstr "Supprimer un traitement" -#: views.py:411 +#: views.py:412 msgid "Treatment: search administrative act" msgstr "Traitement : rechercher un acte administratif" -#: views.py:420 +#: views.py:421 msgid "Treatment: new administrative act" msgstr "Traitement : ajouter un acte administratif" -#: views.py:430 +#: views.py:431 msgid "Treatment: administrative act modification" msgstr "Traitement : modifier un acte administratif" -#: views.py:439 +#: views.py:440 msgid "Treatment: administrative act deletion" msgstr "Traitement : supprimer un acte administratif" -#: views.py:472 +#: views.py:463 +msgid "Treatment file search" +msgstr "Rechercher un dossier de traitement" + +#: views.py:473 msgid "New treatment file" -msgstr "" +msgstr "Ajouter un dossier de traitement" -#: views.py:495 +#: views.py:496 msgid "Treatment file deletion" -msgstr "" +msgstr "Supprimer un dossier de traitement" -#: views.py:502 +#: views.py:503 msgid "Treatment file: search administrative act" -msgstr "" +msgstr "Dossier de traitement : rechercher un acte administratif" -#: views.py:512 +#: views.py:513 msgid "Treatment file: new administrative act" -msgstr "" +msgstr "Dossier de traitement : ajouter un acte administratif" -#: views.py:522 +#: views.py:523 msgid "Treatment file: administrative act modification" -msgstr "" +msgstr "Dossier de traitement : modifier un acte administratif" -#: views.py:531 +#: views.py:532 msgid "Treatment file: administrative act deletion" msgstr "Dossier de traitement : supprimer un acte administratif" -#: views.py:557 +#: views.py:558 msgid "Treatment: source search" msgstr "Traitement : rechercher une documentation associée" -#: views.py:572 +#: views.py:573 msgid "Treatment: source modification" msgstr "Traitement : modifier une documentation associée" -#: views.py:587 +#: views.py:588 msgid "Treatment: source deletion" msgstr "Traitement : supprimer une documentation associée" -#: views.py:600 +#: views.py:601 msgid "Treatment file: source search" msgstr "Dossier de traitement : rechercher une documentation associée" -#: views.py:616 +#: views.py:617 msgid "Treatment file: source modification" msgstr "Dossier de traitement : modifier une documentation associée" -#: views.py:634 +#: views.py:635 msgid "Treatment file: source deletion" msgstr "Traitement : supprimer une documentation associée" @@ -1099,36 +1136,35 @@ msgstr "Traitement : supprimer une documentation associée" msgid "Operation" msgstr "Opération" -#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:129 +#: templates/ishtar/sheet_find.html:79 +msgid "Localisation" +msgstr "" + +#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 msgid "Year - index" msgstr "Année - index" -#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:131 -#: templates/ishtar/sheet_find.html:209 -msgid "Type" -msgstr "Type" - -#: templates/ishtar/sheet_find.html:119 +#: templates/ishtar/sheet_find.html:125 msgid "Export as CSV" msgstr "Export en CSV" -#: templates/ishtar/sheet_find.html:119 templates/ishtar/sheet_find.html:160 +#: templates/ishtar/sheet_find.html:125 templates/ishtar/sheet_find.html:166 msgid "CSV" msgstr "CSV" -#: templates/ishtar/sheet_find.html:165 +#: templates/ishtar/sheet_find.html:171 msgid "Associated base finds" msgstr "Mobilier de base associé" -#: templates/ishtar/sheet_find.html:208 +#: templates/ishtar/sheet_find.html:214 msgid "Title" msgstr "Titre" -#: templates/ishtar/sheet_find.html:210 +#: templates/ishtar/sheet_find.html:216 msgid "Authors" msgstr "Auteurs" -#: templates/ishtar/sheet_find.html:211 +#: templates/ishtar/sheet_find.html:217 msgid "Link" msgstr "Lien" @@ -1140,7 +1176,17 @@ msgstr "Panier de mobilier" msgid "Find source" msgstr "Documentation associée au mobilier" -#: templates/ishtar/sheet_treatment.html:41 +#: templates/ishtar/sheet_treatment.html:20 +#: templates/ishtar/sheet_treatmentfile.html:16 +msgid "Closed" +msgstr "" + +#: templates/ishtar/sheet_treatment.html:22 +#: templates/ishtar/sheet_treatmentfile.html:18 +msgid "Active" +msgstr "" + +#: templates/ishtar/sheet_treatment.html:47 msgid "Downstream finds" msgstr "Mobilier aval" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index d5b15e8d2..825a39da3 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -538,7 +538,7 @@ msgstr "Indexé ?" msgid "Object" msgstr "Objet" -#: forms.py:1307 views.py:324 +#: forms.py:1307 views.py:329 msgid "Administrative act search" msgstr "Rechercher un acte administratif" @@ -583,7 +583,7 @@ msgstr "Génération de document" msgid "Generate the associated doc?" msgstr "Générer le document associé ?" -#: forms.py:1471 ishtar_menu.py:121 views.py:377 +#: forms.py:1471 ishtar_menu.py:121 views.py:382 msgctxt "admin act register" msgid "Register" msgstr "Registre" @@ -1074,35 +1074,35 @@ msgstr "Modifier une opération" msgid "Operation closing" msgstr "Clôturer une opération" -#: views.py:282 +#: views.py:287 msgid "Operation deletion" msgstr "Supprimer une opération" -#: views.py:287 +#: views.py:292 msgid "Operation: source search" msgstr "Opération : rechercher une documentation associée" -#: views.py:295 +#: views.py:300 msgid "Operation: source creation" msgstr "Opération : ajouter une documentation associée" -#: views.py:303 +#: views.py:308 msgid "Operation: source modification" msgstr "Opération : modifier une documentation associée" -#: views.py:318 +#: views.py:323 msgid "Operation: source deletion" msgstr "Opération : supprimer une documentation associée" -#: views.py:337 +#: views.py:342 msgid "Operation: new administrative act" msgstr "Opération : ajouter un acte administratif" -#: views.py:347 +#: views.py:352 msgid "Operation: administrative act modification" msgstr "Opération : modification d'un acte administratif" -#: views.py:371 +#: views.py:376 msgid "Operation: administrative act deletion" msgstr "Opération : supprimer un acte administratif" diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index ff314c1da..cc3433eff 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -3,41 +3,41 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2011. # Valérie-Emma Leroux , 2016. #zanata -# Étienne Loks , 2016. #zanata +# Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-12-04 07:54-0500\n" +"PO-Revision-Date: 2017-01-09 02:05-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" -#: forms.py:35 forms.py:91 forms.py:149 ishtar_menu.py:39 models.py:57 -#: models.py:125 templates/ishtar/sheet_warehouse.html:4 +#: forms.py:35 forms.py:91 forms.py:156 ishtar_menu.py:39 models.py:60 +#: models.py:88 models.py:156 templates/ishtar/sheet_warehouse.html:4 msgid "Warehouse" msgstr "Dépôt" -#: forms.py:44 forms.py:49 models.py:162 +#: forms.py:44 forms.py:49 models.py:230 msgid "Division" -msgstr "" +msgstr "Division" -#: forms.py:51 models.py:88 +#: forms.py:51 models.py:112 msgid "Order" -msgstr "" +msgstr "Ordre" -#: forms.py:62 models.py:50 +#: forms.py:62 models.py:53 msgid "Divisions" -msgstr "" +msgstr "Divisions" -#: forms.py:66 forms.py:95 models.py:42 +#: forms.py:66 forms.py:95 models.py:45 models.py:85 msgid "Name" msgstr "Nom" -#: forms.py:67 forms.py:97 models.py:33 models.py:44 +#: forms.py:67 forms.py:97 models.py:36 models.py:47 msgid "Warehouse type" msgstr "Type de dépôt" @@ -45,15 +45,15 @@ msgstr "Type de dépôt" msgid "Town" msgstr "Commune" -#: forms.py:79 +#: forms.py:79 views.py:98 msgid "Warehouse search" -msgstr "" +msgstr "Rechercher un dépôt" -#: forms.py:100 models.py:47 +#: forms.py:100 models.py:50 msgid "Person in charge" msgstr "Responsable" -#: forms.py:106 forms.py:154 models.py:48 models.py:130 +#: forms.py:106 forms.py:161 models.py:51 models.py:161 msgid "Comment" msgstr "Commentaires" @@ -79,149 +79,213 @@ msgstr "Téléphone" #: forms.py:118 msgid "Mobile phone" -msgstr "" +msgstr "Téléphone mobile" + +#: forms.py:145 forms.py:146 +msgid "Would you like to delete this warehouse?" +msgstr "Voulez-vous supprimer ce dépôt ?" -#: forms.py:145 models.py:133 models.py:160 +#: forms.py:150 models.py:169 models.py:228 #: templates/ishtar/sheet_container.html:4 msgid "Container" msgstr "Contenant" -#: forms.py:146 forms.py:181 models.py:103 +#: forms.py:153 forms.py:213 models.py:127 msgid "Ref." msgstr "Réf." -#: forms.py:147 forms.py:180 models.py:106 models.py:128 +#: forms.py:154 forms.py:212 models.py:130 models.py:159 msgid "Container type" msgstr "Type de contenant" -#: forms.py:191 +#: forms.py:187 +msgid "Index" +msgstr "Index" + +#: forms.py:205 +msgid "This ID already exists for this warehouse." +msgstr "Cet identifiant existe déjà pour ce dépôt." + +#: forms.py:223 forms.py:229 views.py:127 msgid "Container search" msgstr "Rechercher un contenant" -#: forms.py:193 +#: forms.py:225 forms.py:231 msgid "You should select a container." msgstr "Vous devez sélectionner un contenant." -#: forms.py:194 +#: forms.py:226 msgid "Add a new container" msgstr "Ajouter un nouveau contenant" -#: forms.py:198 ishtar_menu.py:35 views.py:92 +#: forms.py:236 ishtar_menu.py:35 views.py:93 msgid "Packaging" msgstr "Conditionnement" -#: forms.py:204 +#: forms.py:242 msgid "Packager" msgstr "Personne assurant le conditionnement" -#: forms.py:210 +#: forms.py:248 msgid "Date" msgstr "Date" -#: forms.py:214 +#: forms.py:252 msgid "Packaged finds" msgstr "Mobilier conditionné" -#: forms.py:218 +#: forms.py:256 models.py:162 msgid "Localisation" -msgstr "" +msgstr "Localisation" + +#: forms.py:280 forms.py:281 +msgid "Would you like to delete this container?" +msgstr "Voulez-vous supprimer ce contenant ?" #: ishtar_menu.py:32 msgid "Treatment" msgstr "Traitement" -#: ishtar_menu.py:42 +#: ishtar_menu.py:42 ishtar_menu.py:57 +msgid "Search" +msgstr "" + +#: ishtar_menu.py:45 ishtar_menu.py:60 msgid "Creation" msgstr "" -#: ishtar_menu.py:45 +#: ishtar_menu.py:48 ishtar_menu.py:63 msgid "Modification" msgstr "" -#: ishtar_menu.py:48 models.py:166 views.py:117 -msgid "Container localisation" +#: ishtar_menu.py:51 ishtar_menu.py:66 +msgid "Deletion" msgstr "" -#: models.py:34 +#: ishtar_menu.py:55 models.py:170 templates/ishtar/sheet_warehouse.html:17 +msgid "Containers" +msgstr "Contenants" + +#: models.py:37 msgid "Warehouse types" msgstr "Types de dépôts" -#: models.py:58 +#: models.py:61 msgid "Warehouses" msgstr "Dépôts" -#: models.py:60 +#: models.py:63 msgid "Can view all Warehouses" msgstr "Peut voir tous les Dépôts" -#: models.py:61 +#: models.py:64 msgid "Can view own Warehouse" msgstr "Peut voir son propre Dépôt" -#: models.py:62 +#: models.py:65 msgid "Can add own Warehouse" msgstr "Peut ajouter son propre Dépôt" -#: models.py:63 +#: models.py:66 msgid "Can change own Warehouse" msgstr "Peut modifier son propre Dépôt" -#: models.py:64 +#: models.py:67 msgid "Can delete own Warehouse" msgstr "Peut supprimer son propre Dépôt" -#: models.py:78 +#: models.py:87 +msgid "Description" +msgstr "" + +#: models.py:92 models.py:93 +msgid "Collection" +msgstr "" + +#: models.py:102 msgid "Warehouse division" msgstr "" -#: models.py:79 +#: models.py:103 msgid "Warehouse divisions" msgstr "" -#: models.py:99 +#: models.py:123 msgid "Length (mm)" msgstr "Longueur (mm)" -#: models.py:100 +#: models.py:124 msgid "Width (mm)" msgstr "Largeur (mm)" -#: models.py:101 +#: models.py:125 msgid "Height (mm)" msgstr "Hauteur (mm)" -#: models.py:102 +#: models.py:126 msgid "Volume (l)" msgstr "Volume (l)" -#: models.py:107 +#: models.py:131 msgid "Container types" msgstr "Types de contenant" -#: models.py:129 +#: models.py:149 +msgid "Location - index" +msgstr "" + +#: models.py:150 +msgid "Precise localisation" +msgstr "" + +#: models.py:151 +msgid "Type" +msgstr "" + +#: models.py:160 msgid "Container ref." msgstr "Réf. du contenant" -#: models.py:134 templates/ishtar/sheet_warehouse.html:17 -msgid "Containers" -msgstr "Contenants" +#: models.py:164 +msgid "Cached location" +msgstr "" -#: models.py:163 +#: models.py:231 msgid "Reference" msgstr "" -#: models.py:167 +#: models.py:234 +msgid "Container localisation" +msgstr "Localisation de contenant" + +#: models.py:235 msgid "Container localisations" -msgstr "" +msgstr "Localisations de contenant" -#: views.py:99 +#: views.py:106 msgid "Warehouse creation" msgstr "" -#: views.py:108 +#: views.py:115 msgid "Warehouse modification" msgstr "" +#: views.py:122 +msgid "Warehouse deletion" +msgstr "" + +#: views.py:135 +msgid "Container creation" +msgstr "Création de contenant" + +#: views.py:144 +msgid "Container modification" +msgstr "" + +#: views.py:151 +msgid "Container deletion" +msgstr "" + #: templates/ishtar/sheet_container.html:17 msgid "Content" msgstr "" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index 6e8c90c43..e3738b788 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -169,12 +169,12 @@ msgstr "Vous devez sélectionner un élément." msgid "Add a new item" msgstr "Ajouter un nouvel élément" -#: forms.py:262 models.py:1366 +#: forms.py:262 models.py:1367 msgid "Template" msgstr "Patron" #: forms_common.py:41 forms_common.py:59 forms_common.py:182 -#: forms_common.py:406 models.py:1432 models.py:2824 +#: forms_common.py:406 models.py:1433 models.py:2825 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" @@ -197,8 +197,8 @@ msgstr "" "

        Par exemple tapez « saint denis 93 » pour obtenir la " "commune Saint-Denis dans le département français de Seine-Saint-Denis.

        " -#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1605 -#: models.py:2451 models.py:2633 models.py:2694 +#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1606 +#: models.py:2452 models.py:2634 models.py:2695 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "Personne" @@ -212,63 +212,63 @@ msgstr "" "pas possible." #: forms_common.py:170 forms_common.py:327 forms_common.py:451 -#: ishtar_menu.py:75 models.py:1606 models.py:2337 +#: ishtar_menu.py:75 models.py:1607 models.py:2338 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "Organisation" #: forms_common.py:173 forms_common.py:210 forms_common.py:322 -#: forms_common.py:376 forms_common.py:446 models.py:1033 models.py:1365 -#: models.py:1651 models.py:1870 models.py:2331 models.py:2437 models.py:2810 +#: forms_common.py:376 forms_common.py:446 models.py:1034 models.py:1366 +#: models.py:1652 models.py:1871 models.py:2332 models.py:2438 models.py:2811 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "Nom" -#: forms_common.py:174 models.py:1587 models.py:2001 +#: forms_common.py:174 models.py:1588 models.py:2002 msgid "Organization type" msgstr "Type d'organisation" -#: forms_common.py:176 forms_common.py:400 models.py:1427 +#: forms_common.py:176 forms_common.py:400 models.py:1428 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "Adresse" -#: forms_common.py:178 forms_common.py:403 models.py:1428 +#: forms_common.py:178 forms_common.py:403 models.py:1429 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "Complément d'adresse" -#: forms_common.py:180 forms_common.py:404 models.py:1430 +#: forms_common.py:180 forms_common.py:404 models.py:1431 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "Code postal" -#: forms_common.py:183 forms_common.py:407 models.py:1433 +#: forms_common.py:183 forms_common.py:407 models.py:1434 msgid "Country" msgstr "Pays" #: forms_common.py:185 forms_common.py:324 forms_common.py:380 -#: forms_common.py:448 forms_common.py:572 models.py:1460 +#: forms_common.py:448 forms_common.py:572 models.py:1461 msgid "Email" msgstr "Courriel" -#: forms_common.py:186 forms_common.py:383 models.py:1445 +#: forms_common.py:186 forms_common.py:383 models.py:1446 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:19 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "Téléphone" -#: forms_common.py:187 forms_common.py:392 models.py:1457 +#: forms_common.py:187 forms_common.py:392 models.py:1458 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:37 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "Téléphone portable" -#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2031 -#: models.py:2333 models.py:2745 templates/sheet_ope.html:85 +#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:2032 +#: models.py:2334 models.py:2746 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -292,7 +292,7 @@ msgstr "Fusionner tous les éléments dans" msgid "Organization to merge" msgstr "Organisation à fusionner" -#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2435 +#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2436 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "Prénom" @@ -310,25 +310,25 @@ msgstr "Personne à fusionner" msgid "Identity" msgstr "Identité" -#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:2002 -#: models.py:2429 models.py:2431 models.py:2742 templates/sheet_ope.html:104 +#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:2003 +#: models.py:2430 models.py:2432 models.py:2743 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "Titre" -#: forms_common.py:372 models.py:2433 +#: forms_common.py:372 models.py:2434 msgid "Salutation" msgstr "Formule d'appel" -#: forms_common.py:378 models.py:2439 +#: forms_common.py:378 models.py:2440 msgid "Raw name" msgstr "Nom brut" -#: forms_common.py:381 models.py:1446 +#: forms_common.py:381 models.py:1447 msgid "Phone description" msgstr "Type de téléphone" -#: forms_common.py:384 models.py:1448 models.py:1450 +#: forms_common.py:384 models.py:1449 models.py:1451 msgid "Phone description 2" msgstr "Type de téléphone 2" @@ -336,11 +336,11 @@ msgstr "Type de téléphone 2" msgid "Phone 2" msgstr "Téléphone 2" -#: forms_common.py:388 models.py:1454 +#: forms_common.py:388 models.py:1455 msgid "Phone description 3" msgstr "Type de téléphone 3" -#: forms_common.py:390 models.py:1452 +#: forms_common.py:390 models.py:1453 msgid "Phone 3" msgstr "Téléphone 3" @@ -348,23 +348,23 @@ msgstr "Téléphone 3" msgid "Current organization" msgstr "Organisation actuelle" -#: forms_common.py:409 models.py:1435 +#: forms_common.py:409 models.py:1436 msgid "Other address: address" msgstr "Autre adresse : adresse" -#: forms_common.py:412 models.py:1438 +#: forms_common.py:412 models.py:1439 msgid "Other address: address complement" msgstr "Autre adresse : complément d'adresse" -#: forms_common.py:414 models.py:1439 +#: forms_common.py:414 models.py:1440 msgid "Other address: postal code" msgstr "Autre adresse : code postal" -#: forms_common.py:416 models.py:1441 +#: forms_common.py:416 models.py:1442 msgid "Other address: town" msgstr "Autre adresse : ville" -#: forms_common.py:418 models.py:1443 +#: forms_common.py:418 models.py:1444 msgid "Other address: country" msgstr "Autre adresse : pays" @@ -380,7 +380,7 @@ msgstr "Nom d'utilisateur" msgid "Account search" msgstr "Rechercher un compte" -#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2385 +#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2386 msgid "Person type" msgstr "Type de personne" @@ -388,7 +388,7 @@ msgstr "Type de personne" msgid "Account" msgstr "Compte" -#: forms_common.py:575 wizards.py:1241 +#: forms_common.py:575 wizards.py:1256 msgid "New password" msgstr "Nouveau mot de passe" @@ -412,7 +412,7 @@ msgstr "Ce nom d'utilisateur existe déjà." msgid "Send the new password by email?" msgstr "Envoyer le nouveau mot de passe par courriel ?" -#: forms_common.py:628 forms_common.py:641 models.py:2825 +#: forms_common.py:628 forms_common.py:641 models.py:2826 msgid "Towns" msgstr "Communes" @@ -428,7 +428,7 @@ msgstr "Seul un choix peut être coché." msgid "Documentation informations" msgstr "Information sur le document" -#: forms_common.py:775 forms_common.py:823 models.py:2003 models.py:2719 +#: forms_common.py:775 forms_common.py:823 models.py:2004 models.py:2720 msgid "Source type" msgstr "Type de document" @@ -440,37 +440,37 @@ msgstr "Référence" msgid "Internal reference" msgstr "Référence interne" -#: forms_common.py:783 models.py:2756 +#: forms_common.py:783 models.py:2757 msgid "Numerical ressource (web address)" msgstr "Ressource numérique (adresse web)" -#: forms_common.py:784 models.py:2758 +#: forms_common.py:784 models.py:2759 msgid "Receipt date" msgstr "Date de réception" -#: forms_common.py:786 models.py:2160 models.py:2760 +#: forms_common.py:786 models.py:2161 models.py:2761 msgid "Creation date" msgstr "Date de création" -#: forms_common.py:789 models.py:2763 +#: forms_common.py:789 models.py:2764 msgid "Receipt date in documentation" msgstr "Date de réception en documentation" -#: forms_common.py:791 forms_common.py:827 models.py:322 models.py:633 -#: models.py:1897 models.py:2443 models.py:2770 +#: forms_common.py:791 forms_common.py:827 models.py:323 models.py:634 +#: models.py:1898 models.py:2444 models.py:2771 msgid "Comment" msgstr "Commentaire" -#: forms_common.py:793 forms_common.py:826 models.py:1035 models.py:1655 -#: models.py:1829 models.py:1871 models.py:2769 templates/sheet_ope.html:128 +#: forms_common.py:793 forms_common.py:826 models.py:1036 models.py:1656 +#: models.py:1830 models.py:1872 models.py:2770 templates/sheet_ope.html:128 msgid "Description" msgstr "Description" -#: forms_common.py:796 models.py:2771 +#: forms_common.py:796 models.py:2772 msgid "Additional information" msgstr "Informations supplémentaires" -#: forms_common.py:798 forms_common.py:830 models.py:2773 +#: forms_common.py:798 forms_common.py:830 models.py:2774 msgid "Has a duplicate" msgstr "Existe en doublon" @@ -487,7 +487,7 @@ msgstr "" "

        Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).

        " -#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2699 +#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2700 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "Auteur" @@ -500,7 +500,7 @@ msgstr "Informations complémentaires" msgid "Would you like to delete this documentation?" msgstr "Voulez-vous supprimer ce document ?" -#: forms_common.py:856 models.py:2004 models.py:2687 models.py:2696 +#: forms_common.py:856 models.py:2005 models.py:2688 models.py:2697 msgid "Author type" msgstr "Type d'auteur" @@ -512,7 +512,7 @@ msgstr "Sélection d'auteur" msgid "There are identical authors." msgstr "Il y a des auteurs identiques." -#: forms_common.py:893 models.py:2700 models.py:2752 +#: forms_common.py:893 models.py:2701 models.py:2753 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -530,7 +530,7 @@ msgstr "Ajout/modification" msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:39 models.py:1161 views.py:1514 +#: ishtar_menu.py:39 models.py:1162 views.py:1530 msgid "Global variables" msgstr "Variables globales" @@ -558,15 +558,15 @@ msgstr "Fusion automatique" msgid "Manual merge" msgstr "Fusion manuelle" -#: ishtar_menu.py:109 models.py:2171 +#: ishtar_menu.py:109 models.py:2172 msgid "Imports" msgstr "Imports" -#: ishtar_menu.py:112 views.py:1522 +#: ishtar_menu.py:112 views.py:1538 msgid "New import" msgstr "Nouvel import" -#: ishtar_menu.py:116 views.py:1536 +#: ishtar_menu.py:116 views.py:1552 msgid "Current imports" msgstr "Imports en cours" @@ -586,91 +586,91 @@ msgstr "Un élément sélectionné n'est pas valide." msgid "This item already exists." msgstr "Cet élément existe déjà." -#: models.py:318 models.py:632 models.py:1400 models.py:1412 models.py:1826 +#: models.py:319 models.py:633 models.py:1401 models.py:1413 models.py:1827 msgid "Label" msgstr "Libellé" -#: models.py:320 +#: models.py:321 msgid "Textual ID" msgstr "Identifiant textuel" -#: models.py:323 models.py:635 models.py:1369 +#: models.py:324 models.py:636 models.py:1370 msgid "Available" msgstr "Disponible" -#: models.py:654 models.py:1943 +#: models.py:655 models.py:1944 msgid "Key" msgstr "Clé" -#: models.py:660 +#: models.py:661 msgid "Specific key to an import" msgstr "Clé spécifique à un import" -#: models.py:752 +#: models.py:753 msgid "Last editor" msgstr "Dernier éditeur" -#: models.py:755 +#: models.py:756 msgid "Creator" msgstr "Créateur" -#: models.py:897 models.py:2836 +#: models.py:898 models.py:2837 msgid "Order" msgstr "Ordre" -#: models.py:898 +#: models.py:899 msgid "Symmetrical" msgstr "Symétrique" -#: models.py:899 +#: models.py:900 msgid "Tiny label" msgstr "Libellé court" -#: models.py:913 +#: models.py:914 msgid "Cannot have symmetrical and an inverse_relation" msgstr "Ne peut pas être symétrique et avoir une relation inverse" -#: models.py:1027 +#: models.py:1028 msgid "Euro" msgstr "Euro" -#: models.py:1028 +#: models.py:1029 msgid "US dollar" msgstr "Dollars US" -#: models.py:1034 models.py:1653 +#: models.py:1035 models.py:1654 msgid "Slug" msgstr "Identifiant texte" -#: models.py:1036 +#: models.py:1037 msgid "Files module" msgstr "Module Dossiers" -#: models.py:1037 +#: models.py:1038 msgid "Context records module" msgstr "Module Unités d'Enregistrement" -#: models.py:1039 +#: models.py:1040 msgid "Finds module" msgstr "Module Mobilier" -#: models.py:1040 +#: models.py:1041 msgid "Need context records module" msgstr "Nécessite le module Unités d'Enregistrement" -#: models.py:1042 +#: models.py:1043 msgid "Warehouses module" msgstr "Module Dépôts" -#: models.py:1043 +#: models.py:1044 msgid "Need finds module" msgstr "Nécessite le module mobilier" -#: models.py:1045 +#: models.py:1046 msgid "Home page" msgstr "Page d'accueil" -#: models.py:1046 +#: models.py:1047 #, python-brace-format msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " @@ -680,11 +680,11 @@ msgstr "" "défaut apparaît. Utiliser la syntaxe Markdown. {random_image} peut être " "utilisé pour afficher une image au hasard." -#: models.py:1050 +#: models.py:1051 msgid "File external id" msgstr "Identifiant externe de fichier" -#: models.py:1052 +#: models.py:1053 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -694,11 +694,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1057 +#: models.py:1058 msgid "Parcel external id" msgstr "Identifiant externe de parcelle" -#: models.py:1060 +#: models.py:1061 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -708,11 +708,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1065 +#: models.py:1066 msgid "Context record external id" msgstr "Identifiant externe d'unité d'enregistrement" -#: models.py:1067 +#: models.py:1068 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -722,11 +722,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1072 +#: models.py:1073 msgid "Base find external id" msgstr "Identifiant externe de mobilier de base" -#: models.py:1074 +#: models.py:1075 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -736,11 +736,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:1079 +#: models.py:1080 msgid "Find external id" msgstr "Identifiant externe de mobilier" -#: models.py:1081 +#: models.py:1082 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -750,11 +750,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:1086 +#: models.py:1087 msgid "Raw name for person" msgstr "Nom brut pour une personne" -#: models.py:1088 +#: models.py:1089 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -764,43 +764,43 @@ msgstr "" "Une formule incorrecte peut rendre l'application inutilisable et l'import de " "données externes peut alors être destructif." -#: models.py:1092 +#: models.py:1093 msgid "Current active" msgstr "Actuellement utilisé" -#: models.py:1093 +#: models.py:1094 msgid "Currency" msgstr "Devise" -#: models.py:1097 +#: models.py:1098 msgid "Ishtar site profile" msgstr "Profil d'instance Ishtar" -#: models.py:1098 +#: models.py:1099 msgid "Ishtar site profiles" msgstr "Profils d'instance Ishtar" -#: models.py:1154 +#: models.py:1155 msgid "Variable name" msgstr "Nom de la variable" -#: models.py:1155 +#: models.py:1156 msgid "Description of the variable" msgstr "Description de la variable" -#: models.py:1157 models.py:1944 +#: models.py:1158 models.py:1945 msgid "Value" msgstr "Valeur" -#: models.py:1160 +#: models.py:1161 msgid "Global variable" msgstr "Variable globale" -#: models.py:1270 models.py:1300 +#: models.py:1271 models.py:1301 msgid "Total" msgstr "Total" -#: models.py:1277 models.py:1401 models.py:1413 +#: models.py:1278 models.py:1402 models.py:1414 #: templates/ishtar/sheet_person.html:22 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -808,619 +808,619 @@ msgstr "Total" msgid "Number" msgstr "Nombre" -#: models.py:1364 +#: models.py:1365 msgid "Administrative Act" msgstr "Acte administratif" -#: models.py:1368 +#: models.py:1369 msgid "Associated object" msgstr "Objet associé" -#: models.py:1372 +#: models.py:1373 msgid "Document template" msgstr "Patron de document" -#: models.py:1373 +#: models.py:1374 msgid "Document templates" msgstr "Patrons de document" -#: models.py:1404 models.py:1414 models.py:2155 +#: models.py:1405 models.py:1415 models.py:2156 msgid "State" msgstr "État" -#: models.py:1418 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1419 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "Département" -#: models.py:1419 +#: models.py:1420 msgid "Departments" msgstr "Départements" -#: models.py:1456 +#: models.py:1457 msgid "Raw phone" msgstr "Téléphone brut" -#: models.py:1462 +#: models.py:1463 msgid "Alternative address is prefered" msgstr "L'adresse alternative est préférée" -#: models.py:1501 +#: models.py:1502 msgid "Tel: " msgstr "Tél :" -#: models.py:1505 +#: models.py:1506 msgid "Mobile: " msgstr "Mobile :" -#: models.py:1509 +#: models.py:1510 msgid "Email: " msgstr "Courriel :" -#: models.py:1514 +#: models.py:1515 msgid "Merge key" msgstr "Clé de fusion" -#: models.py:1588 +#: models.py:1589 msgid "Organization types" msgstr "Types d'organisation" -#: models.py:1607 views.py:237 +#: models.py:1608 views.py:237 msgid "Operation" msgstr "Opération" -#: models.py:1609 +#: models.py:1610 msgid "Archaeological site" msgstr "Entité Archéologique" -#: models.py:1610 +#: models.py:1611 msgid "Parcels" msgstr "Parcelles" -#: models.py:1612 +#: models.py:1613 msgid "Operation source" msgstr "Documentation de l'opération" -#: models.py:1615 views.py:1330 views.py:1380 +#: models.py:1616 views.py:1346 views.py:1396 msgid "Archaeological files" msgstr "Dossiers" -#: models.py:1617 views.py:1333 views.py:1388 +#: models.py:1618 views.py:1349 views.py:1404 msgid "Context records" msgstr "Unités d'Enregistrement" -#: models.py:1619 +#: models.py:1620 msgid "Context record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:1621 +#: models.py:1622 msgid "Base finds" msgstr "Mobilier de base" -#: models.py:1657 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1658 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "Utilisateurs" -#: models.py:1659 +#: models.py:1660 msgid "Associated model" msgstr "Modèle associé" -#: models.py:1662 +#: models.py:1663 msgid "Is template" msgstr "Est un patron" -#: models.py:1663 +#: models.py:1664 msgid "Unicity keys (separator \";\")" msgstr "Clés d'unicité (séparateur « ; »)" -#: models.py:1667 +#: models.py:1668 msgid "Importer - Type" msgstr "Importeur - Type" -#: models.py:1668 +#: models.py:1669 msgid "Importer - Types" msgstr "Importeur - Types" -#: models.py:1758 +#: models.py:1759 msgid "Importer - Default" msgstr "Importeur - Par défaut" -#: models.py:1759 +#: models.py:1760 msgid "Importer - Defaults" msgstr "Importeur - Par défaut" -#: models.py:1794 +#: models.py:1795 msgid "Importer - Default value" msgstr "Importeur - Valeur par défaut" -#: models.py:1795 +#: models.py:1796 msgid "Importer - Default values" msgstr "Importeur - Valeurs par défaut" -#: models.py:1828 +#: models.py:1829 msgid "Column number" msgstr "Numéro de colonne" -#: models.py:1831 +#: models.py:1832 msgid "Required" msgstr "Requis" -#: models.py:1834 +#: models.py:1835 msgid "Importer - Column" msgstr "Importeur - Colonne" -#: models.py:1835 +#: models.py:1836 msgid "Importer - Columns" msgstr "Importeur - Colonnes" -#: models.py:1855 +#: models.py:1856 msgid "Field name" msgstr "Nom du champ" -#: models.py:1857 models.py:1891 +#: models.py:1858 models.py:1892 msgid "Force creation of new items" msgstr "Forcer la création de nouveaux éléments" -#: models.py:1859 models.py:1893 +#: models.py:1860 models.py:1894 msgid "Concatenate with existing" msgstr "Concaténer avec l'existant" -#: models.py:1861 models.py:1895 +#: models.py:1862 models.py:1896 msgid "Concatenate character" msgstr "Caractère de concaténation" -#: models.py:1865 +#: models.py:1866 msgid "Importer - Duplicate field" msgstr "Importeur - Champ dupliqué" -#: models.py:1866 +#: models.py:1867 msgid "Importer - Duplicate fields" msgstr "Importeur - Champs dupliqués" -#: models.py:1873 +#: models.py:1874 msgid "Regular expression" msgstr "Expression régulière" -#: models.py:1876 +#: models.py:1877 msgid "Importer - Regular expression" msgstr "Importeur - Expression régulière" -#: models.py:1877 +#: models.py:1878 msgid "Importer - Regular expressions" msgstr "Importeur - Expressions régulières" -#: models.py:1900 +#: models.py:1901 msgid "Importer - Target" msgstr "Importeur - Cible" -#: models.py:1901 +#: models.py:1902 msgid "Importer - Targets" msgstr "Importeur - Cibles" -#: models.py:1925 views.py:520 +#: models.py:1926 views.py:536 msgid "True" msgstr "Oui" -#: models.py:1926 views.py:522 +#: models.py:1927 views.py:538 msgid "False" msgstr "Non" -#: models.py:1945 +#: models.py:1946 msgid "Is set" msgstr "Est défini" -#: models.py:1952 +#: models.py:1953 msgid "Importer - Target key" msgstr "Importeur - Clé de rapprochement" -#: models.py:1953 +#: models.py:1954 msgid "Importer - Targets keys" msgstr "Importeur - Clés de rapprochement" -#: models.py:2005 models.py:2735 models.py:2748 +#: models.py:2006 models.py:2736 models.py:2749 msgid "Format" msgstr "Format" -#: models.py:2006 models.py:2840 +#: models.py:2007 models.py:2841 msgid "Operation type" msgstr "Type d'opération" -#: models.py:2007 +#: models.py:2008 msgid "Period" msgstr "Périodes" -#: models.py:2008 +#: models.py:2009 msgid "Report state" msgstr "État de rapport" -#: models.py:2009 +#: models.py:2010 msgid "Remain type" msgstr "Type de vestige" -#: models.py:2010 +#: models.py:2011 msgid "Unit" msgstr "Unité" -#: models.py:2011 +#: models.py:2012 msgid "Activity type" msgstr "Type d'activité" -#: models.py:2012 +#: models.py:2013 msgid "Material" msgstr "Matériau" -#: models.py:2014 +#: models.py:2015 msgid "Conservatory state" msgstr "État de conservation" -#: models.py:2015 +#: models.py:2016 msgid "Preservation type" msgstr "Type de conservation" -#: models.py:2016 +#: models.py:2017 msgid "Object type" msgstr "Type d'objet" -#: models.py:2018 +#: models.py:2019 msgid "Identification type" msgstr "Type d'identification" -#: models.py:2020 +#: models.py:2021 msgid "Context record relation type" msgstr "Type de relations entre Unités d'Enregistrement" -#: models.py:2021 models.py:2727 +#: models.py:2022 models.py:2728 msgid "Support type" msgstr "Type de support" -#: models.py:2027 +#: models.py:2028 msgid "Integer" msgstr "Entier" -#: models.py:2028 +#: models.py:2029 msgid "Float" msgstr "Nombre à virgule" -#: models.py:2029 +#: models.py:2030 msgid "String" msgstr "Chaîne de caractères" -#: models.py:2030 templates/sheet_ope.html:86 +#: models.py:2031 templates/sheet_ope.html:86 msgid "Date" msgstr "Date" -#: models.py:2032 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2033 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "Année" -#: models.py:2033 +#: models.py:2034 msgid "String to boolean" msgstr "Chaîne de caractères vers booléen" -#: models.py:2034 +#: models.py:2035 msgctxt "filesystem" msgid "File" msgstr "Fichier" -#: models.py:2035 +#: models.py:2036 msgid "Unknow type" msgstr "Type inconnu" -#: models.py:2051 +#: models.py:2052 msgid "4 digit year. e.g.: \"2015\"" msgstr "Année sur 4 chiffres. Exemple : « 2015 »" -#: models.py:2052 +#: models.py:2053 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "Année sur 4 chiffres/mois/jour. Exemple : « 2015/02/04 »" -#: models.py:2053 +#: models.py:2054 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "Jour/mois/année sur 4 chiffres. Exemple : « 04/02/2015 »" -#: models.py:2063 +#: models.py:2064 msgid "Options" msgstr "Options" -#: models.py:2065 +#: models.py:2066 msgid "Split character(s)" msgstr "Caractère(s) de séparation" -#: models.py:2069 +#: models.py:2070 msgid "Importer - Formater type" msgstr "Importeur - Type de mise en forme" -#: models.py:2070 +#: models.py:2071 msgid "Importer - Formater types" msgstr "Importeur - Types de mise en forme" -#: models.py:2119 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2120 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "Créé" -#: models.py:2120 +#: models.py:2121 msgid "Analyse in progress" msgstr "Analyse en cours" -#: models.py:2121 +#: models.py:2122 msgid "Analysed" msgstr "Analysé" -#: models.py:2122 +#: models.py:2123 msgid "Import pending" msgstr "Import en attente" -#: models.py:2123 +#: models.py:2124 msgid "Import in progress" msgstr "Import en cours" -#: models.py:2124 +#: models.py:2125 msgid "Finished with errors" msgstr "Terminé avec des erreurs" -#: models.py:2125 +#: models.py:2126 msgid "Finished" msgstr "Terminé" -#: models.py:2126 +#: models.py:2127 msgid "Archived" msgstr "Archivé" -#: models.py:2138 +#: models.py:2139 msgid "Imported file" msgstr "Fichier importé" -#: models.py:2141 +#: models.py:2142 msgid "Associated images (zip file)" msgstr "Images associées (fichier zip)" -#: models.py:2143 +#: models.py:2144 msgid "Encoding" msgstr "Codage" -#: models.py:2145 +#: models.py:2146 msgid "Skip lines" msgstr "Nombre de lignes d'entête" -#: models.py:2146 templates/ishtar/import_list.html:47 +#: models.py:2147 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "Fichier erreur" -#: models.py:2149 +#: models.py:2150 msgid "Result file" msgstr "Fichier résultant" -#: models.py:2152 templates/ishtar/import_list.html:53 +#: models.py:2153 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "Fichier de correspondance" -#: models.py:2158 +#: models.py:2159 msgid "Conservative import" msgstr "Import conservateur" -#: models.py:2163 +#: models.py:2164 msgid "End date" msgstr "Date de fin" -#: models.py:2165 +#: models.py:2166 msgid "Remaining seconds" msgstr "Secondes restantes" -#: models.py:2170 +#: models.py:2171 msgid "Import" msgstr "Import" -#: models.py:2187 +#: models.py:2188 msgid "Analyse" msgstr "Analyser" -#: models.py:2189 models.py:2192 +#: models.py:2190 models.py:2193 msgid "Re-analyse" msgstr "Analyser de nouveau " -#: models.py:2190 +#: models.py:2191 msgid "Launch import" msgstr "Lancer l'import" -#: models.py:2193 +#: models.py:2194 msgid "Re-import" msgstr "Ré-importer" -#: models.py:2194 +#: models.py:2195 msgid "Archive" msgstr "Archiver" -#: models.py:2196 +#: models.py:2197 msgid "Unarchive" msgstr "Désarchiver" -#: models.py:2197 widgets.py:129 templates/ishtar/form_delete.html:11 +#: models.py:2198 widgets.py:129 templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "Supprimer" -#: models.py:2338 +#: models.py:2339 msgid "Organizations" msgstr "Organisations" -#: models.py:2340 +#: models.py:2341 msgid "Can view all Organizations" msgstr "Peut voir toutes les Organisations" -#: models.py:2341 +#: models.py:2342 msgid "Can view own Organization" msgstr "Peut voir sa propre Organisation" -#: models.py:2342 +#: models.py:2343 msgid "Can add own Organization" msgstr "Peut ajouter sa propre Organisation" -#: models.py:2344 +#: models.py:2345 msgid "Can change own Organization" msgstr "Peut modifier sa propre Organisation" -#: models.py:2346 +#: models.py:2347 msgid "Can delete own Organization" msgstr "Peut supprimer sa propre Organisation" -#: models.py:2381 +#: models.py:2382 msgid "Groups" msgstr "Groupes" -#: models.py:2386 +#: models.py:2387 msgid "Person types" msgstr "Types de personne" -#: models.py:2397 +#: models.py:2398 msgid "Title type" msgstr "Type de titre" -#: models.py:2398 +#: models.py:2399 msgid "Title types" msgstr "Types de titre" -#: models.py:2407 +#: models.py:2408 msgid "Mr" msgstr "M." -#: models.py:2408 +#: models.py:2409 msgid "Miss" msgstr "Mlle" -#: models.py:2409 +#: models.py:2410 msgid "Mr and Mrs" msgstr "M. et Mme" -#: models.py:2410 +#: models.py:2411 msgid "Mrs" msgstr "Mme" -#: models.py:2411 +#: models.py:2412 msgid "Doctor" msgstr "Dr." -#: models.py:2441 +#: models.py:2442 msgid "Contact type" msgstr "Type de contact" -#: models.py:2444 models.py:2508 +#: models.py:2445 models.py:2509 msgid "Types" msgstr "Types" -#: models.py:2447 +#: models.py:2448 msgid "Is attached to" msgstr "Est rattaché à" -#: models.py:2452 +#: models.py:2453 msgid "Persons" msgstr "Personnes" -#: models.py:2454 +#: models.py:2455 msgid "Can view all Persons" msgstr "Peut voir toutes les Personnes" -#: models.py:2455 +#: models.py:2456 msgid "Can view own Person" msgstr "Peut voir sa propre Personne" -#: models.py:2456 +#: models.py:2457 msgid "Can add own Person" msgstr "Peut ajouter sa propre Personne" -#: models.py:2457 +#: models.py:2458 msgid "Can change own Person" msgstr "Peut modifier sa propre Personne" -#: models.py:2458 +#: models.py:2459 msgid "Can delete own Person" msgstr "Peut supprimer sa propre Personne" -#: models.py:2636 +#: models.py:2637 msgid "Advanced shortcut menu" msgstr "Menu de raccourci (avancé)" -#: models.py:2639 +#: models.py:2640 msgid "Ishtar user" msgstr "Utilisateur d'Ishtar" -#: models.py:2640 +#: models.py:2641 msgid "Ishtar users" msgstr "Utilisateurs d'Ishtar" -#: models.py:2682 +#: models.py:2683 msgid "To modify the password use the form in Auth > User" msgstr "" "Pour modifier le mot de passe, utilisez le formulaire dans Authentification " "> Utilisateurs" -#: models.py:2688 +#: models.py:2689 msgid "Author types" msgstr "Types d'auteur" -#: models.py:2720 +#: models.py:2721 msgid "Source types" msgstr "Types de document" -#: models.py:2728 +#: models.py:2729 msgid "Support types" msgstr "Types de support" -#: models.py:2736 +#: models.py:2737 msgid "Formats" msgstr "Formats" -#: models.py:2743 +#: models.py:2744 msgid "External ID" msgstr "Identifiant externe" -#: models.py:2746 +#: models.py:2747 msgid "Support" msgstr "Support" -#: models.py:2750 +#: models.py:2751 msgid "Scale" msgstr "Échelle" -#: models.py:2764 +#: models.py:2765 msgid "Item number" msgstr "Numéro d'élément" -#: models.py:2765 +#: models.py:2766 msgid "Ref." msgstr "Réf." -#: models.py:2768 +#: models.py:2769 msgid "Internal ref." msgstr "Réf. interne" -#: models.py:2811 +#: models.py:2812 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:2812 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2813 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "Localisation" -#: models.py:2837 +#: models.py:2838 msgid "Is preventive" msgstr "Est du préventif" -#: models.py:2841 +#: models.py:2842 msgid "Operation types" msgstr "Types d'opération" -#: models.py:2870 +#: models.py:2871 msgid "Preventive" msgstr "Préventif" -#: models.py:2871 +#: models.py:2872 msgid "Research" msgstr "Programmé" -#: utils.py:74 +#: utils.py:81 msgid " (...)" msgstr " (...)" -#: utils.py:107 +#: utils.py:114 msgid "Load another random image?" msgstr "Charger une autre image au hasard ?" @@ -1468,48 +1468,56 @@ msgstr "Unité d'Enregistrement" msgid "Find" msgstr "Mobilier" -#: views.py:1269 views.py:1312 +#: views.py:243 +msgid "Treatment file" +msgstr "" + +#: views.py:244 +msgid "Treatment" +msgstr "" + +#: views.py:1285 views.py:1328 msgid "Operation not permitted." msgstr "Opération non permise." -#: views.py:1271 +#: views.py:1287 #, python-format msgid "New %s" msgstr "Nouveau %s" -#: views.py:1331 views.py:1384 +#: views.py:1347 views.py:1400 msgid "Operations" msgstr "Opérations" -#: views.py:1335 views.py:1391 +#: views.py:1351 views.py:1407 msgid "Finds" msgstr "Mobilier" -#: views.py:1583 templates/ishtar/import_list.html:43 +#: views.py:1599 templates/ishtar/import_list.html:43 msgid "Link unmatched items" msgstr "Associer les éléments non rapprochés" -#: views.py:1598 +#: views.py:1614 msgid "Delete import" msgstr "Supprimer un import" -#: views.py:1637 +#: views.py:1653 msgid "Merge persons" msgstr "Fusionner des personnes" -#: views.py:1661 +#: views.py:1677 msgid "Select the main person" msgstr "Choisir la personne principale" -#: views.py:1670 +#: views.py:1686 msgid "Merge organization" msgstr "Fusionner des organisations" -#: views.py:1680 +#: views.py:1696 msgid "Select the main organization" msgstr "Sélectionner l'organisation principale" -#: views.py:1720 views.py:1736 +#: views.py:1736 views.py:1752 msgid "Corporation manager" msgstr "Représentant de la personne morale" @@ -1517,27 +1525,27 @@ msgstr "Représentant de la personne morale" msgid "Search..." msgstr "Recherche..." -#: widgets.py:671 templatetags/window_tables.py:88 +#: widgets.py:670 templatetags/window_tables.py:91 msgid "No results" msgstr "Pas de résultats" -#: widgets.py:672 templatetags/window_tables.py:89 +#: widgets.py:671 templatetags/window_tables.py:92 msgid "Loading..." msgstr "Chargement..." -#: widgets.py:673 +#: widgets.py:672 msgid "Remove" msgstr "Enlever" -#: wizards.py:335 templates/ishtar/import_delete.html:20 +#: wizards.py:342 templates/ishtar/import_delete.html:20 msgid "Yes" msgstr "Oui" -#: wizards.py:337 +#: wizards.py:344 msgid "No" msgstr "Non" -#: wizards.py:1298 +#: wizards.py:1313 #, python-format msgid "[%(app_name)s] Account creation/modification" msgstr "[%(app_name)s] Création/modification du compte" -- cgit v1.2.3 From dc7c0cdf9ceba039b2536c0db8e816a3d29880d9 Mon Sep 17 00:00:00 2001 From: Valérie-Emma Leroux Date: Mon, 9 Jan 2017 22:40:32 +0100 Subject: Update labels --- archaeological_finds/forms_treatments.py | 10 ++++----- archaeological_finds/models_treatments.py | 6 +++--- .../ishtar/sheet_treatmentfilesource.html | 4 ++-- archaeological_finds/views.py | 24 +++++++++++----------- archaeological_operations/models.py | 4 ++-- .../templates/ishtar/sheet_administrativeact.html | 2 +- archaeological_operations/urls.py | 2 +- ishtar_common/views.py | 2 +- 8 files changed, 27 insertions(+), 27 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index f73672967..7a388a10d 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -331,7 +331,7 @@ class AdministrativeActTreatmentModifForm( pk = forms.IntegerField(required=False, widget=forms.HiddenInput) index = forms.IntegerField(label=_("Index"), required=False) -# treatment files +# treatment requests class TreatmentFileSelect(TableSelect): @@ -459,14 +459,14 @@ class TreatmentFileModifyForm(TreatmentFileForm): .filter(year=year, index=index).exclude(pk=pk) if index and q.count(): raise forms.ValidationError( - _(u"Another treatment file with this index exists for {}." + _(u"Another treatment request with this index exists for {}." ).format(year)) return cleaned_data class TreatmentFileDeletionForm(FinalForm): - confirm_msg = _(u"Are you sure you want to delete this treatment file?") - confirm_end_msg = _(u"Would you like to delete this treatment file?") + confirm_msg = _(u"Are you sure you want to delete this treatment request?") + confirm_end_msg = _(u"Would you like to delete this treatment request?") class AdministrativeActTreatmentFileSelect(TableSelect): @@ -549,7 +549,7 @@ SourceTreatmentFileFormSelection = get_form_selection( 'SourceTreatmentFileFormSelection', _(u"Treatment request search"), 'treatment_file', models.TreatmentFile, TreatmentFileSelect, 'get-treatmentfile', - _(u"You should select a treatment file.")) + _(u"You should select a treatment request.")) class TreatmentSourceSelect(SourceSelect): diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 7586c7eca..0f4a53afc 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -62,8 +62,8 @@ post_delete.connect(post_save_cache, sender=TreatmentType) class TreatmentState(GeneralType): class Meta: - verbose_name = _(u"Type of treatment state") - verbose_name_plural = _(u"Type of treatment states") + verbose_name = _(u"Treatment state type") + verbose_name_plural = _(u"Treatment state types") ordering = ('label',) post_save.connect(post_save_cache, sender=TreatmentState) post_delete.connect(post_save_cache, sender=TreatmentState) @@ -445,7 +445,7 @@ class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, max_length=200) name = models.TextField(_(u"Name"), blank=True, null=True) type = models.ForeignKey(TreatmentFileType, verbose_name=_(u"Treatment " - u"file type")) + u"request type")) in_charge = models.ForeignKey( Person, related_name='treatmentfile_responsability', verbose_name=_(u"Person in charge"), on_delete=models.SET_NULL, diff --git a/archaeological_finds/templates/ishtar/sheet_treatmentfilesource.html b/archaeological_finds/templates/ishtar/sheet_treatmentfilesource.html index e456b6fe0..e558296a8 100644 --- a/archaeological_finds/templates/ishtar/sheet_treatmentfilesource.html +++ b/archaeological_finds/templates/ishtar/sheet_treatmentfilesource.html @@ -1,12 +1,12 @@ {% extends "ishtar/sheet_source.html" %} {% load i18n window_field window_header link_to_window %} -{% block head_title %}{% trans "Treatement file source" %}{% endblock %} +{% block head_title %}{% trans "Treatment request source" %}{% endblock %} {% block window_nav %} {% window_nav item window_id 'show-treatmentfilesource' 'treatmentfile_source_modify' %} {% endblock %} {% block related %} -{% field "Related treatment file" item.owner '' item.owner|link_to_window %} +{% field "Related treatment request" item.owner '' item.owner|link_to_window %} {% endblock %} diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 830a997c6..e36d65068 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -456,11 +456,11 @@ def treatment_administrativeacttreatment_modify(request, pk): })) -# treatment file +# treatment request treatmentfile_search_wizard = SearchWizard.as_view([ ('general-treatmentfile_search', TreatmentFileFormSelection)], - label=_(u"Treatment file search"), + label=_(u"Treatment request search"), url_name='treatmentfile_search',) treatmentfile_wizard_steps = [ @@ -470,7 +470,7 @@ treatmentfile_wizard_steps = [ treatmentfile_creation_wizard = TreatmentFileWizard.as_view( treatmentfile_wizard_steps, - label=_(u"New treatment file"), + label=_(u"New treatment request"), url_name='treatmentfile_creation',) treatmentfile_modification_wizard = TreatmentFileModificationWizard.as_view( @@ -493,14 +493,14 @@ def treatmentfile_modify(request, pk): treatmentfile_deletion_wizard = TreatmentFileDeletionWizard.as_view([ ('selec-treatmentfile_deletion', TreatmentFileFormSelection), ('final-treatmentfile_deletion', TreatmentFileDeletionForm)], - label=_(u"Treatment file deletion"), + label=_(u"Treatment request deletion"), url_name='treatmentfile_deletion',) treatmentfile_admacttreatmentfile_search_wizard = \ SearchWizard.as_view([ ('selec-treatmentfle_admacttreatmentfle_search', AdministrativeActTreatmentFileFormSelection)], - label=_(u"Treatment file: search administrative act"), + label=_(u"Treatment request: search administrative act"), url_name='treatmentfle_admacttreatmentfle_search',) @@ -510,7 +510,7 @@ treatmentfile_admacttreatmentfile_wizard = \ ('admact-treatmentfle_admacttreatmentfle', AdministrativeActTreatmentFileForm), ('final-treatmentfle_admacttreatmentfle', FinalForm)], - label=_(u"Treatment file: new administrative act"), + label=_(u"Treatment request: new administrative act"), url_name='treatmentfle_admacttreatmentfle',) treatmentfile_admacttreatmentfile_modification_wizard = \ @@ -520,7 +520,7 @@ treatmentfile_admacttreatmentfile_modification_wizard = \ ('admact-treatmentfle_admacttreatmentfle_modification', AdministrativeActTreatmentFileModifForm), ('final-treatmentfle_admacttreatmentfle_modification', FinalForm)], - label=_(u"Treatment file: administrative act modification"), + label=_(u"Treatment request: administrative act modification"), url_name='treatmentfle_admacttreatmentfle_modification',) treatmentfile_admacttreatmentfile_deletion_wizard = \ @@ -529,7 +529,7 @@ treatmentfile_admacttreatmentfile_deletion_wizard = \ AdministrativeActTreatmentFileFormSelection), ('final-treatmentfle_admacttreatmentfle_deletion', FinalAdministrativeActDeleteForm)], - label=_(u"Treatment file: administrative act deletion"), + label=_(u"Treatment request: administrative act deletion"), url_name='treatmentfle_admacttreatmentfle_deletion',) @@ -588,7 +588,7 @@ treatment_source_deletion_wizard = TreatmentSourceDeletionWizard.as_view([ label=_(u"Treatment: source deletion"), url_name='treatment_source_deletion',) -# treatment file sources +# treatment request sources show_treatmentfilesource = show_item(models.TreatmentFileSource, 'treatmentfilesource') @@ -598,7 +598,7 @@ get_treatmentfilesource = get_item( treatmentfile_source_search_wizard = SearchWizard.as_view([ ('selec-treatmentfile_source_search', TreatmentFileSourceFormSelection)], - label=_(u"Treatment file: source search"), + label=_(u"Treatment request: source search"), url_name='treatmentfile_source_search',) treatmentfile_source_creation_wizard = TreatmentFileSourceWizard.as_view([ @@ -614,7 +614,7 @@ treatmentfile_source_modification_wizard = TreatmentFileSourceWizard.as_view([ ('source-treatmentfile_source_modification', SourceForm), ('authors-treatmentfile_source_modification', AuthorFormset), ('final-treatmentfile_source_modification', FinalForm)], - label=_(u"Treatment file: source modification"), + label=_(u"Treatment request: source modification"), url_name='treatmentfile_source_modification',) @@ -632,5 +632,5 @@ treatmentfile_source_deletion_wizard = \ ('selec-treatmentfile_source_deletion', TreatmentFileSourceFormSelection), ('final-treatmentfile_source_deletion', SourceDeletionForm)], - label=_(u"Treatment file: source deletion"), + label=_(u"Treatment request: source deletion"), url_name='treatmentfile_source_deletion',) diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 5d4fe9a2b..129040706 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -882,7 +882,7 @@ class OperationSource(Source): class ActType(GeneralType): TYPE = (('F', _(u'Archaeological file')), ('O', _(u'Operation')), - ('TF', _(u'Treatment file')), + ('TF', _(u'Treatment request')), ('T', _(u'Treatment')), ) intented_to = models.CharField(_(u"Intended to"), max_length=2, @@ -994,7 +994,7 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): 'archaeological_finds.TreatmentFile', blank=True, null=True, related_name='administrative_act', - verbose_name=_(u"Treatment file")) + verbose_name=_(u"Treatment request")) treatment = models.ForeignKey( 'archaeological_finds.Treatment', blank=True, null=True, diff --git a/archaeological_operations/templates/ishtar/sheet_administrativeact.html b/archaeological_operations/templates/ishtar/sheet_administrativeact.html index c96d216c9..b12c1f8c0 100644 --- a/archaeological_operations/templates/ishtar/sheet_administrativeact.html +++ b/archaeological_operations/templates/ishtar/sheet_administrativeact.html @@ -30,7 +30,7 @@ {% field_li_detail "Associated file" item.associated_file %} {% field_li_detail "Operation" item.operation %} {% field_li_detail "Treatment" item.treatment %} - {% field_li_detail "Treatment file" item.treatment_file %} + {% field_li_detail "Treatment request" item.treatment_file %} {% if item.operation and item.operation.surface %}
      • {{ item.operation.surface }} m2 ({{ item.operation.surface_ha }} ha)
      • diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index 710bc5e24..e98ddc93f 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -128,7 +128,7 @@ urlpatterns += patterns( # allow specialization for operations url(r'show-administrativeact(?:/(?P.+))?/(?P.+)?$', 'show_administrativeact', name='show-administrativeactop'), - # allow specialization for files, treatment, treatment file + # allow specialization for files, treatment, treatment request url(r'show-administrativeact(?:/(?P.+))?/(?P.+)?$', 'show_administrativeact', name='show-administrativeactfile'), url(r'show-administrativeact(?:/(?P.+))?/(?P.+)?$', diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 1e272fc78..d827ae065 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -240,7 +240,7 @@ def shortcut_menu(request): if profile.find: CURRENT_ITEMS.append((_(u"Find"), Find)) if profile.warehouse: - CURRENT_ITEMS.append((_(u"Treatment file"), TreatmentFile)) + CURRENT_ITEMS.append((_(u"Treatment request"), TreatmentFile)) CURRENT_ITEMS.append((_(u"Treatment"), Treatment)) if hasattr(request.user, 'ishtaruser') and \ request.user.ishtaruser.advanced_shortcut_menu: -- cgit v1.2.3 From 512ed05903bdb9f57a94c69b19384036668d45cd Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 9 Jan 2017 22:44:27 +0100 Subject: Update translations --- archaeological_context_records/locale/django.pot | 1 + archaeological_finds/locale/django.pot | 44 +++---- archaeological_operations/locale/django.pot | 2 +- archaeological_warehouse/locale/django.pot | 2 +- ishtar_common/locale/django.pot | 2 +- translations/fr/archaeological_context_records.po | 8 +- translations/fr/archaeological_files.po | 8 +- translations/fr/archaeological_files_pdl.po | 8 +- translations/fr/archaeological_finds.po | 146 +++++++++++++++------- translations/fr/archaeological_operations.po | 14 ++- translations/fr/archaeological_warehouse.po | 8 +- translations/fr/ishtar_common.po | 16 +-- 12 files changed, 164 insertions(+), 95 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index 188135243..2931bb8ee 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -3,6 +3,7 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2015. # Valérie-Emma Leroux , 2016. #zanata +# Étienne Loks , 2017. #zanata msgid "" msgstr "" diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 0ac52d19d..8d4c60696 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -3,6 +3,7 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2015. # Valérie-Emma Leroux , 2016. #zanata +# Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" @@ -474,7 +475,7 @@ msgstr "" msgid "Applicant organisation" msgstr "" -#: forms_treatments.py:369 forms_treatments.py:549 +#: forms_treatments.py:369 forms_treatments.py:549 views.py:463 msgid "Treatment request search" msgstr "" @@ -483,15 +484,15 @@ msgid "Reception date" msgstr "" #: forms_treatments.py:462 -msgid "Another treatment file with this index exists for {}." +msgid "Another treatment request with this index exists for {}." msgstr "" #: forms_treatments.py:468 -msgid "Are you sure you want to delete this treatment file?" +msgid "Are you sure you want to delete this treatment request?" msgstr "" #: forms_treatments.py:469 -msgid "Would you like to delete this treatment file?" +msgid "Would you like to delete this treatment request?" msgstr "" #: forms_treatments.py:485 forms_treatments.py:581 @@ -511,6 +512,7 @@ msgid "Treatment request internal reference" msgstr "" #: forms_treatments.py:492 forms_treatments.py:588 models_treatments.py:424 +#: models_treatments.py:447 msgid "Treatment request type" msgstr "" @@ -519,7 +521,7 @@ msgid "You should select a treatment." msgstr "" #: forms_treatments.py:552 -msgid "You should select a treatment file." +msgid "You should select a treatment request." msgstr "" #: ishtar_menu.py:36 ishtar_menu.py:79 ishtar_menu.py:111 ishtar_menu.py:134 @@ -862,11 +864,11 @@ msgid "Treatment types" msgstr "" #: models_treatments.py:65 -msgid "Type of treatment state" +msgid "Treatment state type" msgstr "" #: models_treatments.py:66 -msgid "Type of treatment states" +msgid "Treatment state types" msgstr "" #: models_treatments.py:89 @@ -932,10 +934,6 @@ msgstr "" msgid "Internal reference" msgstr "" -#: models_treatments.py:447 -msgid "Treatment file type" -msgstr "" - #: models_treatments.py:451 msgid "Person in charge" msgstr "" @@ -1056,32 +1054,28 @@ msgstr "" msgid "Treatment: administrative act deletion" msgstr "" -#: views.py:463 -msgid "Treatment file search" -msgstr "" - #: views.py:473 -msgid "New treatment file" +msgid "New treatment request" msgstr "" #: views.py:496 -msgid "Treatment file deletion" +msgid "Treatment request deletion" msgstr "" #: views.py:503 -msgid "Treatment file: search administrative act" +msgid "Treatment request: search administrative act" msgstr "" #: views.py:513 -msgid "Treatment file: new administrative act" +msgid "Treatment request: new administrative act" msgstr "" #: views.py:523 -msgid "Treatment file: administrative act modification" +msgid "Treatment request: administrative act modification" msgstr "" #: views.py:532 -msgid "Treatment file: administrative act deletion" +msgid "Treatment request: administrative act deletion" msgstr "" #: views.py:558 @@ -1097,15 +1091,15 @@ msgid "Treatment: source deletion" msgstr "" #: views.py:601 -msgid "Treatment file: source search" +msgid "Treatment request: source search" msgstr "" #: views.py:617 -msgid "Treatment file: source modification" +msgid "Treatment request: source modification" msgstr "" #: views.py:635 -msgid "Treatment file: source deletion" +msgid "Treatment request: source deletion" msgstr "" #: wizards.py:63 wizards.py:195 @@ -1167,7 +1161,7 @@ msgid "Downstream finds" msgstr "" #: templates/ishtar/sheet_treatmentfilesource.html:4 -msgid "Treatement file source" +msgid "Treatment request source" msgstr "" #: templates/ishtar/sheet_treatmentsource.html:4 diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index 384dafab5..de5d4edd9 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -890,7 +890,7 @@ msgid "Can delete own Operation source" msgstr "" #: models.py:885 models.py:997 -msgid "Treatment file" +msgid "Treatment request" msgstr "" #: models.py:886 models.py:1002 diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index 48db02aaf..9bd87db70 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -3,7 +3,7 @@ # This file is distributed under the same license as the Ishtar package. # Étienne Loks , 2010-2011. # Valérie-Emma Leroux , 2016. #zanata -# Étienne Loks , 2016. #zanata +# Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index df2d73651..270893b60 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -1421,7 +1421,7 @@ msgid "Find" msgstr "" #: views.py:243 -msgid "Treatment file" +msgid "Treatment request" msgstr "" #: views.py:244 diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 04aea6bec..42681c9e7 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -6,13 +6,15 @@ # Étienne Loks , 2017. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 22:43+0100\n" "PO-Revision-Date: 2017-01-09 01:15-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 5d1df6224..b12ca33b5 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 22:43+0100\n" "PO-Revision-Date: 2016-11-15 04:16-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index 949555adc..a739bd12a 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 22:43+0100\n" "PO-Revision-Date: 2016-11-14 05:33-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 1b188747d..ca249ea59 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -6,13 +6,15 @@ # Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 22:43+0100\n" "PO-Revision-Date: 2017-01-09 04:11-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -492,7 +494,7 @@ msgstr "Demandeur" msgid "Applicant organisation" msgstr "Organisation du demandeur" -#: forms_treatments.py:369 forms_treatments.py:549 +#: forms_treatments.py:369 forms_treatments.py:549 views.py:463 msgid "Treatment request search" msgstr "Rechercher une demande de traitement" @@ -501,16 +503,19 @@ msgid "Reception date" msgstr "Date de réception" #: forms_treatments.py:462 -msgid "Another treatment file with this index exists for {}." -msgstr "Un autre dossier de traitement existe déjà avec cet index pour {}." +#, fuzzy +msgid "Another treatment request with this index exists for {}." +msgstr "Un autre traitement avec cet index existe pour {}." #: forms_treatments.py:468 -msgid "Are you sure you want to delete this treatment file?" +#, fuzzy +msgid "Are you sure you want to delete this treatment request?" msgstr "Êtes-vous sûr de vouloir supprimer ce dossier de traitement ? " #: forms_treatments.py:469 -msgid "Would you like to delete this treatment file?" -msgstr "Voulez-vous supprimer ce dossier de traitement ? " +#, fuzzy +msgid "Would you like to delete this treatment request?" +msgstr "Voulez-vous supprimer ce traitement ?" #: forms_treatments.py:485 forms_treatments.py:581 msgid "Treatment request name" @@ -529,6 +534,7 @@ msgid "Treatment request internal reference" msgstr "Référence interne de la demande de traitement" #: forms_treatments.py:492 forms_treatments.py:588 models_treatments.py:424 +#: models_treatments.py:447 msgid "Treatment request type" msgstr "Type de demande de traitement" @@ -537,8 +543,9 @@ msgid "You should select a treatment." msgstr "Vous devez sélectionner un traitement." #: forms_treatments.py:552 -msgid "You should select a treatment file." -msgstr "Vous devez sélectionner un dossier de traitement." +#, fuzzy +msgid "You should select a treatment request." +msgstr "Vous devez sélectionner un traitement." #: ishtar_menu.py:36 ishtar_menu.py:79 ishtar_menu.py:111 ishtar_menu.py:134 #: ishtar_menu.py:158 ishtar_menu.py:190 ishtar_menu.py:214 ishtar_menu.py:238 @@ -884,12 +891,14 @@ msgid "Treatment types" msgstr "Types de traitement" #: models_treatments.py:65 -msgid "Type of treatment state" -msgstr "Type d'état de traitement" +#, fuzzy +msgid "Treatment state type" +msgstr "Type de traitement" #: models_treatments.py:66 -msgid "Type of treatment states" -msgstr "Types d'état de traitement" +#, fuzzy +msgid "Treatment state types" +msgstr "Types de traitement" #: models_treatments.py:89 msgid "Downstream find" @@ -956,10 +965,6 @@ msgstr "Types de demande de traitement" msgid "Internal reference" msgstr "Référence interne" -#: models_treatments.py:447 -msgid "Treatment file type" -msgstr "Type de dossier de traitement" - #: models_treatments.py:451 msgid "Person in charge" msgstr "Personne responsable" @@ -1080,33 +1085,35 @@ msgstr "Traitement : modifier un acte administratif" msgid "Treatment: administrative act deletion" msgstr "Traitement : supprimer un acte administratif" -#: views.py:463 -msgid "Treatment file search" -msgstr "Rechercher un dossier de traitement" - #: views.py:473 -msgid "New treatment file" -msgstr "Ajouter un dossier de traitement" +#, fuzzy +msgid "New treatment request" +msgstr "Demande de traitement" #: views.py:496 -msgid "Treatment file deletion" -msgstr "Supprimer un dossier de traitement" +#, fuzzy +msgid "Treatment request deletion" +msgstr "Documentation de demande de traitement" #: views.py:503 -msgid "Treatment file: search administrative act" -msgstr "Dossier de traitement : rechercher un acte administratif" +#, fuzzy +msgid "Treatment request: search administrative act" +msgstr "Traitement : rechercher un acte administratif" #: views.py:513 -msgid "Treatment file: new administrative act" -msgstr "Dossier de traitement : ajouter un acte administratif" +#, fuzzy +msgid "Treatment request: new administrative act" +msgstr "Traitement : ajouter un acte administratif" #: views.py:523 -msgid "Treatment file: administrative act modification" -msgstr "Dossier de traitement : modifier un acte administratif" +#, fuzzy +msgid "Treatment request: administrative act modification" +msgstr "Traitement : modifier un acte administratif" #: views.py:532 -msgid "Treatment file: administrative act deletion" -msgstr "Dossier de traitement : supprimer un acte administratif" +#, fuzzy +msgid "Treatment request: administrative act deletion" +msgstr "Traitement : supprimer un acte administratif" #: views.py:558 msgid "Treatment: source search" @@ -1121,15 +1128,18 @@ msgid "Treatment: source deletion" msgstr "Traitement : supprimer une documentation associée" #: views.py:601 -msgid "Treatment file: source search" -msgstr "Dossier de traitement : rechercher une documentation associée" +#, fuzzy +msgid "Treatment request: source search" +msgstr "Traitement : rechercher une documentation associée" #: views.py:617 -msgid "Treatment file: source modification" -msgstr "Dossier de traitement : modifier une documentation associée" +#, fuzzy +msgid "Treatment request: source modification" +msgstr "Traitement : modifier une documentation associée" #: views.py:635 -msgid "Treatment file: source deletion" +#, fuzzy +msgid "Treatment request: source deletion" msgstr "Traitement : supprimer une documentation associée" #: wizards.py:63 wizards.py:195 @@ -1191,9 +1201,61 @@ msgid "Downstream finds" msgstr "Mobilier aval" #: templates/ishtar/sheet_treatmentfilesource.html:4 -msgid "Treatement file source" -msgstr "Documentation de dossier de traitement" +#, fuzzy +msgid "Treatment request source" +msgstr "Rechercher une demande de traitement" #: templates/ishtar/sheet_treatmentsource.html:4 msgid "Treatment source" msgstr "Documentation de traitement" + +#~ msgid "Another treatment file with this index exists for {}." +#~ msgstr "Un autre dossier de traitement existe déjà avec cet index pour {}." + +#~ msgid "Would you like to delete this treatment file?" +#~ msgstr "Voulez-vous supprimer ce dossier de traitement ? " + +#~ msgid "You should select a treatment file." +#~ msgstr "Vous devez sélectionner un dossier de traitement." + +#~ msgid "Type of treatment state" +#~ msgstr "Type d'état de traitement" + +#~ msgid "Type of treatment states" +#~ msgstr "Types d'état de traitement" + +#~ msgid "Treatment file type" +#~ msgstr "Type de dossier de traitement" + +#~ msgid "Treatment file search" +#~ msgstr "Rechercher un dossier de traitement" + +#~ msgid "New treatment file" +#~ msgstr "Ajouter un dossier de traitement" + +#~ msgid "Treatment file deletion" +#~ msgstr "Supprimer un dossier de traitement" + +#~ msgid "Treatment file: search administrative act" +#~ msgstr "Dossier de traitement : rechercher un acte administratif" + +#~ msgid "Treatment file: new administrative act" +#~ msgstr "Dossier de traitement : ajouter un acte administratif" + +#~ msgid "Treatment file: administrative act modification" +#~ msgstr "Dossier de traitement : modifier un acte administratif" + +#~ msgid "Treatment file: administrative act deletion" +#~ msgstr "Dossier de traitement : supprimer un acte administratif" + +#~ msgid "Treatment file: source search" +#~ msgstr "Dossier de traitement : rechercher une documentation associée" + +#~ msgid "Treatment file: source modification" +#~ msgstr "Dossier de traitement : modifier une documentation associée" + +#~ msgid "Treatment file: source deletion" +#~ msgstr "Traitement : supprimer une documentation associée" + +#~ msgid "Treatement file source" +#~ msgstr "Documentation de dossier de traitement" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index 825a39da3..f72f24eb3 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 22:43+0100\n" "PO-Revision-Date: 2016-12-20 04:22-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -389,8 +391,7 @@ msgstr "" #: forms.py:891 msgid "The excavation end date cannot be before the start date." -msgstr "" -"La date de fin de chantier ne peut être antérieure à la date de début." +msgstr "La date de fin de chantier ne peut être antérieure à la date de début." #: forms.py:919 #, python-format @@ -912,7 +913,8 @@ msgid "Can delete own Operation source" msgstr "Peut supprimer sa propre Documentation d'opération" #: models.py:885 models.py:997 -msgid "Treatment file" +#, fuzzy +msgid "Treatment request" msgstr "Dossier de traitement" #: models.py:886 models.py:1002 diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index cc3433eff..ac44e06f3 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -6,13 +6,15 @@ # Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 22:43+0100\n" "PO-Revision-Date: 2017-01-09 02:05-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index e3738b788..f61425c35 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 22:43+0100\n" "PO-Revision-Date: 2016-12-20 04:19-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -1469,8 +1471,9 @@ msgid "Find" msgstr "Mobilier" #: views.py:243 -msgid "Treatment file" -msgstr "" +#, fuzzy +msgid "Treatment request" +msgstr "Traitements des éléments" #: views.py:244 msgid "Treatment" @@ -1586,8 +1589,7 @@ msgstr "L'équipe %(app_name)s" #: templates/base.html:41 msgid "Searches in the shortcut menu deal with all items." -msgstr "" -"Les recherches dans le menu de raccourci concernent tous les éléments." +msgstr "Les recherches dans le menu de raccourci concernent tous les éléments." #: templates/base.html:42 msgid "Searches in the shortcut menu deal with only your items." -- cgit v1.2.3 From e1753fd6d32500bb5c76a2902bec4bc8b09d24d8 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 9 Jan 2017 23:20:50 +0100 Subject: Container: manage location and responsible --- .../templates/ishtar/sheet_find.html | 7 +- archaeological_warehouse/forms.py | 11 +- .../0019_auto__add_field_container_responsible.py | 297 +++++++++++++++++++++ archaeological_warehouse/models.py | 8 +- .../templates/ishtar/sheet_container.html | 4 +- .../templates/ishtar/sheet_warehouse.html | 7 +- ishtar_common/templatetags/window_tables.py | 2 +- 7 files changed, 326 insertions(+), 10 deletions(-) create mode 100644 archaeological_warehouse/migrations/0019_auto__add_field_container_responsible.py (limited to 'ishtar_common') diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html index 444c6c5d8..05a796a9f 100644 --- a/archaeological_finds/templates/ishtar/sheet_find.html +++ b/archaeological_finds/templates/ishtar/sheet_find.html @@ -76,10 +76,11 @@
      {% if item.container %} -

      {% trans "Localisation"%}

      -{% field_detail "Warehouse" item.container.location %} +

      {% trans "Warehouse"%}

      {% field_detail "Container" item.container %} -{% field "Localisation" item.container.divisions_lbl %} +{% field_detail "Responsible warehouse" item.container.responsible %} +{% field_detail "Location (warehouse)" item.container.location %} +{% field "Precise localisation" item.container.divisions_lbl %} {% endif %} {% if item.upstream_treatment or item.downstream_treatment %} diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index d61658b0e..e91d04d61 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -149,11 +149,18 @@ class WarehouseDeletionForm(FinalForm): class ContainerForm(ManageOldType, forms.Form): form_label = _(u"Container") associated_models = {'container_type': models.ContainerType, - 'location': models.Warehouse} + 'location': models.Warehouse, + 'responsible': models.Warehouse} reference = forms.CharField(label=_(u"Ref.")) container_type = forms.ChoiceField(label=_(u"Container type"), choices=[]) location = forms.IntegerField( - label=_(u"Warehouse"), + label=_(u"Current location (warehouse)"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-warehouse'), + associated_model=models.Warehouse, new=True), + validators=[valid_id(models.Warehouse)]) + responsible = forms.IntegerField( + label=_(u"Responsible warehouse"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-warehouse'), associated_model=models.Warehouse, new=True), diff --git a/archaeological_warehouse/migrations/0019_auto__add_field_container_responsible.py b/archaeological_warehouse/migrations/0019_auto__add_field_container_responsible.py new file mode 100644 index 000000000..21612d227 --- /dev/null +++ b/archaeological_warehouse/migrations/0019_auto__add_field_container_responsible.py @@ -0,0 +1,297 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Container.responsible' + db.add_column('archaeological_warehouse_container', 'responsible', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='owned_containers', null=True, to=orm['archaeological_warehouse.Warehouse']), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Container.responsible' + db.delete_column('archaeological_warehouse_container', 'responsible_id') + + + models = { + 'archaeological_warehouse.collection': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Collection'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_collection'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'collections'", 'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.container': { + 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('index', 'location'),)", 'object_name': 'Container'}, + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'responsible': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_containers'", 'null': 'True', 'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.containerlocalisation': { + 'Meta': {'ordering': "('container', 'division__order')", 'unique_together': "(('container', 'division'),)", 'object_name': 'ContainerLocalisation'}, + 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']"}), + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivisionLink']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '200'}) + }, + 'archaeological_warehouse.containertype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_warehouse.warehouse': { + 'Meta': {'object_name': 'Warehouse'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"}) + }, + 'archaeological_warehouse.warehousedivision': { + 'Meta': {'object_name': 'WarehouseDivision'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_warehouse.warehousedivisionlink': { + 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'}, + 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}) + }, + 'archaeological_warehouse.warehousetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.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']}, + 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.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.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'}) + } + } + + complete_apps = ['archaeological_warehouse'] \ No newline at end of file diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 656f516d5..c3c159550 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -153,8 +153,12 @@ class Container(LightHistorizedItem): CACHED_LABELS = ['cached_label', 'cached_location'] # fields - location = models.ForeignKey(Warehouse, verbose_name=_(u"Warehouse"), - related_name='containers') + location = models.ForeignKey( + Warehouse, verbose_name=_(u"Location (warehouse)"), + related_name='containers') + responsible = models.ForeignKey( + Warehouse, verbose_name=_(u"Responsible warehouse"), + related_name='owned_containers', blank=True, null=True) container_type = models.ForeignKey(ContainerType, verbose_name=_("Container type")) reference = models.CharField(_(u"Container ref."), max_length=40) diff --git a/archaeological_warehouse/templates/ishtar/sheet_container.html b/archaeological_warehouse/templates/ishtar/sheet_container.html index fd3c6510a..4a7b2f0b9 100644 --- a/archaeological_warehouse/templates/ishtar/sheet_container.html +++ b/archaeological_warehouse/templates/ishtar/sheet_container.html @@ -9,9 +9,11 @@
        {% field_li "Reference" item.reference %} {% field_li "Container type" item.container_type %} + {% field_li_detail "Responsible warehouse" item.responsible %} + {% field_li_detail "Location (warehouse)" item.location %}
      -{% field "Comment" item.comment "
      " "
      " %} {% field "Location" item.precise_location %} +{% field "Comment" item.comment "
      " "
      " %} {% if item.finds.count %}

      {% trans "Content" %}

      diff --git a/archaeological_warehouse/templates/ishtar/sheet_warehouse.html b/archaeological_warehouse/templates/ishtar/sheet_warehouse.html index 6304dc3a5..9fd022281 100644 --- a/archaeological_warehouse/templates/ishtar/sheet_warehouse.html +++ b/archaeological_warehouse/templates/ishtar/sheet_warehouse.html @@ -15,7 +15,12 @@ {% if item.containers.count %}

      {% trans "Containers" %}

      -{% dynamic_table_document '' 'containers' 'location' item.pk 'TABLE_COLS' output 'large' %} +{% dynamic_table_document '' 'containers' 'location' item.pk 'TABLE_COLS' output %} +{% endif %} + +{% if item.owned_containers.count %} +

      {% trans "Attached containers" %}

      +{% dynamic_table_document '' 'containers' 'responsible' item.pk 'TABLE_COLS' output %} {% endif %} {% endblock %} diff --git a/ishtar_common/templatetags/window_tables.py b/ishtar_common/templatetags/window_tables.py index 2fc364f25..05592557a 100644 --- a/ishtar_common/templatetags/window_tables.py +++ b/ishtar_common/templatetags/window_tables.py @@ -81,7 +81,7 @@ def dynamic_table_document( t = get_template('ishtar/blocks/window_tables/dynamic_documents.html') context = template.Context({ 'caption': caption, - 'name': slugify(caption) + '{}'.format(int(time.time())), + 'name': '{}{}{}'.format(slugify(caption), key, int(time.time())), 'source': source + source_attrs, 'source_full': source_full, 'simple_source': source, -- cgit v1.2.3 From acc617fc3efb32e1538bd17b861a858e0d845fd9 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 9 Jan 2017 23:33:54 +0100 Subject: Typo fix --- ishtar_common/templates/ishtar/manage_basket.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'ishtar_common') diff --git a/ishtar_common/templates/ishtar/manage_basket.html b/ishtar_common/templates/ishtar/manage_basket.html index 64793c46d..de17f3ad7 100644 --- a/ishtar_common/templates/ishtar/manage_basket.html +++ b/ishtar_common/templates/ishtar/manage_basket.html @@ -4,7 +4,10 @@

      {{page_name}}{% trans ":"%} {{basket}}

      {% csrf_token %}
      -

      {% trans 'Checking "Select all" only select the current page.' %}

      +

      + + {% trans 'Checking "Select all" only selects the current page.' %} +

      {{form}}

      {% trans "Basket content" %}

      -- cgit v1.2.3 From 0262e873e180f2f98570b5e63d581c8b7810819e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 9 Jan 2017 23:39:51 +0100 Subject: Update translations --- archaeological_finds/locale/django.pot | 146 ++++++++++--------- archaeological_operations/locale/django.pot | 1 + archaeological_warehouse/locale/django.pot | 66 +++++---- ishtar_common/locale/django.pot | 9 +- translations/fr/archaeological_context_records.po | 8 +- translations/fr/archaeological_files.po | 8 +- translations/fr/archaeological_files_pdl.po | 8 +- translations/fr/archaeological_finds.po | 163 ++++++++++++---------- translations/fr/archaeological_operations.po | 11 +- translations/fr/archaeological_warehouse.po | 78 +++++++---- translations/fr/ishtar_common.po | 20 +-- 11 files changed, 298 insertions(+), 220 deletions(-) (limited to 'ishtar_common') diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 8d4c60696..1291d8491 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -12,7 +12,7 @@ msgid "Context record" msgstr "" #: forms.py:121 ishtar_menu.py:32 models_finds.py:466 models_finds.py:791 -#: models_finds.py:800 models_treatments.py:264 +#: models_finds.py:800 models_treatments.py:265 #: templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "" @@ -125,7 +125,7 @@ msgstr "" #: forms.py:180 forms_treatments.py:131 forms_treatments.py:418 #: models_finds.py:132 models_finds.py:446 models_treatments.py:122 -#: models_treatments.py:467 +#: models_treatments.py:468 msgid "Comment" msgstr "" @@ -157,13 +157,13 @@ msgid "Period" msgstr "" #: forms.py:232 forms_treatments.py:137 forms_treatments.py:420 -#: models_finds.py:805 models_treatments.py:125 models_treatments.py:275 -#: templates/ishtar/sheet_find.html:101 templates/ishtar/sheet_find.html:141 +#: models_finds.py:805 models_treatments.py:125 models_treatments.py:276 +#: templates/ishtar/sheet_find.html:102 templates/ishtar/sheet_find.html:142 msgid "Start date" msgstr "" -#: forms.py:234 models_finds.py:806 models_treatments.py:276 -#: templates/ishtar/sheet_find.html:102 templates/ishtar/sheet_find.html:142 +#: forms.py:234 models_finds.py:806 models_treatments.py:277 +#: templates/ishtar/sheet_find.html:103 templates/ishtar/sheet_find.html:143 msgid "End date" msgstr "" @@ -189,7 +189,7 @@ msgstr "" #: forms.py:266 forms_treatments.py:53 forms_treatments.py:95 #: forms_treatments.py:268 forms_treatments.py:340 forms_treatments.py:390 -#: forms_treatments.py:473 models_treatments.py:98 models_treatments.py:439 +#: forms_treatments.py:473 models_treatments.py:98 models_treatments.py:440 msgid "Year" msgstr "" @@ -298,7 +298,7 @@ msgid "Basket" msgstr "" #: forms_treatments.py:51 forms_treatments.py:91 models_treatments.py:94 -#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 +#: templates/ishtar/sheet_find.html:97 templates/ishtar/sheet_find.html:137 msgid "Label" msgstr "" @@ -309,13 +309,13 @@ msgstr "" #: forms_treatments.py:54 forms_treatments.py:221 forms_treatments.py:269 #: forms_treatments.py:332 forms_treatments.py:341 forms_treatments.py:443 #: forms_treatments.py:474 forms_treatments.py:541 models_treatments.py:100 -#: models_treatments.py:441 +#: models_treatments.py:442 msgid "Index" msgstr "" #: forms_treatments.py:55 forms_treatments.py:100 forms_treatments.py:285 #: forms_treatments.py:562 models_treatments.py:56 models_treatments.py:105 -#: models_treatments.py:274 +#: models_treatments.py:275 msgid "Treatment type" msgstr "" @@ -343,7 +343,7 @@ msgstr "" msgid "Organization" msgstr "" -#: forms_treatments.py:118 models_treatments.py:110 models_treatments.py:277 +#: forms_treatments.py:118 models_treatments.py:110 models_treatments.py:278 msgid "Location" msgstr "" @@ -360,7 +360,7 @@ msgid "Goal" msgstr "" #: forms_treatments.py:139 forms_treatments.py:426 models_treatments.py:126 -#: models_treatments.py:461 +#: models_treatments.py:462 msgid "Closing date" msgstr "" @@ -391,7 +391,7 @@ msgid "Associated request" msgstr "" #: forms_treatments.py:250 forms_treatments.py:381 ishtar_menu.py:107 -#: models_treatments.py:472 models_treatments.py:494 models_treatments.py:555 +#: models_treatments.py:473 models_treatments.py:495 models_treatments.py:556 #: wizards.py:183 templates/ishtar/sheet_treatmentfile.html:5 msgid "Treatment request" msgstr "" @@ -447,7 +447,7 @@ msgstr "" msgid "Modified by" msgstr "" -#: forms_treatments.py:338 forms_treatments.py:388 models_treatments.py:446 +#: forms_treatments.py:338 forms_treatments.py:388 models_treatments.py:447 msgid "Name" msgstr "" @@ -456,8 +456,8 @@ msgid "Internal ref." msgstr "" #: forms_treatments.py:342 forms_treatments.py:399 -#: templates/ishtar/sheet_find.html:97 templates/ishtar/sheet_find.html:137 -#: templates/ishtar/sheet_find.html:215 +#: templates/ishtar/sheet_find.html:98 templates/ishtar/sheet_find.html:138 +#: templates/ishtar/sheet_find.html:216 msgid "Type" msgstr "" @@ -465,12 +465,12 @@ msgstr "" msgid "In charge" msgstr "" -#: forms_treatments.py:350 forms_treatments.py:407 models_treatments.py:455 +#: forms_treatments.py:350 forms_treatments.py:407 models_treatments.py:456 #: templates/ishtar/sheet_treatmentfile.html:31 msgid "Applicant" msgstr "" -#: forms_treatments.py:356 forms_treatments.py:413 models_treatments.py:459 +#: forms_treatments.py:356 forms_treatments.py:413 models_treatments.py:460 #: templates/ishtar/sheet_treatmentfile.html:38 msgid "Applicant organisation" msgstr "" @@ -479,7 +479,7 @@ msgstr "" msgid "Treatment request search" msgstr "" -#: forms_treatments.py:423 models_treatments.py:465 +#: forms_treatments.py:423 models_treatments.py:466 msgid "Reception date" msgstr "" @@ -511,8 +511,8 @@ msgstr "" msgid "Treatment request internal reference" msgstr "" -#: forms_treatments.py:492 forms_treatments.py:588 models_treatments.py:424 -#: models_treatments.py:447 +#: forms_treatments.py:492 forms_treatments.py:588 models_treatments.py:425 +#: models_treatments.py:449 msgid "Treatment request type" msgstr "" @@ -558,8 +558,8 @@ msgstr "" msgid "Administrative act" msgstr "" -#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:210 -#: templates/ishtar/sheet_find.html:212 +#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:211 +#: templates/ishtar/sheet_find.html:213 msgid "Documents" msgstr "" @@ -567,8 +567,8 @@ msgstr "" msgid "Source" msgstr "" -#: ishtar_menu.py:183 models_treatments.py:134 models_treatments.py:266 -#: models_treatments.py:539 templates/ishtar/sheet_treatment.html:5 +#: ishtar_menu.py:183 models_treatments.py:135 models_treatments.py:267 +#: models_treatments.py:540 templates/ishtar/sheet_treatment.html:5 msgid "Treatment" msgstr "" @@ -633,7 +633,7 @@ msgid "Batch" msgstr "" #: models_finds.py:128 models_finds.py:390 models_treatments.py:120 -#: models_treatments.py:444 +#: models_treatments.py:445 msgid "External ID" msgstr "" @@ -730,8 +730,8 @@ msgid "Periods" msgstr "" #: models_finds.py:316 models_finds.py:421 models_treatments.py:127 -#: models_treatments.py:278 templates/ishtar/sheet_find.html:100 -#: templates/ishtar/sheet_find.html:140 +#: models_treatments.py:279 templates/ishtar/sheet_find.html:101 +#: templates/ishtar/sheet_find.html:141 msgid "Container" msgstr "" @@ -763,7 +763,7 @@ msgstr "" msgid "Base find - Discovery date" msgstr "" -#: models_finds.py:393 models_treatments.py:40 models_treatments.py:270 +#: models_finds.py:393 models_treatments.py:40 models_treatments.py:271 msgid "Order" msgstr "" @@ -775,11 +775,11 @@ msgstr "" msgid "Weight unit" msgstr "" -#: models_finds.py:414 templates/ishtar/sheet_find.html:89 +#: models_finds.py:414 templates/ishtar/sheet_find.html:90 msgid "Upstream treatment" msgstr "" -#: models_finds.py:417 templates/ishtar/sheet_find.html:129 +#: models_finds.py:417 templates/ishtar/sheet_find.html:130 msgid "Downstream treatment" msgstr "" @@ -787,7 +787,7 @@ msgstr "" msgid "Collection" msgstr "" -#: models_finds.py:460 models_treatments.py:130 models_treatments.py:468 +#: models_finds.py:460 models_treatments.py:131 models_treatments.py:469 msgid "Cached name" msgstr "" @@ -883,102 +883,102 @@ msgstr "" msgid "Target a basket" msgstr "" -#: models_treatments.py:135 templates/ishtar/sheet_find.html:86 +#: models_treatments.py:136 templates/ishtar/sheet_find.html:87 #: templates/ishtar/sheet_treatmentfile.html:45 msgid "Treatments" msgstr "" -#: models_treatments.py:138 +#: models_treatments.py:139 msgid "Can view all Treatments" msgstr "" -#: models_treatments.py:139 +#: models_treatments.py:140 msgid "Can view own Treatment" msgstr "" -#: models_treatments.py:140 +#: models_treatments.py:141 msgid "Can add own Treatment" msgstr "" -#: models_treatments.py:141 +#: models_treatments.py:142 msgid "Can change own Treatment" msgstr "" -#: models_treatments.py:142 +#: models_treatments.py:143 msgid "Can delete own Treatment" msgstr "" -#: models_treatments.py:154 +#: models_treatments.py:155 msgid "TREATMENT" msgstr "" -#: models_treatments.py:279 templates/ishtar/sheet_find.html:99 -#: templates/ishtar/sheet_find.html:139 +#: models_treatments.py:280 templates/ishtar/sheet_find.html:100 +#: templates/ishtar/sheet_find.html:140 msgid "Doer" msgstr "" -#: models_treatments.py:280 models_treatments.py:281 -#: templates/ishtar/sheet_find.html:98 templates/ishtar/sheet_find.html:138 +#: models_treatments.py:281 models_treatments.py:282 +#: templates/ishtar/sheet_find.html:99 templates/ishtar/sheet_find.html:139 msgid "Related finds" msgstr "" -#: models_treatments.py:413 +#: models_treatments.py:414 msgid "Is upstream" msgstr "" -#: models_treatments.py:425 +#: models_treatments.py:426 msgid "Treatment request types" msgstr "" -#: models_treatments.py:442 +#: models_treatments.py:443 msgid "Internal reference" msgstr "" -#: models_treatments.py:451 +#: models_treatments.py:452 msgid "Person in charge" msgstr "" -#: models_treatments.py:463 +#: models_treatments.py:464 msgid "Creation date" msgstr "" -#: models_treatments.py:473 +#: models_treatments.py:474 msgid "Treatment requests" msgstr "" -#: models_treatments.py:477 +#: models_treatments.py:478 msgid "Can view all Treatment requests" msgstr "" -#: models_treatments.py:479 +#: models_treatments.py:480 msgid "Can view own Treatment request" msgstr "" -#: models_treatments.py:481 +#: models_treatments.py:482 msgid "Can add own Treatment request" msgstr "" -#: models_treatments.py:483 +#: models_treatments.py:484 msgid "Can change own Treatment request" msgstr "" -#: models_treatments.py:485 +#: models_treatments.py:486 msgid "Can delete own Treatment request" msgstr "" -#: models_treatments.py:545 +#: models_treatments.py:546 msgid "Treatment documentation" msgstr "" -#: models_treatments.py:546 +#: models_treatments.py:547 msgid "Treament documentations" msgstr "" -#: models_treatments.py:562 +#: models_treatments.py:563 msgid "Treatment request documentation" msgstr "" -#: models_treatments.py:563 +#: models_treatments.py:564 msgid "Treatment request documentations" msgstr "" @@ -1107,34 +1107,34 @@ msgid "Operation" msgstr "" #: templates/ishtar/sheet_find.html:79 -msgid "Localisation" +msgid "Warehouse" msgstr "" -#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 +#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 msgid "Year - index" msgstr "" -#: templates/ishtar/sheet_find.html:125 +#: templates/ishtar/sheet_find.html:126 msgid "Export as CSV" msgstr "" -#: templates/ishtar/sheet_find.html:125 templates/ishtar/sheet_find.html:166 +#: templates/ishtar/sheet_find.html:126 templates/ishtar/sheet_find.html:167 msgid "CSV" msgstr "" -#: templates/ishtar/sheet_find.html:171 +#: templates/ishtar/sheet_find.html:172 msgid "Associated base finds" msgstr "" -#: templates/ishtar/sheet_find.html:214 +#: templates/ishtar/sheet_find.html:215 msgid "Title" msgstr "" -#: templates/ishtar/sheet_find.html:216 +#: templates/ishtar/sheet_find.html:217 msgid "Authors" msgstr "" -#: templates/ishtar/sheet_find.html:217 +#: templates/ishtar/sheet_find.html:218 msgid "Link" msgstr "" @@ -1147,12 +1147,12 @@ msgid "Find source" msgstr "" #: templates/ishtar/sheet_treatment.html:20 -#: templates/ishtar/sheet_treatmentfile.html:16 +msgctxt "Treatment" msgid "Closed" msgstr "" #: templates/ishtar/sheet_treatment.html:22 -#: templates/ishtar/sheet_treatmentfile.html:18 +msgctxt "Treatment" msgid "Active" msgstr "" @@ -1160,6 +1160,16 @@ msgstr "" msgid "Downstream finds" msgstr "" +#: templates/ishtar/sheet_treatmentfile.html:16 +msgctxt "Treatment request" +msgid "Closed" +msgstr "" + +#: templates/ishtar/sheet_treatmentfile.html:18 +msgctxt "Treatment request" +msgid "Active" +msgstr "" + #: templates/ishtar/sheet_treatmentfilesource.html:4 msgid "Treatment request source" msgstr "" diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index de5d4edd9..5db1dc5d5 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -5,6 +5,7 @@ # Étienne Loks , 2015. #zanata # Valérie-Emma Leroux , 2016. #zanata # Étienne Loks , 2016. #zanata +# Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index 9bd87db70..82deac273 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -7,12 +7,12 @@ msgid "" msgstr "" -#: forms.py:35 forms.py:91 forms.py:156 ishtar_menu.py:39 models.py:60 -#: models.py:88 models.py:156 templates/ishtar/sheet_warehouse.html:4 +#: forms.py:35 forms.py:91 ishtar_menu.py:39 models.py:60 models.py:88 +#: templates/ishtar/sheet_warehouse.html:4 msgid "Warehouse" msgstr "" -#: forms.py:44 forms.py:49 models.py:230 +#: forms.py:44 forms.py:49 models.py:234 msgid "Division" msgstr "" @@ -44,7 +44,7 @@ msgstr "" msgid "Person in charge" msgstr "" -#: forms.py:106 forms.py:161 models.py:51 models.py:161 +#: forms.py:106 forms.py:168 models.py:51 models.py:165 msgid "Comment" msgstr "" @@ -76,60 +76,68 @@ msgstr "" msgid "Would you like to delete this warehouse?" msgstr "" -#: forms.py:150 models.py:169 models.py:228 +#: forms.py:150 models.py:173 models.py:232 #: templates/ishtar/sheet_container.html:4 msgid "Container" msgstr "" -#: forms.py:153 forms.py:213 models.py:127 +#: forms.py:154 forms.py:220 models.py:127 msgid "Ref." msgstr "" -#: forms.py:154 forms.py:212 models.py:130 models.py:159 +#: forms.py:155 forms.py:219 models.py:130 models.py:163 msgid "Container type" msgstr "" -#: forms.py:187 +#: forms.py:157 +msgid "Current location (warehouse)" +msgstr "" + +#: forms.py:163 models.py:160 +msgid "Responsible warehouse" +msgstr "" + +#: forms.py:194 msgid "Index" msgstr "" -#: forms.py:205 +#: forms.py:212 msgid "This ID already exists for this warehouse." msgstr "" -#: forms.py:223 forms.py:229 views.py:127 +#: forms.py:230 forms.py:236 views.py:127 msgid "Container search" msgstr "" -#: forms.py:225 forms.py:231 +#: forms.py:232 forms.py:238 msgid "You should select a container." msgstr "" -#: forms.py:226 +#: forms.py:233 msgid "Add a new container" msgstr "" -#: forms.py:236 ishtar_menu.py:35 views.py:93 +#: forms.py:243 ishtar_menu.py:35 views.py:93 msgid "Packaging" msgstr "" -#: forms.py:242 +#: forms.py:249 msgid "Packager" msgstr "" -#: forms.py:248 +#: forms.py:255 msgid "Date" msgstr "" -#: forms.py:252 +#: forms.py:259 msgid "Packaged finds" msgstr "" -#: forms.py:256 models.py:162 +#: forms.py:263 models.py:166 msgid "Localisation" msgstr "" -#: forms.py:280 forms.py:281 +#: forms.py:287 forms.py:288 msgid "Would you like to delete this container?" msgstr "" @@ -153,7 +161,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:55 models.py:170 templates/ishtar/sheet_warehouse.html:17 +#: ishtar_menu.py:55 models.py:174 templates/ishtar/sheet_warehouse.html:17 msgid "Containers" msgstr "" @@ -233,23 +241,27 @@ msgstr "" msgid "Type" msgstr "" -#: models.py:160 -msgid "Container ref." +#: models.py:157 +msgid "Location (warehouse)" msgstr "" #: models.py:164 +msgid "Container ref." +msgstr "" + +#: models.py:168 msgid "Cached location" msgstr "" -#: models.py:231 +#: models.py:235 msgid "Reference" msgstr "" -#: models.py:234 +#: models.py:238 msgid "Container localisation" msgstr "" -#: models.py:235 +#: models.py:239 msgid "Container localisations" msgstr "" @@ -277,10 +289,14 @@ msgstr "" msgid "Container deletion" msgstr "" -#: templates/ishtar/sheet_container.html:17 +#: templates/ishtar/sheet_container.html:19 msgid "Content" msgstr "" +#: templates/ishtar/sheet_warehouse.html:22 +msgid "Attached containers" +msgstr "" + #: templates/ishtar/wizard/wizard_containerlocalisation.html:5 msgid "" "No division set for this warehouse. Define it to localise container in this " diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 270893b60..2a60902e5 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -5,6 +5,7 @@ # Étienne Loks , 2015. #zanata # Valérie-Emma Leroux , 2016. #zanata # Étienne Loks , 2016. #zanata +# Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" @@ -1865,7 +1866,7 @@ msgid "where the magic happens." msgstr "" #: templates/window.html:40 templates/blocks/JQueryJqGrid.html:28 -#: templates/ishtar/manage_basket.html:9 +#: templates/ishtar/manage_basket.html:12 msgid "Add" msgstr "" @@ -1992,11 +1993,11 @@ msgstr "" msgid "Control file" msgstr "" -#: templates/ishtar/manage_basket.html:7 -msgid "Checking \"Select all\" only select the current page." +#: templates/ishtar/manage_basket.html:9 +msgid "Checking \"Select all\" only selects the current page." msgstr "" -#: templates/ishtar/manage_basket.html:10 +#: templates/ishtar/manage_basket.html:13 msgid "Basket content" msgstr "" diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 04aea6bec..c610a8eb3 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -6,13 +6,15 @@ # Étienne Loks , 2017. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 23:39+0100\n" "PO-Revision-Date: 2017-01-09 01:15-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 5d1df6224..78bbd2eed 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -7,13 +7,15 @@ # Étienne Loks , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 23:39+0100\n" "PO-Revision-Date: 2016-11-15 04:16-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index 949555adc..594880d29 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -5,13 +5,15 @@ # Valérie-Emma Leroux , 2016. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 23:39+0100\n" "PO-Revision-Date: 2016-11-14 05:33-0500\n" "Last-Translator: Copied by Zanata \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Zanata 3.9.6\n" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 976d7aace..3471d8139 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -6,13 +6,15 @@ # Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 23:39+0100\n" "PO-Revision-Date: 2017-01-09 05:29-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -21,7 +23,7 @@ msgid "Context record" msgstr "Unité d'Enregistrement" #: forms.py:121 ishtar_menu.py:32 models_finds.py:466 models_finds.py:791 -#: models_finds.py:800 models_treatments.py:264 +#: models_finds.py:800 models_treatments.py:265 #: templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "Mobilier" @@ -134,7 +136,7 @@ msgstr "Date de vérification" #: forms.py:180 forms_treatments.py:131 forms_treatments.py:418 #: models_finds.py:132 models_finds.py:446 models_treatments.py:122 -#: models_treatments.py:467 +#: models_treatments.py:468 msgid "Comment" msgstr "Commentaires" @@ -168,13 +170,13 @@ msgid "Period" msgstr "Période" #: forms.py:232 forms_treatments.py:137 forms_treatments.py:420 -#: models_finds.py:805 models_treatments.py:125 models_treatments.py:275 -#: templates/ishtar/sheet_find.html:101 templates/ishtar/sheet_find.html:141 +#: models_finds.py:805 models_treatments.py:125 models_treatments.py:276 +#: templates/ishtar/sheet_find.html:102 templates/ishtar/sheet_find.html:142 msgid "Start date" msgstr "Date de début" -#: forms.py:234 models_finds.py:806 models_treatments.py:276 -#: templates/ishtar/sheet_find.html:102 templates/ishtar/sheet_find.html:142 +#: forms.py:234 models_finds.py:806 models_treatments.py:277 +#: templates/ishtar/sheet_find.html:103 templates/ishtar/sheet_find.html:143 msgid "End date" msgstr "Date de fin" @@ -200,7 +202,7 @@ msgstr "ID complet" #: forms.py:266 forms_treatments.py:53 forms_treatments.py:95 #: forms_treatments.py:268 forms_treatments.py:340 forms_treatments.py:390 -#: forms_treatments.py:473 models_treatments.py:98 models_treatments.py:439 +#: forms_treatments.py:473 models_treatments.py:98 models_treatments.py:440 msgid "Year" msgstr "Année" @@ -309,7 +311,7 @@ msgid "Basket" msgstr "Panier" #: forms_treatments.py:51 forms_treatments.py:91 models_treatments.py:94 -#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 +#: templates/ishtar/sheet_find.html:97 templates/ishtar/sheet_find.html:137 msgid "Label" msgstr "Intitulé" @@ -320,13 +322,13 @@ msgstr "Autre réf." #: forms_treatments.py:54 forms_treatments.py:221 forms_treatments.py:269 #: forms_treatments.py:332 forms_treatments.py:341 forms_treatments.py:443 #: forms_treatments.py:474 forms_treatments.py:541 models_treatments.py:100 -#: models_treatments.py:441 +#: models_treatments.py:442 msgid "Index" msgstr "Index" #: forms_treatments.py:55 forms_treatments.py:100 forms_treatments.py:285 #: forms_treatments.py:562 models_treatments.py:56 models_treatments.py:105 -#: models_treatments.py:274 +#: models_treatments.py:275 msgid "Treatment type" msgstr "Type de traitement" @@ -354,7 +356,7 @@ msgstr "Responsable" msgid "Organization" msgstr "Organisation" -#: forms_treatments.py:118 models_treatments.py:110 models_treatments.py:277 +#: forms_treatments.py:118 models_treatments.py:110 models_treatments.py:278 msgid "Location" msgstr "Lieu" @@ -371,7 +373,7 @@ msgid "Goal" msgstr "But" #: forms_treatments.py:139 forms_treatments.py:426 models_treatments.py:126 -#: models_treatments.py:461 +#: models_treatments.py:462 msgid "Closing date" msgstr "Date de clôture" @@ -405,7 +407,7 @@ msgid "Associated request" msgstr "Demande associée" #: forms_treatments.py:250 forms_treatments.py:381 ishtar_menu.py:107 -#: models_treatments.py:472 models_treatments.py:494 models_treatments.py:555 +#: models_treatments.py:473 models_treatments.py:495 models_treatments.py:556 #: wizards.py:183 templates/ishtar/sheet_treatmentfile.html:5 msgid "Treatment request" msgstr "Demande de traitement" @@ -464,7 +466,7 @@ msgstr "Référence interne du traitement" msgid "Modified by" msgstr "Modifié par" -#: forms_treatments.py:338 forms_treatments.py:388 models_treatments.py:446 +#: forms_treatments.py:338 forms_treatments.py:388 models_treatments.py:447 msgid "Name" msgstr "Nom" @@ -473,8 +475,8 @@ msgid "Internal ref." msgstr "Réf. interne" #: forms_treatments.py:342 forms_treatments.py:399 -#: templates/ishtar/sheet_find.html:97 templates/ishtar/sheet_find.html:137 -#: templates/ishtar/sheet_find.html:215 +#: templates/ishtar/sheet_find.html:98 templates/ishtar/sheet_find.html:138 +#: templates/ishtar/sheet_find.html:216 msgid "Type" msgstr "Type" @@ -482,12 +484,12 @@ msgstr "Type" msgid "In charge" msgstr "Responsable" -#: forms_treatments.py:350 forms_treatments.py:407 models_treatments.py:455 +#: forms_treatments.py:350 forms_treatments.py:407 models_treatments.py:456 #: templates/ishtar/sheet_treatmentfile.html:31 msgid "Applicant" msgstr "Demandeur" -#: forms_treatments.py:356 forms_treatments.py:413 models_treatments.py:459 +#: forms_treatments.py:356 forms_treatments.py:413 models_treatments.py:460 #: templates/ishtar/sheet_treatmentfile.html:38 msgid "Applicant organisation" msgstr "Organisation du demandeur" @@ -496,7 +498,7 @@ msgstr "Organisation du demandeur" msgid "Treatment request search" msgstr "Rechercher une demande de traitement" -#: forms_treatments.py:423 models_treatments.py:465 +#: forms_treatments.py:423 models_treatments.py:466 msgid "Reception date" msgstr "Date de réception" @@ -528,8 +530,8 @@ msgstr "Index de la demande de traitement" msgid "Treatment request internal reference" msgstr "Référence interne de la demande de traitement" -#: forms_treatments.py:492 forms_treatments.py:588 models_treatments.py:424 -#: models_treatments.py:447 +#: forms_treatments.py:492 forms_treatments.py:588 models_treatments.py:425 +#: models_treatments.py:449 msgid "Treatment request type" msgstr "Type de demande de traitement" @@ -575,8 +577,8 @@ msgstr "Documentation" msgid "Administrative act" msgstr "Acte administratif" -#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:210 -#: templates/ishtar/sheet_find.html:212 +#: ishtar_menu.py:149 ishtar_menu.py:230 templates/ishtar/sheet_find.html:211 +#: templates/ishtar/sheet_find.html:213 msgid "Documents" msgstr "Documents" @@ -584,8 +586,8 @@ msgstr "Documents" msgid "Source" msgstr "Documentation" -#: ishtar_menu.py:183 models_treatments.py:134 models_treatments.py:266 -#: models_treatments.py:539 templates/ishtar/sheet_treatment.html:5 +#: ishtar_menu.py:183 models_treatments.py:135 models_treatments.py:267 +#: models_treatments.py:540 templates/ishtar/sheet_treatment.html:5 msgid "Treatment" msgstr "Traitement" @@ -650,7 +652,7 @@ msgid "Batch" msgstr "Lot" #: models_finds.py:128 models_finds.py:390 models_treatments.py:120 -#: models_treatments.py:444 +#: models_treatments.py:445 msgid "External ID" msgstr "ID externe" @@ -747,8 +749,8 @@ msgid "Periods" msgstr "Périodes" #: models_finds.py:316 models_finds.py:421 models_treatments.py:127 -#: models_treatments.py:278 templates/ishtar/sheet_find.html:100 -#: templates/ishtar/sheet_find.html:140 +#: models_treatments.py:279 templates/ishtar/sheet_find.html:101 +#: templates/ishtar/sheet_find.html:141 msgid "Container" msgstr "Contenant" @@ -780,7 +782,7 @@ msgstr "Mobilier de base - Intérêt spécifique" msgid "Base find - Discovery date" msgstr "Mobilier de base - Date de découverte" -#: models_finds.py:393 models_treatments.py:40 models_treatments.py:270 +#: models_finds.py:393 models_treatments.py:40 models_treatments.py:271 msgid "Order" msgstr "Ordre" @@ -792,11 +794,11 @@ msgstr "Mesures de conservation à envisager" msgid "Weight unit" msgstr "Unité de poids" -#: models_finds.py:414 templates/ishtar/sheet_find.html:89 +#: models_finds.py:414 templates/ishtar/sheet_find.html:90 msgid "Upstream treatment" msgstr "Traitement amont" -#: models_finds.py:417 templates/ishtar/sheet_find.html:129 +#: models_finds.py:417 templates/ishtar/sheet_find.html:130 msgid "Downstream treatment" msgstr "Traitement aval" @@ -804,7 +806,7 @@ msgstr "Traitement aval" msgid "Collection" msgstr "Collection" -#: models_finds.py:460 models_treatments.py:130 models_treatments.py:468 +#: models_finds.py:460 models_treatments.py:131 models_treatments.py:469 msgid "Cached name" msgstr "Nom en cache" @@ -906,102 +908,102 @@ msgstr "" msgid "Target a basket" msgstr "Cibler un panier" -#: models_treatments.py:135 templates/ishtar/sheet_find.html:86 +#: models_treatments.py:136 templates/ishtar/sheet_find.html:87 #: templates/ishtar/sheet_treatmentfile.html:45 msgid "Treatments" msgstr "Traitements" -#: models_treatments.py:138 +#: models_treatments.py:139 msgid "Can view all Treatments" msgstr "Peut voir tous les Traitements" -#: models_treatments.py:139 +#: models_treatments.py:140 msgid "Can view own Treatment" msgstr "Peut voir son propre Traitement" -#: models_treatments.py:140 +#: models_treatments.py:141 msgid "Can add own Treatment" msgstr "Peut ajouter son propre Traitement" -#: models_treatments.py:141 +#: models_treatments.py:142 msgid "Can change own Treatment" msgstr "Peut modifier son propre Traitement" -#: models_treatments.py:142 +#: models_treatments.py:143 msgid "Can delete own Treatment" msgstr "Peut supprimer son propre Traitement" -#: models_treatments.py:154 +#: models_treatments.py:155 msgid "TREATMENT" msgstr "TRAITEMENT" -#: models_treatments.py:279 templates/ishtar/sheet_find.html:99 -#: templates/ishtar/sheet_find.html:139 +#: models_treatments.py:280 templates/ishtar/sheet_find.html:100 +#: templates/ishtar/sheet_find.html:140 msgid "Doer" msgstr "Opérateur" -#: models_treatments.py:280 models_treatments.py:281 -#: templates/ishtar/sheet_find.html:98 templates/ishtar/sheet_find.html:138 +#: models_treatments.py:281 models_treatments.py:282 +#: templates/ishtar/sheet_find.html:99 templates/ishtar/sheet_find.html:139 msgid "Related finds" msgstr "Mobilier associé" -#: models_treatments.py:413 +#: models_treatments.py:414 msgid "Is upstream" msgstr "Est en amont" -#: models_treatments.py:425 +#: models_treatments.py:426 msgid "Treatment request types" msgstr "Types de demande de traitement" -#: models_treatments.py:442 +#: models_treatments.py:443 msgid "Internal reference" msgstr "Référence interne" -#: models_treatments.py:451 +#: models_treatments.py:452 msgid "Person in charge" msgstr "Personne responsable" -#: models_treatments.py:463 +#: models_treatments.py:464 msgid "Creation date" msgstr "Date de création" -#: models_treatments.py:473 +#: models_treatments.py:474 msgid "Treatment requests" msgstr "Demandes de traitement" -#: models_treatments.py:477 +#: models_treatments.py:478 msgid "Can view all Treatment requests" msgstr "Peut voir toutes les Demandes de traitement" -#: models_treatments.py:479 +#: models_treatments.py:480 msgid "Can view own Treatment request" msgstr "Peut voir sa propre Demande de traitement" -#: models_treatments.py:481 +#: models_treatments.py:482 msgid "Can add own Treatment request" msgstr "Peut ajouter sa propre Demande de traitement" -#: models_treatments.py:483 +#: models_treatments.py:484 msgid "Can change own Treatment request" msgstr "Peut modifier sa propre Demande de traitement" -#: models_treatments.py:485 +#: models_treatments.py:486 msgid "Can delete own Treatment request" msgstr "Peut supprimer sa propre Demande de traitement" -#: models_treatments.py:545 +#: models_treatments.py:546 msgid "Treatment documentation" msgstr "Documentation de traitement" -#: models_treatments.py:546 +#: models_treatments.py:547 msgid "Treament documentations" msgstr "Documentations de traitement" -#: models_treatments.py:562 +#: models_treatments.py:563 msgid "Treatment request documentation" msgstr "Documentation de demande de traitement" -#: models_treatments.py:563 +#: models_treatments.py:564 msgid "Treatment request documentations" msgstr "Documentations de demande de traitement" @@ -1130,34 +1132,34 @@ msgid "Operation" msgstr "Opération" #: templates/ishtar/sheet_find.html:79 -msgid "Localisation" -msgstr "Localisation" +msgid "Warehouse" +msgstr "" -#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:135 +#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:136 msgid "Year - index" msgstr "Année - index" -#: templates/ishtar/sheet_find.html:125 +#: templates/ishtar/sheet_find.html:126 msgid "Export as CSV" msgstr "Export en CSV" -#: templates/ishtar/sheet_find.html:125 templates/ishtar/sheet_find.html:166 +#: templates/ishtar/sheet_find.html:126 templates/ishtar/sheet_find.html:167 msgid "CSV" msgstr "CSV" -#: templates/ishtar/sheet_find.html:171 +#: templates/ishtar/sheet_find.html:172 msgid "Associated base finds" msgstr "Mobilier de base associé" -#: templates/ishtar/sheet_find.html:214 +#: templates/ishtar/sheet_find.html:215 msgid "Title" msgstr "Titre" -#: templates/ishtar/sheet_find.html:216 +#: templates/ishtar/sheet_find.html:217 msgid "Authors" msgstr "Auteurs" -#: templates/ishtar/sheet_find.html:217 +#: templates/ishtar/sheet_find.html:218 msgid "Link" msgstr "Lien" @@ -1170,12 +1172,14 @@ msgid "Find source" msgstr "Documentation associée au mobilier" #: templates/ishtar/sheet_treatment.html:20 -#: templates/ishtar/sheet_treatmentfile.html:16 +#, fuzzy +msgctxt "Treatment" msgid "Closed" msgstr "Clôturé" #: templates/ishtar/sheet_treatment.html:22 -#: templates/ishtar/sheet_treatmentfile.html:18 +#, fuzzy +msgctxt "Treatment" msgid "Active" msgstr "Actif" @@ -1183,6 +1187,18 @@ msgstr "Actif" msgid "Downstream finds" msgstr "Mobilier aval" +#: templates/ishtar/sheet_treatmentfile.html:16 +#, fuzzy +msgctxt "Treatment request" +msgid "Closed" +msgstr "Clôturé" + +#: templates/ishtar/sheet_treatmentfile.html:18 +#, fuzzy +msgctxt "Treatment request" +msgid "Active" +msgstr "Actif" + #: templates/ishtar/sheet_treatmentfilesource.html:4 msgid "Treatment request source" msgstr "Documentation de demande de traitement" @@ -1190,3 +1206,6 @@ msgstr "Documentation de demande de traitement" #: templates/ishtar/sheet_treatmentsource.html:4 msgid "Treatment source" msgstr "Documentation de traitement" + +#~ msgid "Localisation" +#~ msgstr "Localisation" diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index 91f73bdd2..f017ca7d2 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -8,13 +8,15 @@ # Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 23:39+0100\n" "PO-Revision-Date: 2017-01-09 05:30-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -390,8 +392,7 @@ msgstr "" #: forms.py:891 msgid "The excavation end date cannot be before the start date." -msgstr "" -"La date de fin de chantier ne peut être antérieure à la date de début." +msgstr "La date de fin de chantier ne peut être antérieure à la date de début." #: forms.py:919 #, python-format diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index ed1e8e1ec..d57de783c 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -6,22 +6,24 @@ # Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 23:39+0100\n" "PO-Revision-Date: 2017-01-09 05:29-0500\n" "Last-Translator: Valérie-Emma Leroux \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" -#: forms.py:35 forms.py:91 forms.py:156 ishtar_menu.py:39 models.py:60 -#: models.py:88 models.py:156 templates/ishtar/sheet_warehouse.html:4 +#: forms.py:35 forms.py:91 ishtar_menu.py:39 models.py:60 models.py:88 +#: templates/ishtar/sheet_warehouse.html:4 msgid "Warehouse" msgstr "Dépôt" -#: forms.py:44 forms.py:49 models.py:230 +#: forms.py:44 forms.py:49 models.py:234 msgid "Division" msgstr "Division" @@ -53,7 +55,7 @@ msgstr "Rechercher un dépôt" msgid "Person in charge" msgstr "Responsable" -#: forms.py:106 forms.py:161 models.py:51 models.py:161 +#: forms.py:106 forms.py:168 models.py:51 models.py:165 msgid "Comment" msgstr "Commentaires" @@ -85,60 +87,70 @@ msgstr "Téléphone mobile" msgid "Would you like to delete this warehouse?" msgstr "Voulez-vous supprimer ce dépôt ?" -#: forms.py:150 models.py:169 models.py:228 +#: forms.py:150 models.py:173 models.py:232 #: templates/ishtar/sheet_container.html:4 msgid "Container" msgstr "Contenant" -#: forms.py:153 forms.py:213 models.py:127 +#: forms.py:154 forms.py:220 models.py:127 msgid "Ref." msgstr "Réf." -#: forms.py:154 forms.py:212 models.py:130 models.py:159 +#: forms.py:155 forms.py:219 models.py:130 models.py:163 msgid "Container type" msgstr "Type de contenant" -#: forms.py:187 +#: forms.py:157 +#, fuzzy +msgid "Current location (warehouse)" +msgstr "Peut modifier son propre Dépôt" + +#: forms.py:163 models.py:160 +#, fuzzy +msgid "Responsible warehouse" +msgstr "Peut voir son propre Dépôt" + +#: forms.py:194 msgid "Index" msgstr "Index" -#: forms.py:205 +#: forms.py:212 msgid "This ID already exists for this warehouse." msgstr "Cet identifiant existe déjà pour ce dépôt." -#: forms.py:223 forms.py:229 views.py:127 +#: forms.py:230 forms.py:236 views.py:127 msgid "Container search" msgstr "Rechercher un contenant" -#: forms.py:225 forms.py:231 +#: forms.py:232 forms.py:238 msgid "You should select a container." msgstr "Vous devez sélectionner un contenant." -#: forms.py:226 +#: forms.py:233 msgid "Add a new container" msgstr "Ajouter un nouveau contenant" -#: forms.py:236 ishtar_menu.py:35 views.py:93 +#: forms.py:243 ishtar_menu.py:35 views.py:93 msgid "Packaging" msgstr "Conditionnement" -#: forms.py:242 +#: forms.py:249 msgid "Packager" msgstr "Personne assurant le conditionnement" -#: forms.py:248 +#: forms.py:255 msgid "Date" msgstr "Date" -#: forms.py:252 +#: forms.py:259 msgid "Packaged finds" msgstr "Mobilier conditionné" -#: forms.py:256 models.py:162 +#: forms.py:263 models.py:166 msgid "Localisation" msgstr "Localisation" -#: forms.py:280 forms.py:281 +#: forms.py:287 forms.py:288 msgid "Would you like to delete this container?" msgstr "Voulez-vous supprimer ce contenant ?" @@ -162,7 +174,7 @@ msgstr "Modification" msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:55 models.py:170 templates/ishtar/sheet_warehouse.html:17 +#: ishtar_menu.py:55 models.py:174 templates/ishtar/sheet_warehouse.html:17 msgid "Containers" msgstr "Contenants" @@ -242,23 +254,28 @@ msgstr "Localisation précise" msgid "Type" msgstr "Type" -#: models.py:160 +#: models.py:157 +#, fuzzy +msgid "Location (warehouse)" +msgstr "Peut voir son propre Dépôt" + +#: models.py:164 msgid "Container ref." msgstr "Réf. du contenant" -#: models.py:164 +#: models.py:168 msgid "Cached location" msgstr "Lieu - en cache" -#: models.py:231 +#: models.py:235 msgid "Reference" msgstr "Référence" -#: models.py:234 +#: models.py:238 msgid "Container localisation" msgstr "Localisation de contenant" -#: models.py:235 +#: models.py:239 msgid "Container localisations" msgstr "Localisations de contenant" @@ -286,10 +303,15 @@ msgstr "Modifier un contenant" msgid "Container deletion" msgstr "Supprimer un contenant" -#: templates/ishtar/sheet_container.html:17 +#: templates/ishtar/sheet_container.html:19 msgid "Content" msgstr "Contenu" +#: templates/ishtar/sheet_warehouse.html:22 +#, fuzzy +msgid "Attached containers" +msgstr "Ajouter un nouveau contenant" + #: templates/ishtar/wizard/wizard_containerlocalisation.html:5 msgid "" "No division set for this warehouse. Define it to localise container in this " diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index 82736e41b..28e2fd62c 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -8,13 +8,15 @@ # Valérie-Emma Leroux , 2017. #zanata msgid "" msgstr "" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-09 23:39+0100\n" "PO-Revision-Date: 2017-01-09 05:34-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Zanata 3.9.6\n" @@ -1587,8 +1589,7 @@ msgstr "L'équipe %(app_name)s" #: templates/base.html:41 msgid "Searches in the shortcut menu deal with all items." -msgstr "" -"Les recherches dans le menu de raccourci concernent tous les éléments." +msgstr "Les recherches dans le menu de raccourci concernent tous les éléments." #: templates/base.html:42 msgid "Searches in the shortcut menu deal with only your items." @@ -1920,7 +1921,7 @@ msgid "where the magic happens." msgstr "c'est là que la magie opère." #: templates/window.html:40 templates/blocks/JQueryJqGrid.html:28 -#: templates/ishtar/manage_basket.html:9 +#: templates/ishtar/manage_basket.html:12 msgid "Add" msgstr "Ajouter" @@ -2049,11 +2050,12 @@ msgstr "Fichier source" msgid "Control file" msgstr "Fichier de contrôle" -#: templates/ishtar/manage_basket.html:7 -msgid "Checking \"Select all\" only select the current page." +#: templates/ishtar/manage_basket.html:9 +#, fuzzy +msgid "Checking \"Select all\" only selects the current page." msgstr "Cocher « Tout sélectionner » sélectionne seulement la page courante." -#: templates/ishtar/manage_basket.html:10 +#: templates/ishtar/manage_basket.html:13 msgid "Basket content" msgstr "Contenu du panier" -- cgit v1.2.3