summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-10-11 19:04:54 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-10-11 19:04:54 +0200
commit83868ab30af01e444fa46eeeafcb5027a2a4ed37 (patch)
treef6e15f9d597e58122b1786fad748a7f481905e19
parentbf816879ac151913cb45ce51b6136f3eafddfded (diff)
parentf102f5855c878f35a529aa6e1947e7516a1a67fa (diff)
downloadIshtar-83868ab30af01e444fa46eeeafcb5027a2a4ed37.tar.bz2
Ishtar-83868ab30af01e444fa46eeeafcb5027a2a4ed37.zip
Merge branch 'v0.9' into wheezy
-rw-r--r--CHANGES.md11
-rw-r--r--archaeological_context_records/locale/django.pot146
-rw-r--r--archaeological_context_records/models.py7
-rw-r--r--archaeological_context_records/urls.py3
-rw-r--r--archaeological_context_records/views.py1
-rw-r--r--archaeological_files/locale/django.pot124
-rw-r--r--archaeological_files/models.py4
-rw-r--r--archaeological_files/urls.py3
-rw-r--r--archaeological_files/views.py1
-rw-r--r--archaeological_finds/locale/django.pot264
-rw-r--r--archaeological_finds/models.py6
-rw-r--r--archaeological_finds/urls.py3
-rw-r--r--archaeological_finds/views.py1
-rw-r--r--archaeological_operations/locale/django.pot316
-rw-r--r--archaeological_operations/models.py8
-rw-r--r--archaeological_operations/urls.py7
-rw-r--r--archaeological_operations/views.py1
-rw-r--r--archaeological_warehouse/locale/django.pot44
-rw-r--r--ishtar_common/locale/django.pot610
-rw-r--r--ishtar_common/migrations/0016_auto__add_field_ishtaruser_advanced_shortcut_menu.py464
-rw-r--r--ishtar_common/models.py9
-rw-r--r--ishtar_common/static/js/ishtar.js91
-rw-r--r--ishtar_common/static/media/style.css44
-rw-r--r--ishtar_common/templates/base.html10
-rw-r--r--ishtar_common/templates/ishtar/blocks/advanced_shortcut_menu.html38
-rw-r--r--ishtar_common/templates/ishtar/blocks/shortcut_menu.html5
-rw-r--r--ishtar_common/urls.py8
-rw-r--r--ishtar_common/views.py107
-rw-r--r--scripts/2016-09-29-clean-dup-towns-pdl.py51
-rw-r--r--translations/de/ishtar_common.po610
-rw-r--r--translations/fr/archaeological_context_records.po146
-rw-r--r--translations/fr/archaeological_files.po124
-rw-r--r--translations/fr/archaeological_finds.po264
-rw-r--r--translations/fr/archaeological_operations.po316
-rw-r--r--translations/fr/archaeological_warehouse.po44
-rw-r--r--translations/fr/ishtar_common.po616
-rw-r--r--version.py2
37 files changed, 2733 insertions, 1776 deletions
diff --git a/CHANGES.md b/CHANGES.md
index 0ddcccbb7..1f7351e36 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,17 @@
Ishtar changelog
================
+0.98.6 (2016-10-11)
+-------------------
+
+### Features ###
+
+- Shortcut menu: add a new advanced menu with autocomplete search
+
+### Bug fixes ###
+
+- Operation: add a related name for towns
+
0.98.5 (2016-09-24)
-------------------
diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot
index 9c1eeaa93..083f7e455 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:133 wizards.py:77
+#: forms.py:47 forms.py:51 models.py:143 wizards.py:77
msgid "Operation"
msgstr ""
-#: forms.py:59 forms.py:137 models.py:135
+#: forms.py:59 forms.py:137 models.py:145
#: templates/ishtar/sheet_contextrecord.html:65
msgid "ID"
msgstr ""
@@ -36,7 +36,7 @@ msgstr ""
msgid "Search within operation relations"
msgstr ""
-#: forms.py:77 forms.py:230 models.py:51
+#: forms.py:77 forms.py:230 models.py:55
msgid "Period"
msgstr ""
@@ -52,7 +52,7 @@ msgstr ""
msgid "Search within relations"
msgstr ""
-#: forms.py:111 forms.py:335 views.py:125
+#: forms.py:111 forms.py:335 views.py:126
msgid "Context record search"
msgstr ""
@@ -64,41 +64,41 @@ msgstr ""
msgid "General"
msgstr ""
-#: forms.py:136 models.py:121 models.py:131
+#: forms.py:136 models.py:131 models.py:141
#: templates/ishtar/sheet_contextrecord.html:69
msgid "Parcel"
msgstr ""
-#: forms.py:139 models.py:136 templates/ishtar/sheet_contextrecord.html:25
+#: forms.py:139 models.py:146 templates/ishtar/sheet_contextrecord.html:25
#: templates/ishtar/sheet_contextrecord.html:68
msgid "Description"
msgstr ""
-#: forms.py:141 models.py:137
+#: forms.py:141 models.py:147
msgid "General comment"
msgstr ""
-#: forms.py:143 models.py:141
+#: forms.py:143 models.py:151
msgid "Length (m)"
msgstr ""
-#: forms.py:144 models.py:142
+#: forms.py:144 models.py:152
msgid "Width (m)"
msgstr ""
-#: forms.py:145 models.py:143
+#: forms.py:145 models.py:153
msgid "Thickness (m)"
msgstr ""
-#: forms.py:146 models.py:145
+#: forms.py:146 models.py:155
msgid "Depth (m)"
msgstr ""
-#: forms.py:147 models.py:153
+#: forms.py:147 models.py:163
msgid "Unit"
msgstr ""
-#: forms.py:149 models.py:147
+#: forms.py:149 models.py:157
msgid "Location"
msgstr ""
@@ -117,27 +117,27 @@ msgstr ""
msgid "This ID already exists for this operation."
msgstr ""
-#: forms.py:225 forms.py:252 models.py:62
+#: forms.py:225 forms.py:252 models.py:66
msgid "Dating"
msgstr ""
-#: forms.py:231 models.py:52
+#: forms.py:231 models.py:56
msgid "Start date"
msgstr ""
-#: forms.py:232 models.py:53 models.py:140
+#: forms.py:232 models.py:57 models.py:150
msgid "End date"
msgstr ""
-#: forms.py:233 models.py:56
+#: forms.py:233 models.py:60
msgid "Quality"
msgstr ""
-#: forms.py:234 models.py:38 models.py:54
+#: forms.py:234 models.py:38 models.py:58
msgid "Dating type"
msgstr ""
-#: forms.py:261 ishtar_menu.py:29 models.py:373
+#: forms.py:261 ishtar_menu.py:29 models.py:384
msgid "Context record"
msgstr ""
@@ -145,7 +145,7 @@ msgstr ""
msgid "Relations"
msgstr ""
-#: forms.py:286 forms.py:296 models.py:158
+#: forms.py:286 forms.py:296 models.py:168
#: templates/ishtar/sheet_contextrecord.html:37
msgid "Interpretation"
msgstr ""
@@ -154,35 +154,35 @@ msgstr ""
msgid "Comments on dating"
msgstr ""
-#: forms.py:292 models.py:155
+#: forms.py:292 models.py:165
msgid "Has furniture?"
msgstr ""
-#: forms.py:294 models.py:157
+#: forms.py:294 models.py:167
msgid "Filling"
msgstr ""
-#: forms.py:298 models.py:178
+#: forms.py:298 models.py:188
msgid "Activity"
msgstr ""
-#: forms.py:300 models.py:176
+#: forms.py:300 models.py:186
msgid "Identification"
msgstr ""
-#: forms.py:302 models.py:161
+#: forms.py:302 models.py:171
msgid "TAQ"
msgstr ""
-#: forms.py:303 models.py:165
+#: forms.py:303 models.py:175
msgid "Estimated TAQ"
msgstr ""
-#: forms.py:305 models.py:168
+#: forms.py:305 models.py:178
msgid "TPQ"
msgstr ""
-#: forms.py:306 models.py:172
+#: forms.py:306 models.py:182
msgid "Estimated TPQ"
msgstr ""
@@ -258,188 +258,188 @@ msgstr ""
msgid "Dating types"
msgstr ""
-#: models.py:45
+#: models.py:47
msgid "Dating quality"
msgstr ""
-#: models.py:46
+#: models.py:48
msgid "Dating qualities"
msgstr ""
-#: models.py:58
+#: models.py:62
msgid "Precise dating"
msgstr ""
-#: models.py:63
+#: models.py:67
msgid "Datings"
msgstr ""
-#: models.py:74 models.py:88 models.py:100
+#: models.py:78 models.py:94 models.py:108
msgid "Order"
msgstr ""
-#: models.py:75
+#: models.py:79
msgid "Parent unit"
msgstr ""
-#: models.py:79
+#: models.py:83
msgid "Unit Type"
msgstr ""
-#: models.py:80
+#: models.py:84
msgid "Unit Types"
msgstr ""
-#: models.py:91
+#: models.py:97
msgid "Activity Type"
msgstr ""
-#: models.py:92
+#: models.py:98
msgid "Activity Types"
msgstr ""
-#: models.py:103
+#: models.py:111
msgid "Identification Type"
msgstr ""
-#: models.py:104
+#: models.py:112
msgid "Identification Types"
msgstr ""
-#: models.py:128
+#: models.py:138
msgid "External ID"
msgstr ""
-#: models.py:130
+#: models.py:140
msgid "External ID is set automatically"
msgstr ""
-#: models.py:138
+#: models.py:148
msgid "Date d'ouverture"
msgstr ""
-#: models.py:148
+#: models.py:158
msgid "A short description of the location of the context record"
msgstr ""
-#: models.py:151
+#: models.py:161
msgid "Comment on datings"
msgstr ""
-#: models.py:162
+#: models.py:172
msgid ""
"\"Terminus Ante Quem\" the context record can't have been created after this "
"date"
msgstr ""
-#: models.py:166
+#: models.py:176
msgid "Estimation of a \"Terminus Ante Quem\""
msgstr ""
-#: models.py:169
+#: models.py:179
msgid ""
"\"Terminus Post Quem\" the context record can't have been created before "
"this date"
msgstr ""
-#: models.py:173
+#: models.py:183
msgid "Estimation of a \"Terminus Post Quem\""
msgstr ""
-#: models.py:181
+#: models.py:191
msgid "Point"
msgstr ""
-#: models.py:182
+#: models.py:192
msgid "Polygon"
msgstr ""
-#: models.py:183
+#: models.py:193
msgid "Cached name"
msgstr ""
-#: models.py:187 models.py:188 templates/ishtar/sheet_contextrecord.html:4
+#: models.py:197 models.py:198 templates/ishtar/sheet_contextrecord.html:4
msgid "Context Record"
msgstr ""
-#: models.py:190
+#: models.py:200
msgid "Can view all Context Records"
msgstr ""
-#: models.py:192
+#: models.py:202
msgid "Can view own Context Record"
msgstr ""
-#: models.py:194
+#: models.py:204
msgid "Can add own Context Record"
msgstr ""
-#: models.py:196
+#: models.py:206
msgid "Can change own Context Record"
msgstr ""
-#: models.py:198
+#: models.py:208
msgid "Can delete own Context Record"
msgstr ""
-#: models.py:208
+#: models.py:218
msgctxt "short"
msgid "Context record"
msgstr ""
-#: models.py:339
+#: models.py:350
msgid "Inverse relation"
msgstr ""
-#: models.py:343 templates/ishtar/sheet_contextrecord.html:64
+#: models.py:354 templates/ishtar/sheet_contextrecord.html:64
msgid "Relation type"
msgstr ""
-#: models.py:344
+#: models.py:355
msgid "Relation types"
msgstr ""
-#: models.py:357
+#: models.py:368
msgid "Record relation"
msgstr ""
-#: models.py:358
+#: models.py:369
msgid "Record relations"
msgstr ""
-#: models.py:370
+#: models.py:381
msgid "Context record documentation"
msgstr ""
-#: models.py:371
+#: models.py:382
msgid "Context record documentations"
msgstr ""
-#: views.py:135
+#: views.py:136
msgid "New context record"
msgstr ""
-#: views.py:146
+#: views.py:147
msgid "Context record modification"
msgstr ""
-#: views.py:160
+#: views.py:161
msgid "Context record deletion"
msgstr ""
-#: views.py:165
+#: views.py:166
msgid "Context record: source search"
msgstr ""
-#: views.py:173
+#: views.py:174
msgid "Context record: new source"
msgstr ""
-#: views.py:181
+#: views.py:182
msgid "Context record: source modification"
msgstr ""
-#: views.py:196
+#: views.py:197
msgid "Context record: source deletion"
msgstr ""
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index af042bf45..5dc943275 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -236,12 +236,13 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
Q(history_creator=user)
@classmethod
- def get_owns(cls, user, menu_filtr=None):
+ def get_owns(cls, user, menu_filtr=None, limit=None):
replace_query = {}
if menu_filtr:
replace_query = {'operation': menu_filtr}
- owns = super(ContextRecord, cls).get_owns(user,
- replace_query=replace_query)
+ owns = super(ContextRecord, cls).get_owns(
+ user, replace_query=replace_query,
+ limit=limit)
return sorted(owns, key=lambda x: x.cached_label)
def full_label(self):
diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py
index 8e218102d..a25559e29 100644
--- a/archaeological_context_records/urls.py
+++ b/archaeological_context_records/urls.py
@@ -89,6 +89,9 @@ urlpatterns += patterns(
url(r'get-contextrecord-full/(?P<type>.+)?$',
'get_contextrecord', name='get-contextrecord-full',
kwargs={'full': True}),
+ url(r'get-contextrecord-shortcut/(?P<type>.+)?$',
+ 'get_contextrecord', name='get-contextrecord-shortcut',
+ kwargs={'full': 'shortcut'}),
url(r'show-contextrecordsource(?:/(?P<pk>.+))?/(?P<type>.+)?$',
'show_contextrecordsource', name=models.ContextRecordSource.SHOW_URL),
url(r'get-contexrecordsource/(?P<type>.+)?$',
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py
index 5c8bb63cc..bc95473e6 100644
--- a/archaeological_context_records/views.py
+++ b/archaeological_context_records/views.py
@@ -46,6 +46,7 @@ contextrecord_extra_keys = {
'parcel_2': 'operation__parcels__public_domain',
'label': 'label__icontains',
'archaeological_sites': 'operation__archaeological_sites__pk',
+ 'cached_label': 'cached_label__icontains',
}
diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot
index 90cecbb4f..239526e90 100644
--- a/archaeological_files/locale/django.pot
+++ b/archaeological_files/locale/django.pot
@@ -9,11 +9,11 @@ msgid ""
msgstr ""
#: forms.py:52 forms.py:212 forms.py:257 forms.py:404 forms.py:431
-#: models.py:78 templates/ishtar/sheet_file.html:146
+#: models.py:84 templates/ishtar/sheet_file.html:146
msgid "Year"
msgstr ""
-#: forms.py:53 forms.py:217 forms.py:259 models.py:81
+#: forms.py:53 forms.py:217 forms.py:259 models.py:87
msgid "Numeric reference"
msgstr ""
@@ -25,7 +25,7 @@ msgstr ""
msgid "Parcel (section/number/public domain)"
msgstr ""
-#: forms.py:60 forms.py:415 forms.py:442 models.py:514
+#: forms.py:60 forms.py:415 forms.py:442 models.py:519
msgid "Department"
msgstr ""
@@ -33,7 +33,7 @@ msgstr ""
msgid "File name"
msgstr ""
-#: forms.py:62 forms.py:158 forms.py:223 models.py:89
+#: forms.py:62 forms.py:158 forms.py:223 models.py:95
msgid "File type"
msgstr ""
@@ -45,15 +45,15 @@ msgstr ""
msgid "Saisine type"
msgstr ""
-#: forms.py:65 forms.py:311 models.py:58 models.py:120
+#: forms.py:65 forms.py:311 models.py:60 models.py:126
msgid "Permit type"
msgstr ""
-#: forms.py:67 forms.py:314 models.py:121
+#: forms.py:67 forms.py:314 models.py:127
msgid "Permit reference"
msgstr ""
-#: forms.py:68 forms.py:229 forms.py:372 models.py:150
+#: forms.py:68 forms.py:229 forms.py:372 models.py:156
#: templates/ishtar/sheet_file.html:99
msgid "Comment"
msgstr ""
@@ -62,7 +62,7 @@ msgstr ""
msgid "In charge"
msgstr ""
-#: forms.py:77 forms.py:289 forms.py:453 models.py:96
+#: forms.py:77 forms.py:289 forms.py:453 models.py:102
msgid "General contractor"
msgstr ""
@@ -86,11 +86,11 @@ msgstr ""
msgid "You should select a file."
msgstr ""
-#: forms.py:146 forms.py:221 models.py:129
+#: forms.py:146 forms.py:221 models.py:135
msgid "Creation date"
msgstr ""
-#: forms.py:147 forms.py:324 models.py:131
+#: forms.py:147 forms.py:324 models.py:137
msgid "Reception date"
msgstr ""
@@ -118,23 +118,23 @@ msgstr ""
msgid "General"
msgstr ""
-#: forms.py:206 models.py:91
+#: forms.py:206 models.py:97
msgid "Person in charge"
msgstr ""
-#: forms.py:220 models.py:88
+#: forms.py:220 models.py:94
msgid "Name"
msgstr ""
-#: forms.py:225 models.py:133
+#: forms.py:225 models.py:139
msgid "Related file"
msgstr ""
-#: forms.py:233 models.py:141
+#: forms.py:233 models.py:147
msgid "Total surface (m2)"
msgstr ""
-#: forms.py:236 models.py:147
+#: forms.py:236 models.py:153
msgid "Main address"
msgstr ""
@@ -155,11 +155,11 @@ msgstr ""
msgid "Preventive informations"
msgstr ""
-#: forms.py:301 models.py:108
+#: forms.py:301 models.py:114
msgid "Responsible for town planning service"
msgstr ""
-#: forms.py:317 models.py:144
+#: forms.py:317 models.py:150
msgid "Total developed surface (m2)"
msgstr ""
@@ -168,15 +168,15 @@ msgstr ""
msgid "Research archaeology"
msgstr ""
-#: forms.py:348 models.py:153 templates/ishtar/sheet_file.html:90
+#: forms.py:348 models.py:159 templates/ishtar/sheet_file.html:90
msgid "Departments"
msgstr ""
-#: forms.py:359 models.py:162
+#: forms.py:359 models.py:168
msgid "Scientist in charge"
msgstr ""
-#: forms.py:361 models.py:156 templates/ishtar/sheet_file.html:92
+#: forms.py:361 models.py:162 templates/ishtar/sheet_file.html:92
msgid "Requested operation type"
msgstr ""
@@ -184,11 +184,11 @@ msgstr ""
msgid "Lead organization"
msgstr ""
-#: forms.py:379 models.py:166 templates/ishtar/sheet_file.html:97
+#: forms.py:379 models.py:172 templates/ishtar/sheet_file.html:97
msgid "Classified area"
msgstr ""
-#: forms.py:381 models.py:168 templates/ishtar/sheet_file.html:98
+#: forms.py:381 models.py:174 templates/ishtar/sheet_file.html:98
msgid "Protected area"
msgstr ""
@@ -248,7 +248,7 @@ msgstr ""
msgid "File permit reference"
msgstr ""
-#: ishtar_menu.py:33 models.py:190 templates/ishtar/sheet_file.html:4
+#: ishtar_menu.py:33 models.py:196 templates/ishtar/sheet_file.html:4
msgid "Archaeological file"
msgstr ""
@@ -292,7 +292,7 @@ msgstr ""
msgid "General informations"
msgstr ""
-#: ishtar_menu.py:87 models.py:191
+#: ishtar_menu.py:87 models.py:197
#: templates/ishtar/dashboards/dashboard_file.html:7
msgid "Archaeological files"
msgstr ""
@@ -305,155 +305,155 @@ msgstr ""
msgid "Archaeological file types"
msgstr ""
-#: models.py:59
+#: models.py:61
msgid "Permit types"
msgstr ""
-#: models.py:64
+#: models.py:68
msgid "Delay (in days)"
msgstr ""
-#: models.py:82
+#: models.py:88
msgid "Internal reference"
msgstr ""
-#: models.py:84
+#: models.py:90
msgid "External ID"
msgstr ""
-#: models.py:87
+#: models.py:93
msgid "External ID is set automatically"
msgstr ""
-#: models.py:99
+#: models.py:105
msgid "General contractor (raw)"
msgstr ""
-#: models.py:103
+#: models.py:109
msgid "General contractor organization"
msgstr ""
-#: models.py:111
+#: models.py:117
msgid "Town planning service (raw)"
msgstr ""
-#: models.py:117
+#: models.py:123
msgid "Town planning service organization"
msgstr ""
-#: models.py:123
+#: models.py:129
msgid "Closing date"
msgstr ""
-#: models.py:124
+#: models.py:130
msgid "Town"
msgstr ""
-#: models.py:126
+#: models.py:132
msgid "Towns"
msgstr ""
-#: models.py:139
+#: models.py:145
msgid "Instruction deadline"
msgstr ""
-#: models.py:145
+#: models.py:151
msgid "Locality"
msgstr ""
-#: models.py:148
+#: models.py:154
msgid "Main address - postal code"
msgstr ""
-#: models.py:158 templates/ishtar/sheet_file.html:93
+#: models.py:164 templates/ishtar/sheet_file.html:93
msgid "Organization"
msgstr ""
-#: models.py:163
+#: models.py:169
msgid "Research archaeology comment"
msgstr ""
-#: models.py:177
+#: models.py:183
msgid "Cached name"
msgstr ""
-#: models.py:178
+#: models.py:184
msgid "Imported line"
msgstr ""
-#: models.py:193
+#: models.py:199
msgid "Can view all Archaelogical files"
msgstr ""
-#: models.py:194
+#: models.py:200
msgid "Can view own Archaelogical file"
msgstr ""
-#: models.py:195
+#: models.py:201
msgid "Can add own Archaelogical file"
msgstr ""
-#: models.py:197
+#: models.py:203
msgid "Can change own Archaelogical file"
msgstr ""
-#: models.py:199
+#: models.py:205
msgid "Can delete own Archaelogical file"
msgstr ""
-#: models.py:200
+#: models.py:206
msgid "Can close File"
msgstr ""
-#: models.py:206
+#: models.py:212
msgid "FILE"
msgstr ""
-#: models.py:375
+#: models.py:380
msgid "Multi-town"
msgstr ""
-#: models.py:381
+#: models.py:386
msgid "No town"
msgstr ""
-#: models.py:513
+#: models.py:518
msgid "File"
msgstr ""
-#: views.py:159
+#: views.py:160
msgid "File search"
msgstr ""
-#: views.py:168
+#: views.py:169
msgid "New file"
msgstr ""
-#: views.py:187
+#: views.py:188
msgid "File modification"
msgstr ""
-#: views.py:210
+#: views.py:211
msgid "File closing"
msgstr ""
-#: views.py:215
+#: views.py:216
msgid "File deletion"
msgstr ""
-#: views.py:222
+#: views.py:223
msgid "File: search administrative act"
msgstr ""
-#: views.py:231
+#: views.py:232
msgid "File: new administrative act"
msgstr ""
-#: views.py:241
+#: views.py:242
msgid "File: administrative act modification"
msgstr ""
-#: views.py:265
+#: views.py:266
msgid "File: administrative act deletion"
msgstr ""
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index b116d1f1c..3721e4d3d 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -340,8 +340,8 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
return cls
@classmethod
- def get_owns(cls, user, menu_filtr=None):
- owns = super(File, cls).get_owns(user)
+ def get_owns(cls, user, menu_filtr=None, limit=None):
+ owns = super(File, cls).get_owns(user, limit=limit)
return sorted(owns, key=lambda x: x.cached_label)
def get_values(self, prefix=''):
diff --git a/archaeological_files/urls.py b/archaeological_files/urls.py
index c6b932fec..b762a54b3 100644
--- a/archaeological_files/urls.py
+++ b/archaeological_files/urls.py
@@ -75,6 +75,9 @@ urlpatterns += patterns(
name='get-file'),
url(r'get-file-full/(?P<type>.+)?$', 'get_file',
name='get-file-full', kwargs={'full': True}),
+ url(r'get-file-shortcut/(?P<type>.+)?$',
+ 'get_file', name='get-file-shortcut',
+ kwargs={'full': 'shortcut'}),
url(r'get-administrativeactfile/(?P<type>.+)?$',
'get_administrativeactfile', name='get-administrativeactfile'),
url(r'show-file(?:/(?P<pk>.+))?/(?P<type>.+)?$', 'show_file',
diff --git a/archaeological_files/views.py b/archaeological_files/views.py
index e457c2ce7..a8053214f 100644
--- a/archaeological_files/views.py
+++ b/archaeological_files/views.py
@@ -91,6 +91,7 @@ get_file = get_item(
'towns__numero_insee__startswith':
'towns__numero_insee__startswith',
'name': 'name__icontains',
+ 'cached_label': 'cached_label__icontains',
'comment': 'comment__icontains',
'permit_reference': 'permit_reference__icontains',
'general_contractor__attached_to':
diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot
index 9713ecd3c..b11e47a36 100644
--- a/archaeological_finds/locale/django.pot
+++ b/archaeological_finds/locale/django.pot
@@ -12,29 +12,29 @@ msgstr ""
msgid "Context record"
msgstr ""
-#: forms.py:83 ishtar_menu.py:31 models.py:387 models.py:671 models.py:769
-#: models.py:913 templates/ishtar/sheet_find.html:5
+#: forms.py:83 ishtar_menu.py:31 models.py:399 models.py:685 models.py:785
+#: models.py:929 templates/ishtar/sheet_find.html:5
msgid "Find"
msgstr ""
-#: forms.py:94 forms.py:218 forms.py:425 models.py:115 models.py:324
+#: forms.py:94 forms.py:218 forms.py:425 models.py:127 models.py:336
msgid "Free ID"
msgstr ""
-#: forms.py:96 models.py:373
+#: forms.py:96 models.py:385
msgid "Previous ID"
msgstr ""
-#: forms.py:97 forms.py:250 forms.py:591 models.py:119 models.py:325
-#: models.py:703
+#: forms.py:97 forms.py:250 forms.py:591 models.py:131 models.py:337
+#: models.py:719
msgid "Description"
msgstr ""
-#: forms.py:100 forms.py:252 models.py:130
+#: forms.py:100 forms.py:252 models.py:142
msgid "Batch/object"
msgstr ""
-#: forms.py:102 models.py:353
+#: forms.py:102 models.py:365
msgid "Is complete?"
msgstr ""
@@ -42,83 +42,83 @@ msgstr ""
msgid "Material type"
msgstr ""
-#: forms.py:106 forms.py:244 models.py:60 models.py:329
+#: forms.py:106 forms.py:244 models.py:62 models.py:341
msgid "Conservatory state"
msgstr ""
-#: forms.py:109 models.py:331
+#: forms.py:109 models.py:343
msgid "Conservatory comment"
msgstr ""
-#: forms.py:112 models.py:92 models.py:356
+#: forms.py:112 models.py:102 models.py:368
msgid "Object types"
msgstr ""
-#: forms.py:114 forms.py:243 models.py:67
+#: forms.py:114 forms.py:243 models.py:71
msgid "Preservation type"
msgstr ""
-#: forms.py:117 forms.py:246 models.py:358
+#: forms.py:117 forms.py:246 models.py:370
msgid "Integrity / interest"
msgstr ""
-#: forms.py:120 forms.py:248 models.py:361
+#: forms.py:120 forms.py:248 models.py:373
msgid "Remarkability"
msgstr ""
-#: forms.py:122 models.py:363
+#: forms.py:122 models.py:375
msgid "Length (cm)"
msgstr ""
-#: forms.py:123 models.py:364
+#: forms.py:123 models.py:376
msgid "Width (cm)"
msgstr ""
-#: forms.py:124 models.py:365
+#: forms.py:124 models.py:377
msgid "Height (cm)"
msgstr ""
-#: forms.py:125 models.py:366
+#: forms.py:125 models.py:378
msgid "Diameter (cm)"
msgstr ""
-#: forms.py:126 forms.py:430 models.py:336
+#: forms.py:126 forms.py:430 models.py:348
msgid "Volume (l)"
msgstr ""
-#: forms.py:127 forms.py:431 models.py:337
+#: forms.py:127 forms.py:431 models.py:349
msgid "Weight (g)"
msgstr ""
-#: forms.py:129 models.py:367
+#: forms.py:129 models.py:379
msgid "Dimensions comment"
msgstr ""
-#: forms.py:130 forms.py:432 models.py:340
+#: forms.py:130 forms.py:432 models.py:352
msgid "Find number"
msgstr ""
-#: forms.py:131 models.py:369
+#: forms.py:131 models.py:381
msgid "Mark"
msgstr ""
-#: forms.py:132 forms.py:254 models.py:375
+#: forms.py:132 forms.py:254 models.py:387
msgid "Check"
msgstr ""
-#: forms.py:134 models.py:377
+#: forms.py:134 models.py:389
msgid "Check date"
msgstr ""
-#: forms.py:135 models.py:120 models.py:370 models.py:704
+#: forms.py:135 models.py:132 models.py:382 models.py:720
msgid "Comment"
msgstr ""
-#: forms.py:138 models.py:371
+#: forms.py:138 models.py:383
msgid "Comment on dating"
msgstr ""
-#: forms.py:139 models.py:379
+#: forms.py:139 models.py:391
msgid "Estimated value"
msgstr ""
@@ -133,7 +133,7 @@ msgid ""
"p>"
msgstr ""
-#: forms.py:181 forms.py:212 models.py:348
+#: forms.py:181 forms.py:212 models.py:360
msgid "Dating"
msgstr ""
@@ -141,12 +141,12 @@ msgstr ""
msgid "Period"
msgstr ""
-#: forms.py:187 forms.py:593 models.py:717 models.py:782 models.py:918
+#: forms.py:187 forms.py:593 models.py:733 models.py:798 models.py:934
#: templates/ishtar/sheet_find.html:85 templates/ishtar/sheet_find.html:114
msgid "Start date"
msgstr ""
-#: forms.py:189 forms.py:595 models.py:718 models.py:783 models.py:919
+#: forms.py:189 forms.py:595 models.py:734 models.py:799 models.py:935
#: templates/ishtar/sheet_find.html:86 templates/ishtar/sheet_find.html:115
msgid "End date"
msgstr ""
@@ -163,11 +163,11 @@ msgstr ""
msgid "Precise dating"
msgstr ""
-#: forms.py:216 models.py:138
+#: forms.py:216 models.py:150
msgid "Short ID"
msgstr ""
-#: forms.py:217 models.py:141
+#: forms.py:217 models.py:153
msgid "Complete ID"
msgstr ""
@@ -191,7 +191,7 @@ msgstr ""
msgid "Search within operation relations"
msgstr ""
-#: forms.py:241 models.py:91
+#: forms.py:241 models.py:101
msgid "Object type"
msgstr ""
@@ -199,7 +199,7 @@ msgstr ""
msgid "Has an image?"
msgstr ""
-#: forms.py:297 forms.py:310 views.py:132
+#: forms.py:297 forms.py:310 views.py:133
msgid "Find search"
msgstr ""
@@ -207,7 +207,7 @@ msgstr ""
msgid "Upstream finds"
msgstr ""
-#: forms.py:326 models.py:388
+#: forms.py:326 models.py:400
msgid "Finds"
msgstr ""
@@ -283,16 +283,16 @@ msgstr ""
msgid "Base treatment"
msgstr ""
-#: forms.py:578 models.py:693 models.py:706 models.py:781
+#: forms.py:578 models.py:707 models.py:722 models.py:797
msgid "Treatment type"
msgstr ""
-#: forms.py:580 models.py:715 models.py:786
+#: forms.py:580 models.py:731 models.py:802
#: templates/ishtar/sheet_find.html:83 templates/ishtar/sheet_find.html:112
msgid "Doer"
msgstr ""
-#: forms.py:586 models.py:708 models.py:784
+#: forms.py:586 models.py:724 models.py:800
msgid "Location"
msgstr ""
@@ -344,377 +344,377 @@ msgstr ""
msgid "Parent material"
msgstr ""
-#: models.py:51 models.py:327
+#: models.py:51 models.py:339
msgid "Material types"
msgstr ""
-#: models.py:57
+#: models.py:59
msgid "Parent conservatory state"
msgstr ""
-#: models.py:61
+#: models.py:63
msgid "Conservatory states"
msgstr ""
-#: models.py:68
+#: models.py:72
msgid "Preservation types"
msgstr ""
-#: models.py:74
+#: models.py:80
msgid "Integrity / interest type"
msgstr ""
-#: models.py:75
+#: models.py:81
msgid "Integrity / interest types"
msgstr ""
-#: models.py:81
+#: models.py:89
msgid "Remarkability type"
msgstr ""
-#: models.py:82
+#: models.py:90
msgid "Remarkability types"
msgstr ""
-#: models.py:88
+#: models.py:98
msgid "Parent"
msgstr ""
-#: models.py:107
+#: models.py:119
msgid "Unknow"
msgstr ""
-#: models.py:108
+#: models.py:120
msgid "Object"
msgstr ""
-#: models.py:109
+#: models.py:121
msgid "Batch"
msgstr ""
-#: models.py:116 models.py:320 models.py:699
+#: models.py:128 models.py:332 models.py:715
msgid "External ID"
msgstr ""
-#: models.py:118 models.py:322
+#: models.py:130 models.py:334
msgid "External ID is set automatically"
msgstr ""
-#: models.py:122
+#: models.py:134
msgid "Topographic localisation"
msgstr ""
-#: models.py:123
+#: models.py:135
msgid "Special interest"
msgstr ""
-#: models.py:127
+#: models.py:139
msgid "Context Record"
msgstr ""
-#: models.py:128
+#: models.py:140
msgid "Discovery date"
msgstr ""
-#: models.py:133
+#: models.py:145
msgid "Material index"
msgstr ""
-#: models.py:134
+#: models.py:146
msgid "Point"
msgstr ""
-#: models.py:135
+#: models.py:147
msgid "Line"
msgstr ""
-#: models.py:136
+#: models.py:148
msgid "Polygon"
msgstr ""
-#: models.py:139 models.py:142
+#: models.py:151 models.py:154
msgid "Cached value - do not edit"
msgstr ""
-#: models.py:147 models.py:318
+#: models.py:159 models.py:330
msgid "Base find"
msgstr ""
-#: models.py:148
+#: models.py:160
msgid "Base finds"
msgstr ""
-#: models.py:150
+#: models.py:162
msgid "Can view all Base finds"
msgstr ""
-#: models.py:151
+#: models.py:163
msgid "Can view own Base find"
msgstr ""
-#: models.py:152
+#: models.py:164
msgid "Can add own Base find"
msgstr ""
-#: models.py:153
+#: models.py:165
msgid "Can change own Base find"
msgstr ""
-#: models.py:154
+#: models.py:166
msgid "Can delete own Base find"
msgstr ""
-#: models.py:263
+#: models.py:275
msgid "g"
msgstr ""
-#: models.py:264
+#: models.py:276
msgid "kg"
msgstr ""
-#: models.py:266
+#: models.py:278
msgid "Not checked"
msgstr ""
-#: models.py:267
+#: models.py:279
msgid "Checked but incorrect"
msgstr ""
-#: models.py:268
+#: models.py:280
msgid "Checked and correct"
msgstr ""
-#: models.py:308
+#: models.py:320
msgid "Base find - Short ID"
msgstr ""
-#: models.py:309
+#: models.py:321
msgid "Base find - Complete ID"
msgstr ""
-#: models.py:310
+#: models.py:322
msgid "Base find - Comment"
msgstr ""
-#: models.py:311
+#: models.py:323
msgid "Base find - Description"
msgstr ""
-#: models.py:312
+#: models.py:324
msgid "Base find - Topographic localisation"
msgstr ""
-#: models.py:314
+#: models.py:326
msgid "Base find - Special interest"
msgstr ""
-#: models.py:315
+#: models.py:327
msgid "Base find - Discovery date"
msgstr ""
-#: models.py:323 models.py:775
+#: models.py:335 models.py:791
msgid "Order"
msgstr ""
-#: models.py:334
+#: models.py:346
msgid "Type of preservation to consider"
msgstr ""
-#: models.py:338
+#: models.py:350
msgid "Weight unit"
msgstr ""
-#: models.py:344 templates/ishtar/sheet_find.html:76
+#: models.py:356 templates/ishtar/sheet_find.html:76
msgid "Upstream treatment"
msgstr ""
-#: models.py:347 templates/ishtar/sheet_find.html:105
+#: models.py:359 templates/ishtar/sheet_find.html:105
msgid "Downstream treatment"
msgstr ""
-#: models.py:351 models.py:701 models.py:785
+#: models.py:363 models.py:717 models.py:801
#: templates/ishtar/sheet_find.html:84 templates/ishtar/sheet_find.html:113
msgid "Container"
msgstr ""
-#: models.py:381
+#: models.py:393
msgid "Cached name"
msgstr ""
-#: models.py:390
+#: models.py:402
msgid "Can view all Finds"
msgstr ""
-#: models.py:391
+#: models.py:403
msgid "Can view own Find"
msgstr ""
-#: models.py:392
+#: models.py:404
msgid "Can add own Find"
msgstr ""
-#: models.py:393
+#: models.py:405
msgid "Can change own Find"
msgstr ""
-#: models.py:394
+#: models.py:406
msgid "Can delete own Find"
msgstr ""
-#: models.py:400
+#: models.py:412
msgid "FIND"
msgstr ""
-#: models.py:669
+#: models.py:683
msgid "Find documentation"
msgstr ""
-#: models.py:670
+#: models.py:684
msgid "Find documentations"
msgstr ""
-#: models.py:680
+#: models.py:694
msgid "Virtual"
msgstr ""
-#: models.py:682
+#: models.py:696
msgid "Upstream is many"
msgstr ""
-#: models.py:684
+#: models.py:698
msgid "Check this if for this treatment from many finds you'll get one."
msgstr ""
-#: models.py:687
+#: models.py:701
msgid "Downstream is many"
msgstr ""
-#: models.py:689
+#: models.py:703
msgid "Check this if for this treatment from one find you'll get many."
msgstr ""
-#: models.py:694
+#: models.py:708
msgid "Treatment types"
msgstr ""
-#: models.py:710
+#: models.py:726
msgid "Location where the treatment is done. Target warehouse for a move."
msgstr ""
-#: models.py:712
+#: models.py:728
msgid "Other location"
msgstr ""
-#: models.py:722 models.py:771 models.py:905
+#: models.py:738 models.py:787 models.py:921
msgid "Treatment"
msgstr ""
-#: models.py:723 templates/ishtar/sheet_find.html:73
+#: models.py:739 templates/ishtar/sheet_find.html:73
msgid "Treatments"
msgstr ""
-#: models.py:725
+#: models.py:741
msgid "Can view all Treatments"
msgstr ""
-#: models.py:726
+#: models.py:742
msgid "Can view own Treatment"
msgstr ""
-#: models.py:727
+#: models.py:743
msgid "Can add own Treatment"
msgstr ""
-#: models.py:728
+#: models.py:744
msgid "Can change own Treatment"
msgstr ""
-#: models.py:729
+#: models.py:745
msgid "Can delete own Treatment"
msgstr ""
-#: models.py:735
+#: models.py:751
msgid "by"
msgstr ""
-#: models.py:787 models.py:788 templates/ishtar/sheet_find.html:82
+#: models.py:803 models.py:804 templates/ishtar/sheet_find.html:82
#: templates/ishtar/sheet_find.html:111
msgid "Related finds"
msgstr ""
-#: models.py:891
+#: models.py:907
msgid "Is upstream"
msgstr ""
-#: models.py:902
+#: models.py:918
msgid "Treatment documentation"
msgstr ""
-#: models.py:903
+#: models.py:919
msgid "Treament documentations"
msgstr ""
-#: models.py:915
+#: models.py:931
msgid "Administrative act"
msgstr ""
-#: models.py:916
+#: models.py:932
msgid "Person"
msgstr ""
-#: models.py:922
+#: models.py:938
msgid "Property"
msgstr ""
-#: models.py:923
+#: models.py:939
msgid "Properties"
msgstr ""
-#: views.py:127
+#: views.py:128
msgid "New find"
msgstr ""
-#: views.py:141
+#: views.py:142
msgid "Find modification"
msgstr ""
-#: views.py:156
+#: views.py:157
msgid "Find deletion"
msgstr ""
-#: views.py:161
+#: views.py:162
msgid "Find: source search"
msgstr ""
-#: views.py:169
+#: views.py:170
msgid "Find: new source"
msgstr ""
-#: views.py:177
+#: views.py:178
msgid "Find: source modification"
msgstr ""
-#: views.py:192
+#: views.py:193
msgid "Find: source deletion"
msgstr ""
-#: views.py:206
+#: views.py:207
msgid "New basket"
msgstr ""
-#: views.py:225
+#: views.py:226
msgid "Manage items in basket"
msgstr ""
-#: views.py:245
+#: views.py:246
msgid "Manage basket"
msgstr ""
-#: views.py:333
+#: views.py:334
msgid "Delete basket"
msgstr ""
-#: views.py:371
+#: views.py:372
msgid "New treatment"
msgstr ""
diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py
index 722d165ce..5581df084 100644
--- a/archaeological_finds/models.py
+++ b/archaeological_finds/models.py
@@ -587,11 +587,13 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
Q(history_creator=user)
@classmethod
- def get_owns(cls, user, menu_filtr=None):
+ 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)
+ owns = super(Find, cls).get_owns(
+ user, replace_query=replace_query,
+ limit=limit)
return sorted(owns, key=lambda x: x.cached_label)
def _generate_cached_label(self):
diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py
index 63bc01bed..17cc4028f 100644
--- a/archaeological_finds/urls.py
+++ b/archaeological_finds/urls.py
@@ -119,6 +119,9 @@ urlpatterns += patterns(
name='get-own-find-full', kwargs={'full': True, 'force_own': True}),
url(r'get-find-full/(?P<type>.+)?$', 'get_find',
name='get-find-full', kwargs={'full': True}),
+ url(r'get-find-shortcut/(?P<type>.+)?$',
+ 'get_find', name='get-find-shortcut',
+ kwargs={'full': 'shortcut'}),
url(r'get-findsource/(?P<type>.+)?$',
'get_findsource', name='get-findsource'),
url(r'get-findsource-full/(?P<type>.+)?$',
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 80cc6fd8c..d441559cc 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -64,6 +64,7 @@ find_extra_keys = {
'base_finds__find__description__icontains',
'base_finds__batch': 'base_finds__batch',
'basket': 'basket',
+ 'cached_label': 'cached_label__icontains',
'image': 'image__isnull'}
get_find = get_item(
diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot
index 8a60fae78..3981ba228 100644
--- a/archaeological_operations/locale/django.pot
+++ b/archaeological_operations/locale/django.pot
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
#: forms.py:67 forms.py:369 forms.py:1004 forms.py:1026 forms.py:1030
-#: models.py:1037 templates/ishtar/sheet_operation.html:139
+#: models.py:1047 templates/ishtar/sheet_operation.html:139
#: templates/ishtar/blocks/window_tables/parcels.html:10
msgid "Parcels"
msgstr ""
-#: forms.py:70 forms.py:203 forms.py:980 models.py:1023
+#: forms.py:70 forms.py:203 forms.py:980 models.py:1033
#: 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:72 forms.py:459 forms.py:755 forms.py:1250 models.py:197
-#: models.py:840 models.py:1021
+#: forms.py:72 forms.py:459 forms.py:755 forms.py:1250 models.py:203
+#: models.py:850 models.py:1031
#: templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Year"
msgstr ""
-#: forms.py:75 models.py:1024
+#: forms.py:75 models.py:1034
#: templates/ishtar/blocks/window_tables/parcels.html:9
msgid "Section"
msgstr ""
-#: forms.py:78 models.py:1026
+#: forms.py:78 models.py:1036
msgid "Parcel number"
msgstr ""
-#: forms.py:80 models.py:1028 models.py:1045 models.py:1094
+#: forms.py:80 models.py:1038 models.py:1055 models.py:1104
msgid "Public domain"
msgstr ""
@@ -74,8 +74,8 @@ msgstr ""
msgid "Relation type"
msgstr ""
-#: forms.py:381 ishtar_menu.py:30 models.py:291 models.py:740 models.py:765
-#: models.py:781 models.py:832 models.py:1020 wizards.py:339 wizards.py:350
+#: forms.py:381 ishtar_menu.py:30 models.py:298 models.py:748 models.py:773
+#: models.py:789 models.py:842 models.py:1030 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:460 forms.py:1221 models.py:198
+#: forms.py:460 forms.py:1221 models.py:204
msgid "Numeric reference"
msgstr ""
@@ -112,7 +112,7 @@ msgstr ""
msgid "Parcel (section/number/public domain)"
msgstr ""
-#: forms.py:469 forms.py:1264 models.py:741
+#: forms.py:469 forms.py:1264 models.py:749
#: templates/ishtar/dashboards/dashboard_operation.html:390
#: templates/ishtar/dashboards/dashboard_operation.html:411
#: templates/ishtar/dashboards/dashboard_operation.html:643
@@ -121,12 +121,12 @@ msgstr ""
msgid "Department"
msgstr ""
-#: forms.py:470 forms.py:1092 models.py:79
+#: forms.py:470 forms.py:1092 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:205
+#: forms.py:472 forms.py:675 forms.py:753 forms.py:1227 models.py:211
msgid "Operation type"
msgstr ""
@@ -134,24 +134,24 @@ msgstr ""
msgid "Is open?"
msgstr ""
-#: forms.py:483 forms.py:782 models.py:194
+#: forms.py:483 forms.py:782 models.py:200
msgid "In charge"
msgstr ""
-#: forms.py:490 models.py:826
+#: forms.py:490 models.py:836
msgid "Scientist in charge"
msgstr ""
-#: forms.py:492 forms.py:677 forms.py:773 models.py:192
+#: forms.py:492 forms.py:677 forms.py:773 models.py:198
msgid "Operator"
msgstr ""
-#: forms.py:499 forms.py:1097 models.py:83 models.py:207
+#: forms.py:499 forms.py:1097 models.py:89 models.py:213
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10
msgid "Remains"
msgstr ""
-#: forms.py:500 forms.py:1075 forms.py:1094 models.py:81 models.py:212
+#: forms.py:500 forms.py:1075 forms.py:1094 models.py:87 models.py:219
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9
msgid "Periods"
msgstr ""
@@ -184,19 +184,19 @@ msgstr ""
msgid "Abstract (full text search)"
msgstr ""
-#: forms.py:515 forms.py:835 models.py:260
+#: forms.py:515 forms.py:835 models.py:267
msgid "Comment about scientific documentation"
msgstr ""
-#: forms.py:516 forms.py:837 models.py:272
+#: forms.py:516 forms.py:837 models.py:279
msgid "Record quality"
msgstr ""
-#: forms.py:517 forms.py:805 models.py:224
+#: forms.py:517 forms.py:805 models.py:231
msgid "Report processing"
msgstr ""
-#: forms.py:519 forms.py:840 models.py:267
+#: forms.py:519 forms.py:840 models.py:274
msgid "Virtual operation"
msgstr ""
@@ -220,7 +220,7 @@ msgstr ""
msgid "Documentation deadline after"
msgstr ""
-#: forms.py:544 forms.py:825 models.py:279
+#: forms.py:544 forms.py:825 models.py:286
msgid "Documentation received"
msgstr ""
@@ -232,11 +232,11 @@ msgstr ""
msgid "Finds deadline after"
msgstr ""
-#: forms.py:550 forms.py:830 models.py:283
+#: forms.py:550 forms.py:830 models.py:290
msgid "Finds received"
msgstr ""
-#: forms.py:595 forms.py:1213 views.py:258
+#: forms.py:595 forms.py:1213 views.py:259
msgid "Operation search"
msgstr ""
@@ -244,11 +244,11 @@ msgstr ""
msgid "Associated file"
msgstr ""
-#: forms.py:643 forms.py:928 models.py:837 wizards.py:76
+#: forms.py:643 forms.py:928 models.py:847 wizards.py:76
msgid "Archaelogical file"
msgstr ""
-#: forms.py:650 forms.py:652 models.py:274
+#: forms.py:650 forms.py:652 models.py:281
msgid "Abstract"
msgstr ""
@@ -260,7 +260,7 @@ msgstr ""
msgid "years"
msgstr ""
-#: forms.py:657 models.py:178
+#: forms.py:657 models.py:184
msgid "Creation date"
msgstr ""
@@ -317,11 +317,11 @@ msgstr ""
msgid "General"
msgstr ""
-#: forms.py:751 models.py:257
+#: forms.py:751 models.py:264
msgid "Generic name"
msgstr ""
-#: forms.py:760 models.py:226
+#: forms.py:760 models.py:233
msgid "Old code"
msgstr ""
@@ -329,7 +329,7 @@ msgstr ""
msgid "Head scientist"
msgstr ""
-#: forms.py:779 models.py:256
+#: forms.py:779 models.py:263
msgid "Operator reference"
msgstr ""
@@ -337,23 +337,23 @@ msgstr ""
msgid "Total surface (m2)"
msgstr ""
-#: forms.py:798 models.py:51 models.py:181 models.py:1210
+#: forms.py:798 models.py:53 models.py:187 models.py:1220
msgid "Start date"
msgstr ""
-#: forms.py:800 models.py:183
+#: forms.py:800 models.py:189
msgid "Excavation end date"
msgstr ""
-#: forms.py:803 models.py:184
+#: forms.py:803 models.py:190
msgid "Report delivery date"
msgstr ""
-#: forms.py:822 models.py:276
+#: forms.py:822 models.py:283
msgid "Deadline for submission of the documentation"
msgstr ""
-#: forms.py:827 models.py:281
+#: forms.py:827 models.py:288
msgid "Deadline for submission of the finds"
msgstr ""
@@ -388,7 +388,7 @@ msgstr ""
msgid "Bad operation code"
msgstr ""
-#: forms.py:924 models.py:424
+#: forms.py:924 models.py:432
msgid "Operation code"
msgstr ""
@@ -396,20 +396,20 @@ msgstr ""
msgid "Preventive informations - excavation"
msgstr ""
-#: forms.py:951 models.py:210
+#: forms.py:951 models.py:217
#: templates/ishtar/dashboards/dashboard_operation.html:701
msgid "Cost (euros)"
msgstr ""
-#: forms.py:952 models.py:215
+#: forms.py:952 models.py:222
msgid "Scheduled man-days"
msgstr ""
-#: forms.py:954 models.py:218
+#: forms.py:954 models.py:225
msgid "Optional man-days"
msgstr ""
-#: forms.py:956 models.py:221
+#: forms.py:956 models.py:228
msgid "Effective man-days"
msgstr ""
@@ -417,23 +417,23 @@ msgstr ""
msgid "Preventive informations - diagnostic"
msgstr ""
-#: forms.py:969 models.py:240
+#: forms.py:969 models.py:247
msgid "Prescription on zoning"
msgstr ""
-#: forms.py:971 models.py:243
+#: forms.py:971 models.py:250
msgid "Prescription on large area"
msgstr ""
-#: forms.py:974 models.py:245
+#: forms.py:974 models.py:252
msgid "Prescription on geoarchaeological context"
msgstr ""
-#: forms.py:978 forms.py:1000 models.py:209 models.py:850
+#: forms.py:978 forms.py:1000 models.py:215 models.py:860
msgid "Towns"
msgstr ""
-#: forms.py:1007 models.py:1036 models.py:1208
+#: forms.py:1007 models.py:1046 models.py:1218
msgid "Parcel"
msgstr ""
@@ -450,7 +450,7 @@ msgstr ""
msgid "Period"
msgstr ""
-#: forms.py:1091 models.py:78
+#: forms.py:1091 models.py:84
msgid "Reference"
msgstr ""
@@ -458,11 +458,11 @@ msgstr ""
msgid "This reference already exists."
msgstr ""
-#: forms.py:1137 models.py:87
+#: forms.py:1137 models.py:93
msgid "Archaeological site"
msgstr ""
-#: forms.py:1152 models.py:88 models.py:264
+#: forms.py:1152 models.py:94 models.py:271
#: templates/ishtar/sheet_operation.html:94
msgid "Archaeological sites"
msgstr ""
@@ -483,7 +483,7 @@ msgstr ""
msgid "Would you like to delete this operation?"
msgstr ""
-#: forms.py:1181 forms.py:1251 forms.py:1387 models.py:767 models.py:817
+#: forms.py:1181 forms.py:1251 forms.py:1387 models.py:775 models.py:827
msgid "Index"
msgstr ""
@@ -510,7 +510,7 @@ msgstr ""
msgid "You should select a document."
msgstr ""
-#: forms.py:1258 forms.py:1325 models.py:792 models.py:811
+#: forms.py:1258 forms.py:1325 models.py:800 models.py:821
msgid "Act type"
msgstr ""
@@ -518,12 +518,12 @@ msgstr ""
msgid "Indexed?"
msgstr ""
-#: forms.py:1265 forms.py:1330 models.py:841
+#: forms.py:1265 forms.py:1330 models.py:851
#: templates/ishtar/blocks/window_tables/administrativacts.html:10
msgid "Object"
msgstr ""
-#: forms.py:1302 views.py:414
+#: forms.py:1302 views.py:415
msgid "Administrative act search"
msgstr ""
@@ -531,7 +531,7 @@ msgstr ""
msgid "You should select an administrative act."
msgstr ""
-#: forms.py:1333 models.py:838
+#: forms.py:1333 models.py:848
msgid "Signature date"
msgstr ""
@@ -566,7 +566,7 @@ msgstr ""
msgid "Generate the associated doc?"
msgstr ""
-#: forms.py:1466 ishtar_menu.py:121 views.py:467
+#: forms.py:1466 ishtar_menu.py:121 views.py:468
msgctxt "admin act register"
msgid "Register"
msgstr ""
@@ -587,7 +587,7 @@ msgstr ""
msgid "Deletion"
msgstr ""
-#: ishtar_menu.py:58 models.py:857
+#: ishtar_menu.py:58 models.py:867
#: templates/ishtar/sheet_administrativeact.html:4
msgid "Administrative act"
msgstr ""
@@ -616,418 +616,418 @@ msgstr ""
msgid "General informations"
msgstr ""
-#: ishtar_menu.py:136 models.py:292
+#: ishtar_menu.py:136 models.py:299
#: templates/ishtar/dashboards/dashboard_operation.html:8
msgid "Operations"
msgstr ""
-#: models.py:50 models.py:66 models.py:1672
+#: models.py:52 models.py:70 models.py:1682
msgid "Order"
msgstr ""
-#: models.py:52 models.py:1211
+#: models.py:54 models.py:1221
msgid "End date"
msgstr ""
-#: models.py:53
+#: models.py:55
msgid "Parent period"
msgstr ""
-#: models.py:57
+#: models.py:59
msgid "Type Period"
msgstr ""
-#: models.py:58
+#: models.py:60
msgid "Types Period"
msgstr ""
-#: models.py:69
+#: models.py:73
msgid "Type of report state"
msgstr ""
-#: models.py:70
+#: models.py:74
msgid "Types of report state"
msgstr ""
-#: models.py:91
+#: models.py:97
msgid "Can view all Archaeological sites"
msgstr ""
-#: models.py:93
+#: models.py:99
msgid "Can view own Archaeological site"
msgstr ""
-#: models.py:95
+#: models.py:101
msgid "Can add own Archaeological site"
msgstr ""
-#: models.py:97
+#: models.py:103
msgid "Can change own Archaeological site"
msgstr ""
-#: models.py:99
+#: models.py:105
msgid "Can delete own Archaeological site"
msgstr ""
-#: models.py:136
+#: models.py:142
msgid "Not documented"
msgstr ""
-#: models.py:137
+#: models.py:143
msgid "Arbitrary"
msgstr ""
-#: models.py:138
+#: models.py:144
msgid "Reliable"
msgstr ""
-#: models.py:180
+#: models.py:186
msgid "Closing date"
msgstr ""
-#: models.py:187
+#: models.py:193
msgid "In charge scientist"
msgstr ""
-#: models.py:202 models.py:1016
+#: models.py:208 models.py:1026
msgid "File"
msgstr ""
-#: models.py:206
+#: models.py:212
msgid "Surface (m2)"
msgstr ""
-#: models.py:258
+#: models.py:265
msgid "General comment"
msgstr ""
-#: models.py:261
+#: models.py:268
msgid "Cached name"
msgstr ""
-#: models.py:269
+#: models.py:276
msgid ""
"If checked, it means that this operation have not been officialy registered."
msgstr ""
-#: models.py:285
+#: models.py:292
msgid "Point"
msgstr ""
-#: models.py:286
+#: models.py:293
msgid "Multi polygon"
msgstr ""
-#: models.py:294
+#: models.py:301
msgid "Can view all Operations"
msgstr ""
-#: models.py:295
+#: models.py:302
msgid "Can view own Operation"
msgstr ""
-#: models.py:296
+#: models.py:303
msgid "Can add own Operation"
msgstr ""
-#: models.py:297
+#: models.py:304
msgid "Can change own Operation"
msgstr ""
-#: models.py:298
+#: models.py:305
msgid "Can delete own Operation"
msgstr ""
-#: models.py:299
+#: models.py:306
msgid "Can close Operation"
msgstr ""
-#: models.py:326
+#: models.py:334
msgid "OPE"
msgstr ""
-#: models.py:383
+#: models.py:391
msgid "Intercommunal"
msgstr ""
-#: models.py:409 models.py:780
+#: models.py:417 models.py:788
msgid "Archaeological file"
msgstr ""
-#: models.py:410
+#: models.py:418
msgid "Code patriarche"
msgstr ""
-#: models.py:450
+#: models.py:458
msgid "This operation code already exists for this year"
msgstr ""
-#: models.py:483
+#: models.py:491
msgid "Number of parcels"
msgstr ""
-#: models.py:501
+#: models.py:509
msgid "Number of administrative acts"
msgstr ""
-#: models.py:509
+#: models.py:517
msgid "Number of indexed administrative acts"
msgstr ""
-#: models.py:517
+#: models.py:525
msgid "Number of context records"
msgstr ""
-#: models.py:553
+#: models.py:561
msgid "Number of finds"
msgstr ""
-#: models.py:598
+#: models.py:606
msgid "No type"
msgstr ""
-#: models.py:629
+#: models.py:637
msgid "Number of sources"
msgstr ""
-#: models.py:671 templates/ishtar/dashboards/dashboard_operation.html:309
+#: models.py:679 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:711
+#: models.py:719
msgid "Inverse relation"
msgstr ""
-#: models.py:715
+#: models.py:723
msgid "Operation relation type"
msgstr ""
-#: models.py:716
+#: models.py:724
msgid "Operation relation types"
msgstr ""
-#: models.py:729
+#: models.py:737
msgid "Operation record relation"
msgstr ""
-#: models.py:730
+#: models.py:738
msgid "Operation record relations"
msgstr ""
-#: models.py:751
+#: models.py:759
msgid "Operation documentation"
msgstr ""
-#: models.py:752
+#: models.py:760
msgid "Operation documentations"
msgstr ""
-#: models.py:755
+#: models.py:763
msgid "Can view all Operation sources"
msgstr ""
-#: models.py:757
+#: models.py:765
msgid "Can view own Operation source"
msgstr ""
-#: models.py:759
+#: models.py:767
msgid "Can add own Operation source"
msgstr ""
-#: models.py:761
+#: models.py:769
msgid "Can change own Operation source"
msgstr ""
-#: models.py:763
+#: models.py:771
msgid "Can delete own Operation source"
msgstr ""
-#: models.py:783
+#: models.py:791
msgid "Intended to"
msgstr ""
-#: models.py:785
+#: models.py:793
msgid "Code"
msgstr ""
-#: models.py:788
+#: models.py:796
msgid "Associated template"
msgstr ""
-#: models.py:789
+#: models.py:797
msgid "Indexed"
msgstr ""
-#: models.py:793
+#: models.py:801
msgid "Act types"
msgstr ""
-#: models.py:815
+#: models.py:825
msgid "Person in charge of the operation"
msgstr ""
-#: models.py:821
+#: models.py:831
msgid "Archaeological preventive operator"
msgstr ""
-#: models.py:829
+#: models.py:839
msgid "Signatory"
msgstr ""
-#: models.py:847
+#: models.py:857
msgid "Departments"
msgstr ""
-#: models.py:848
+#: models.py:858
msgid "Cached values get from associated departments"
msgstr ""
-#: models.py:851
+#: models.py:861
msgid "Cached values get from associated towns"
msgstr ""
-#: models.py:858 templates/ishtar/sheet_operation.html:102
+#: models.py:868 templates/ishtar/sheet_operation.html:102
#: templates/ishtar/sheet_operation.html:133
msgid "Administrative acts"
msgstr ""
-#: models.py:861
+#: models.py:871
msgid "Can view all Administrative acts"
msgstr ""
-#: models.py:863
+#: models.py:873
msgid "Can view own Administrative act"
msgstr ""
-#: models.py:865
+#: models.py:875
msgid "Can add own Administrative act"
msgstr ""
-#: models.py:867
+#: models.py:877
msgid "Can change own Administrative act"
msgstr ""
-#: models.py:869
+#: models.py:879
msgid "Can delete own Administrative act"
msgstr ""
-#: models.py:878
+#: models.py:888
#: templates/ishtar/blocks/window_tables/administrativacts.html:7
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7
msgid "Ref."
msgstr ""
-#: models.py:961
+#: models.py:971
msgid "This index already exists for this year"
msgstr ""
-#: models.py:1029
+#: models.py:1039
msgid "External ID"
msgstr ""
-#: models.py:1032
+#: models.py:1042
msgid "External ID is set automatically"
msgstr ""
-#: models.py:1033
+#: models.py:1043
msgid "Address - Locality"
msgstr ""
-#: models.py:1206
+#: models.py:1216
msgid "Owner"
msgstr ""
-#: models.py:1214
+#: models.py:1224
msgid "Parcel owner"
msgstr ""
-#: models.py:1215
+#: models.py:1225
msgid "Parcel owners"
msgstr ""
-#: models.py:1241
+#: models.py:1251
msgid "Recorded"
msgstr ""
-#: models.py:1242
+#: models.py:1252
msgid "Effective"
msgstr ""
-#: models.py:1243
+#: models.py:1253
msgid "Active"
msgstr ""
-#: models.py:1244
+#: models.py:1254
msgid "Field completed"
msgstr ""
-#: models.py:1245
+#: models.py:1255
msgid "Associated report"
msgstr ""
-#: models.py:1246
+#: models.py:1256
msgid "Closed"
msgstr ""
-#: models.py:1247
+#: models.py:1257
msgid "Documented and closed"
msgstr ""
-#: models.py:1673
+#: models.py:1683
msgid "Is preventive"
msgstr ""
-#: models.py:1676
+#: models.py:1686
msgid "Operation type old"
msgstr ""
-#: models.py:1677
+#: models.py:1687
msgid "Operation types old"
msgstr ""
-#: views.py:304
+#: views.py:305
msgid "New operation"
msgstr ""
-#: views.py:323
+#: views.py:324
msgid "Operation modification"
msgstr ""
-#: views.py:366
+#: views.py:367
msgid "Operation closing"
msgstr ""
-#: views.py:372
+#: views.py:373
msgid "Operation deletion"
msgstr ""
-#: views.py:377
+#: views.py:378
msgid "Operation: source search"
msgstr ""
-#: views.py:385
+#: views.py:386
msgid "Operation: source creation"
msgstr ""
-#: views.py:393
+#: views.py:394
msgid "Operation: source modification"
msgstr ""
-#: views.py:408
+#: views.py:409
msgid "Operation: source deletion"
msgstr ""
-#: views.py:427
+#: views.py:428
msgid "Operation: new administrative act"
msgstr ""
-#: views.py:437
+#: views.py:438
msgid "Operation: administrative act modification"
msgstr ""
-#: views.py:461
+#: views.py:462
msgid "Operation: administrative act deletion"
msgstr ""
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 926e27b3b..4dd107da8 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -212,7 +212,8 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,
surface = models.IntegerField(_(u"Surface (m2)"), blank=True, null=True)
remains = models.ManyToManyField("RemainType", verbose_name=_(u'Remains'),
null=True, blank=True)
- towns = models.ManyToManyField(Town, verbose_name=_(u"Towns"))
+ towns = models.ManyToManyField(Town, verbose_name=_(u"Towns"),
+ related_name='operations')
cost = models.IntegerField(_(u"Cost (euros)"),
blank=True, null=True) # preventive
periods = models.ManyToManyField(Period, verbose_name=_(u"Periods"),
@@ -307,12 +308,13 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,
ordering = ('cached_label',)
@classmethod
- def get_owns(cls, user, menu_filtr=None):
+ def get_owns(cls, user, menu_filtr=None, limit=None):
replace_query = {}
if menu_filtr:
replace_query = {'associated_file': menu_filtr}
owns = super(Operation, cls).get_owns(
- user, replace_query=replace_query)
+ user, replace_query=replace_query,
+ limit=limit)
# owns = owns.annotate(null_count=Count('operation_code'))
# return owns.order_by("common_name", "-year", "operation_code")
return sorted(owns, key=lambda x: x.cached_label)
diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py
index 7d494f973..aca98d4c4 100644
--- a/archaeological_operations/urls.py
+++ b/archaeological_operations/urls.py
@@ -100,11 +100,14 @@ urlpatterns += patterns(
kwargs={'force_own': True}),
url(r'get-operation/(?P<type>.+)?$', 'get_operation',
name='get-operation'),
- url(r'get-operation-full/(?P<type>.+)?$', 'get_operation',
- name='get-operation-full', kwargs={'full': True}),
url(r'get-operation-full/own/(?P<type>.+)?$',
'get_operation', name='get-own-operation-full',
kwargs={'full': True, 'force_own': True}),
+ url(r'get-operation-full/(?P<type>.+)?$', 'get_operation',
+ name='get-operation-full', kwargs={'full': True}),
+ url(r'get-operation-shortcut/(?P<type>.+)?$',
+ 'get_operation', name='get-operation-shortcut',
+ kwargs={'full': 'shortcut'}),
url(r'get-available-operation-code/(?P<year>.+)?$',
'get_available_operation_code', name='get_available_operation_code'),
url(r'revert-operation/(?P<pk>.+)/(?P<date>.+)$',
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 84e98010e..ae82e9e89 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -148,6 +148,7 @@ get_operation = get_item(
relative_session_names=[('file', 'associated_file__pk')],
extra_request_keys={
'common_name': 'common_name__icontains',
+ 'cached_label': 'cached_label__icontains',
'comment': 'comment__icontains',
'scientific_documentation_comment':
'scientific_documentation_comment__icontains',
diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot
index c00e26082..4300d1d19 100644
--- a/archaeological_warehouse/locale/django.pot
+++ b/archaeological_warehouse/locale/django.pot
@@ -6,23 +6,23 @@
msgid ""
msgstr ""
-#: forms.py:34 forms.py:97 models.py:44 models.py:73
+#: forms.py:34 forms.py:97 models.py:47 models.py:78
msgid "Warehouse"
msgstr ""
-#: forms.py:43 models.py:35
+#: forms.py:43 models.py:38
msgid "Name"
msgstr ""
-#: forms.py:45 models.py:29 models.py:37
+#: forms.py:45 models.py:30 models.py:40
msgid "Warehouse type"
msgstr ""
-#: forms.py:48 models.py:40
+#: forms.py:48 models.py:43
msgid "Person in charge"
msgstr ""
-#: forms.py:54 forms.py:102 models.py:41 models.py:77
+#: forms.py:54 forms.py:102 models.py:44 models.py:82
msgid "Comment"
msgstr ""
@@ -50,15 +50,15 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: forms.py:93 models.py:80
+#: forms.py:93 models.py:85
msgid "Container"
msgstr ""
-#: forms.py:94 forms.py:129 models.py:63
+#: forms.py:94 forms.py:129 models.py:66
msgid "Ref."
msgstr ""
-#: forms.py:95 forms.py:128 models.py:66 models.py:75
+#: forms.py:95 forms.py:128 models.py:69 models.py:80
msgid "Container type"
msgstr ""
@@ -94,58 +94,58 @@ msgstr ""
msgid "Find"
msgstr ""
-#: models.py:30
+#: models.py:31
msgid "Warehouse types"
msgstr ""
-#: models.py:45
+#: models.py:48
msgid "Warehouses"
msgstr ""
-#: models.py:47
+#: models.py:50
msgid "Can view all Warehouses"
msgstr ""
-#: models.py:48
+#: models.py:51
msgid "Can view own Warehouse"
msgstr ""
-#: models.py:49
+#: models.py:52
msgid "Can add own Warehouse"
msgstr ""
-#: models.py:50
+#: models.py:53
msgid "Can change own Warehouse"
msgstr ""
-#: models.py:51
+#: models.py:54
msgid "Can delete own Warehouse"
msgstr ""
-#: models.py:59
+#: models.py:62
msgid "Length (mm)"
msgstr ""
-#: models.py:60
+#: models.py:63
msgid "Width (mm)"
msgstr ""
-#: models.py:61
+#: models.py:64
msgid "Height (mm)"
msgstr ""
-#: models.py:62
+#: models.py:65
msgid "Volume (l)"
msgstr ""
-#: models.py:67
+#: models.py:70
msgid "Container types"
msgstr ""
-#: models.py:76
+#: models.py:81
msgid "Container ref."
msgstr ""
-#: models.py:81
+#: models.py:86
msgid "Containers"
msgstr ""
diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot
index 9ec7eb939..8a0b6b389 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:245 models.py:1278
+#: forms.py:245 models.py:1307
msgid "Template"
msgstr ""
#: forms_common.py:41 forms_common.py:59 forms_common.py:182
-#: forms_common.py:406 models.py:1344 models.py:2658
+#: forms_common.py:406 models.py:1373 models.py:2722
#: 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.</p>"
msgstr ""
-#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1512
-#: models.py:2326 models.py:2480 models.py:2538
+#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1543
+#: models.py:2361 models.py:2530 models.py:2592
#: 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:1513 models.py:2231
+#: ishtar_menu.py:75 models.py:1544 models.py:2262
#: 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:945 models.py:1277
-#: models.py:1558 models.py:1776 models.py:2225 models.py:2312 models.py:2644
+#: forms_common.py:376 forms_common.py:446 models.py:974 models.py:1306
+#: models.py:1589 models.py:1807 models.py:2256 models.py:2347 models.py:2708
#: templates/ishtar/sheet_organization.html:8
#: templates/ishtar/sheet_organization.html:21
msgid "Name"
msgstr ""
-#: forms_common.py:174 models.py:1499 models.py:1907
+#: forms_common.py:174 models.py:1528 models.py:1938
msgid "Organization type"
msgstr ""
-#: forms_common.py:176 forms_common.py:400 models.py:1339
+#: forms_common.py:176 forms_common.py:400 models.py:1368
#: templates/ishtar/sheet_organization.html:10
msgid "Address"
msgstr ""
-#: forms_common.py:178 forms_common.py:403 models.py:1340
+#: forms_common.py:178 forms_common.py:403 models.py:1369
#: templates/ishtar/sheet_organization.html:11
msgid "Address complement"
msgstr ""
-#: forms_common.py:180 forms_common.py:404 models.py:1342
+#: forms_common.py:180 forms_common.py:404 models.py:1371
#: templates/ishtar/sheet_organization.html:12
msgid "Postal code"
msgstr ""
-#: forms_common.py:183 forms_common.py:407 models.py:1345
+#: forms_common.py:183 forms_common.py:407 models.py:1374
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:1372
+#: forms_common.py:448 forms_common.py:572 models.py:1401
msgid "Email"
msgstr ""
-#: forms_common.py:186 forms_common.py:383 models.py:1357
+#: forms_common.py:186 forms_common.py:383 models.py:1386
#: 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:1369
+#: forms_common.py:187 forms_common.py:392 models.py:1398
#: 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:1935
-#: models.py:2227 models.py:2579 templates/sheet_ope.html:85
+#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:1966
+#: models.py:2258 models.py:2643 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,7 +253,7 @@ msgstr ""
msgid "Type"
msgstr ""
-#: forms_common.py:220 views.py:137
+#: forms_common.py:220 views.py:139
msgid "Organization search"
msgstr ""
@@ -269,12 +269,12 @@ msgstr ""
msgid "Organization to merge"
msgstr ""
-#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2310
+#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2345
#: templates/ishtar/sheet_organization.html:22
msgid "Surname"
msgstr ""
-#: forms_common.py:339 forms_common.py:434 views.py:102
+#: forms_common.py:339 forms_common.py:434 views.py:104
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:1908
-#: models.py:2304 models.py:2306 models.py:2576 templates/sheet_ope.html:104
+#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1939
+#: models.py:2339 models.py:2341 models.py:2640 templates/sheet_ope.html:104
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Title"
msgstr ""
-#: forms_common.py:372 models.py:2308
+#: forms_common.py:372 models.py:2343
msgid "Salutation"
msgstr ""
-#: forms_common.py:378 models.py:2314
+#: forms_common.py:378 models.py:2349
msgid "Raw name"
msgstr ""
-#: forms_common.py:381 models.py:1358
+#: forms_common.py:381 models.py:1387
msgid "Phone description"
msgstr ""
-#: forms_common.py:384 models.py:1360 models.py:1362
+#: forms_common.py:384 models.py:1389 models.py:1391
msgid "Phone description 2"
msgstr ""
@@ -313,11 +313,11 @@ msgstr ""
msgid "Phone 2"
msgstr ""
-#: forms_common.py:388 models.py:1366
+#: forms_common.py:388 models.py:1395
msgid "Phone description 3"
msgstr ""
-#: forms_common.py:390 models.py:1364
+#: forms_common.py:390 models.py:1393
msgid "Phone 3"
msgstr ""
@@ -325,23 +325,23 @@ msgstr ""
msgid "Current organization"
msgstr ""
-#: forms_common.py:409 models.py:1347
+#: forms_common.py:409 models.py:1376
msgid "Other address: address"
msgstr ""
-#: forms_common.py:412 models.py:1350
+#: forms_common.py:412 models.py:1379
msgid "Other address: address complement"
msgstr ""
-#: forms_common.py:414 models.py:1351
+#: forms_common.py:414 models.py:1380
msgid "Other address: postal code"
msgstr ""
-#: forms_common.py:416 models.py:1353
+#: forms_common.py:416 models.py:1382
msgid "Other address: town"
msgstr ""
-#: forms_common.py:418 models.py:1355
+#: forms_common.py:418 models.py:1384
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:2279
+#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2310
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:2659
+#: forms_common.py:628 forms_common.py:641 models.py:2723
msgid "Towns"
msgstr ""
@@ -405,7 +405,7 @@ msgstr ""
msgid "Documentation informations"
msgstr ""
-#: forms_common.py:775 forms_common.py:823 models.py:1909 models.py:2559
+#: forms_common.py:775 forms_common.py:823 models.py:1940 models.py:2617
msgid "Source type"
msgstr ""
@@ -417,37 +417,37 @@ msgstr ""
msgid "Internal reference"
msgstr ""
-#: forms_common.py:783 models.py:2590
+#: forms_common.py:783 models.py:2654
msgid "Numerical ressource (web address)"
msgstr ""
-#: forms_common.py:784 models.py:2592
+#: forms_common.py:784 models.py:2656
msgid "Receipt date"
msgstr ""
-#: forms_common.py:786 models.py:2062 models.py:2594
+#: forms_common.py:786 models.py:2093 models.py:2658
msgid "Creation date"
msgstr ""
-#: forms_common.py:789 models.py:2597
+#: forms_common.py:789 models.py:2661
msgid "Receipt date in documentation"
msgstr ""
-#: forms_common.py:791 forms_common.py:827 models.py:289 models.py:548
-#: models.py:1803 models.py:2318 models.py:2604
+#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:577
+#: models.py:1834 models.py:2353 models.py:2668
msgid "Comment"
msgstr ""
-#: forms_common.py:793 forms_common.py:826 models.py:947 models.py:1562
-#: models.py:1735 models.py:1777 models.py:2603 templates/sheet_ope.html:128
+#: forms_common.py:793 forms_common.py:826 models.py:976 models.py:1593
+#: models.py:1766 models.py:1808 models.py:2667 templates/sheet_ope.html:128
msgid "Description"
msgstr ""
-#: forms_common.py:796 models.py:2605
+#: forms_common.py:796 models.py:2669
msgid "Additional information"
msgstr ""
-#: forms_common.py:798 forms_common.py:830 models.py:2607
+#: forms_common.py:798 forms_common.py:830 models.py:2671
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:2543
+#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2597
#: 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:1910 models.py:2533 models.py:2540
+#: forms_common.py:856 models.py:1941 models.py:2585 models.py:2594
msgid "Author type"
msgstr ""
@@ -487,7 +487,7 @@ msgstr ""
msgid "There are identical authors."
msgstr ""
-#: forms_common.py:893 models.py:2544 models.py:2586
+#: forms_common.py:893 models.py:2598 models.py:2650
#: 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:1073 views.py:1377
+#: ishtar_menu.py:39 models.py:1102 views.py:1450
msgid "Global variables"
msgstr ""
@@ -533,20 +533,20 @@ msgstr ""
msgid "Manual merge"
msgstr ""
-#: ishtar_menu.py:70 ishtar_menu.py:101 models.py:2099 widgets.py:110
+#: ishtar_menu.py:70 ishtar_menu.py:101 models.py:2130 widgets.py:110
#: templates/ishtar/form_delete.html:11
msgid "Delete"
msgstr ""
-#: ishtar_menu.py:109 models.py:2073
+#: ishtar_menu.py:109 models.py:2104
msgid "Imports"
msgstr ""
-#: ishtar_menu.py:112 views.py:1385
+#: ishtar_menu.py:112 views.py:1458
msgid "New import"
msgstr ""
-#: ishtar_menu.py:116 views.py:1399
+#: ishtar_menu.py:116 views.py:1472
msgid "Current imports"
msgstr ""
@@ -566,200 +566,200 @@ msgstr ""
msgid "This item already exists."
msgstr ""
-#: models.py:285 models.py:547 models.py:1312 models.py:1324
+#: models.py:313 models.py:576 models.py:1341 models.py:1353
msgid "Label"
msgstr ""
-#: models.py:287
+#: models.py:315
msgid "Textual ID"
msgstr ""
-#: models.py:290 models.py:550 models.py:1281
+#: models.py:318 models.py:579 models.py:1310
msgid "Available"
msgstr ""
-#: models.py:569 models.py:1849
+#: models.py:598 models.py:1880
msgid "Key"
msgstr ""
-#: models.py:575
+#: models.py:604
msgid "Specific key to an import"
msgstr ""
-#: models.py:666
+#: models.py:695
msgid "Last editor"
msgstr ""
-#: models.py:669
+#: models.py:698
msgid "Creator"
msgstr ""
-#: models.py:809 models.py:2670
+#: models.py:838 models.py:2734
msgid "Order"
msgstr ""
-#: models.py:810
+#: models.py:839
msgid "Symmetrical"
msgstr ""
-#: models.py:811
+#: models.py:840
msgid "Tiny label"
msgstr ""
-#: models.py:825
+#: models.py:854
msgid "Cannot have symmetrical and an inverse_relation"
msgstr ""
-#: models.py:939
+#: models.py:968
msgid "Euro"
msgstr ""
-#: models.py:940
+#: models.py:969
msgid "US dollar"
msgstr ""
-#: models.py:946 models.py:1560
+#: models.py:975 models.py:1591
msgid "Slug"
msgstr ""
-#: models.py:948
+#: models.py:977
msgid "Files module"
msgstr ""
-#: models.py:949
+#: models.py:978
msgid "Context records module"
msgstr ""
-#: models.py:951
+#: models.py:980
msgid "Finds module"
msgstr ""
-#: models.py:952
+#: models.py:981
msgid "Need context records module"
msgstr ""
-#: models.py:954
+#: models.py:983
msgid "Warehouses module"
msgstr ""
-#: models.py:955
+#: models.py:984
msgid "Need finds module"
msgstr ""
-#: models.py:957
+#: models.py:986
msgid "Home page"
msgstr ""
-#: models.py:958
+#: models.py:987
#, 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:962
+#: models.py:991
msgid "File external id"
msgstr ""
-#: models.py:964
+#: models.py:993
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:969
+#: models.py:998
msgid "Parcel external id"
msgstr ""
-#: models.py:972
+#: models.py:1001
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:977
+#: models.py:1006
msgid "Context record external id"
msgstr ""
-#: models.py:979
+#: models.py:1008
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:984
+#: models.py:1013
msgid "Base find external id"
msgstr ""
-#: models.py:986
+#: models.py:1015
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:991
+#: models.py:1020
msgid "Find external id"
msgstr ""
-#: models.py:993
+#: models.py:1022
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:998
+#: models.py:1027
msgid "Raw name for person"
msgstr ""
-#: models.py:1000
+#: models.py:1029
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:1004
+#: models.py:1033
msgid "Current active"
msgstr ""
-#: models.py:1005
+#: models.py:1034
msgid "Currency"
msgstr ""
-#: models.py:1009
+#: models.py:1038
msgid "Ishtar site profile"
msgstr ""
-#: models.py:1010
+#: models.py:1039
msgid "Ishtar site profiles"
msgstr ""
-#: models.py:1066
+#: models.py:1095
msgid "Variable name"
msgstr ""
-#: models.py:1067
+#: models.py:1096
msgid "Description of the variable"
msgstr ""
-#: models.py:1069 models.py:1850
+#: models.py:1098 models.py:1881
msgid "Value"
msgstr ""
-#: models.py:1072
+#: models.py:1101
msgid "Global variable"
msgstr ""
-#: models.py:1182 models.py:1212
+#: models.py:1211 models.py:1241
msgid "Total"
msgstr ""
-#: models.py:1189 models.py:1313 models.py:1325
+#: models.py:1218 models.py:1342 models.py:1354
#: templates/ishtar/sheet_person.html:22
#: templates/ishtar/dashboards/dashboard_main_detail.html:141
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
@@ -767,686 +767,690 @@ msgstr ""
msgid "Number"
msgstr ""
-#: models.py:1276
+#: models.py:1305
msgid "Administrative Act"
msgstr ""
-#: models.py:1280
+#: models.py:1309
msgid "Associated object"
msgstr ""
-#: models.py:1284
+#: models.py:1313
msgid "Document template"
msgstr ""
-#: models.py:1285
+#: models.py:1314
msgid "Document templates"
msgstr ""
-#: models.py:1316 models.py:1326 models.py:2057
+#: models.py:1345 models.py:1355 models.py:2088
msgid "State"
msgstr ""
-#: models.py:1330 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1359 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr ""
-#: models.py:1331
+#: models.py:1360
msgid "Departments"
msgstr ""
-#: models.py:1368
+#: models.py:1397
msgid "Raw phone"
msgstr ""
-#: models.py:1374
+#: models.py:1403
msgid "Alternative address is prefered"
msgstr ""
-#: models.py:1413
+#: models.py:1442
msgid "Tel: "
msgstr ""
-#: models.py:1417
+#: models.py:1446
msgid "Mobile: "
msgstr ""
-#: models.py:1421
+#: models.py:1450
msgid "Email: "
msgstr ""
-#: models.py:1426
+#: models.py:1455
msgid "Merge key"
msgstr ""
-#: models.py:1500
+#: models.py:1529
msgid "Organization types"
msgstr ""
-#: models.py:1514 views.py:211
+#: models.py:1545 views.py:234
msgid "Operation"
msgstr ""
-#: models.py:1516
+#: models.py:1547
msgid "Archaeological site"
msgstr ""
-#: models.py:1517
+#: models.py:1548
msgid "Parcels"
msgstr ""
-#: models.py:1519
+#: models.py:1550
msgid "Operation source"
msgstr ""
-#: models.py:1522 views.py:1192 views.py:1243
+#: models.py:1553 views.py:1265 views.py:1316
msgid "Archaeological files"
msgstr ""
-#: models.py:1524 views.py:1195 views.py:1251
+#: models.py:1555 views.py:1268 views.py:1324
msgid "Context records"
msgstr ""
-#: models.py:1526
+#: models.py:1557
msgid "Context record relations"
msgstr ""
-#: models.py:1528 views.py:1197 views.py:1254
+#: models.py:1559 views.py:1270 views.py:1327
msgid "Finds"
msgstr ""
-#: models.py:1564 templates/ishtar/dashboards/dashboard_main.html:25
+#: models.py:1595 templates/ishtar/dashboards/dashboard_main.html:25
msgid "Users"
msgstr ""
-#: models.py:1566
+#: models.py:1597
msgid "Associated model"
msgstr ""
-#: models.py:1569
+#: models.py:1600
msgid "Is template"
msgstr ""
-#: models.py:1570
+#: models.py:1601
msgid "Unicity keys (separator \";\")"
msgstr ""
-#: models.py:1574
+#: models.py:1605
msgid "Importer - Type"
msgstr ""
-#: models.py:1575
+#: models.py:1606
msgid "Importer - Types"
msgstr ""
-#: models.py:1665
+#: models.py:1696
msgid "Importer - Default"
msgstr ""
-#: models.py:1666
+#: models.py:1697
msgid "Importer - Defaults"
msgstr ""
-#: models.py:1701
+#: models.py:1732
msgid "Importer - Default value"
msgstr ""
-#: models.py:1702
+#: models.py:1733
msgid "Importer - Default values"
msgstr ""
-#: models.py:1734
+#: models.py:1765
msgid "Column number"
msgstr ""
-#: models.py:1737
+#: models.py:1768
msgid "Required"
msgstr ""
-#: models.py:1740
+#: models.py:1771
msgid "Importer - Column"
msgstr ""
-#: models.py:1741
+#: models.py:1772
msgid "Importer - Columns"
msgstr ""
-#: models.py:1761
+#: models.py:1792
msgid "Field name"
msgstr ""
-#: models.py:1763 models.py:1797
+#: models.py:1794 models.py:1828
msgid "Force creation of new items"
msgstr ""
-#: models.py:1765 models.py:1799
+#: models.py:1796 models.py:1830
msgid "Concatenate with existing"
msgstr ""
-#: models.py:1767 models.py:1801
+#: models.py:1798 models.py:1832
msgid "Concatenate character"
msgstr ""
-#: models.py:1771
+#: models.py:1802
msgid "Importer - Duplicate field"
msgstr ""
-#: models.py:1772
+#: models.py:1803
msgid "Importer - Duplicate fields"
msgstr ""
-#: models.py:1779
+#: models.py:1810
msgid "Regular expression"
msgstr ""
-#: models.py:1782
+#: models.py:1813
msgid "Importer - Regular expression"
msgstr ""
-#: models.py:1783
+#: models.py:1814
msgid "Importer - Regular expressions"
msgstr ""
-#: models.py:1806
+#: models.py:1837
msgid "Importer - Target"
msgstr ""
-#: models.py:1807
+#: models.py:1838
msgid "Importer - Targets"
msgstr ""
-#: models.py:1831 views.py:476
+#: models.py:1862 views.py:518
msgid "True"
msgstr ""
-#: models.py:1832 views.py:478
+#: models.py:1863 views.py:520
msgid "False"
msgstr ""
-#: models.py:1851
+#: models.py:1882
msgid "Is set"
msgstr ""
-#: models.py:1858
+#: models.py:1889
msgid "Importer - Target key"
msgstr ""
-#: models.py:1859
+#: models.py:1890
msgid "Importer - Targets keys"
msgstr ""
-#: models.py:1911 models.py:2571 models.py:2582
+#: models.py:1942 models.py:2633 models.py:2646
msgid "Format"
msgstr ""
-#: models.py:1912 models.py:2674
+#: models.py:1943 models.py:2738
msgid "Operation type"
msgstr ""
-#: models.py:1913
+#: models.py:1944
msgid "Period"
msgstr ""
-#: models.py:1914
+#: models.py:1945
msgid "Report state"
msgstr ""
-#: models.py:1915
+#: models.py:1946
msgid "Unit"
msgstr ""
-#: models.py:1916
+#: models.py:1947
msgid "Material"
msgstr ""
-#: models.py:1918
+#: models.py:1949
msgid "Conservatory state"
msgstr ""
-#: models.py:1919
+#: models.py:1950
msgid "Preservation type"
msgstr ""
-#: models.py:1920
+#: models.py:1951
msgid "Object type"
msgstr ""
-#: models.py:1922
+#: models.py:1953
msgid "Identification type"
msgstr ""
-#: models.py:1924
+#: models.py:1955
msgid "Context record relation type"
msgstr ""
-#: models.py:1925 models.py:2565
+#: models.py:1956 models.py:2625
msgid "Support type"
msgstr ""
-#: models.py:1931
+#: models.py:1962
msgid "Integer"
msgstr ""
-#: models.py:1932
+#: models.py:1963
msgid "Float"
msgstr ""
-#: models.py:1933
+#: models.py:1964
msgid "String"
msgstr ""
-#: models.py:1934 templates/sheet_ope.html:86
+#: models.py:1965 templates/sheet_ope.html:86
msgid "Date"
msgstr ""
-#: models.py:1936 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:1967 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
#: templates/ishtar/dashboards/dashboard_main_detail.html:126
msgid "Year"
msgstr ""
-#: models.py:1937
+#: models.py:1968
msgid "String to boolean"
msgstr ""
-#: models.py:1938
+#: models.py:1969
msgctxt "filesystem"
msgid "File"
msgstr ""
-#: models.py:1939
+#: models.py:1970
msgid "Unknow type"
msgstr ""
-#: models.py:1955
+#: models.py:1986
msgid "4 digit year. e.g.: \"2015\""
msgstr ""
-#: models.py:1956
+#: models.py:1987
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr ""
-#: models.py:1957
+#: models.py:1988
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr ""
-#: models.py:1967
+#: models.py:1998
msgid "Options"
msgstr ""
-#: models.py:1969
+#: models.py:2000
msgid "Split character(s)"
msgstr ""
-#: models.py:1973
+#: models.py:2004
msgid "Importer - Formater type"
msgstr ""
-#: models.py:1974
+#: models.py:2005
msgid "Importer - Formater types"
msgstr ""
-#: models.py:2021 templates/ishtar/dashboards/dashboard_main_detail.html:63
+#: models.py:2052 templates/ishtar/dashboards/dashboard_main_detail.html:63
msgid "Created"
msgstr ""
-#: models.py:2022
+#: models.py:2053
msgid "Analyse in progress"
msgstr ""
-#: models.py:2023
+#: models.py:2054
msgid "Analysed"
msgstr ""
-#: models.py:2024
+#: models.py:2055
msgid "Import pending"
msgstr ""
-#: models.py:2025
+#: models.py:2056
msgid "Import in progress"
msgstr ""
-#: models.py:2026
+#: models.py:2057
msgid "Finished with errors"
msgstr ""
-#: models.py:2027
+#: models.py:2058
msgid "Finished"
msgstr ""
-#: models.py:2028
+#: models.py:2059
msgid "Archived"
msgstr ""
-#: models.py:2040
+#: models.py:2071
msgid "Imported file"
msgstr ""
-#: models.py:2043
+#: models.py:2074
msgid "Associated images (zip file)"
msgstr ""
-#: models.py:2045
+#: models.py:2076
msgid "Encoding"
msgstr ""
-#: models.py:2047
+#: models.py:2078
msgid "Skip lines"
msgstr ""
-#: models.py:2048 templates/ishtar/import_list.html:47
+#: models.py:2079 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr ""
-#: models.py:2051
+#: models.py:2082
msgid "Result file"
msgstr ""
-#: models.py:2054 templates/ishtar/import_list.html:53
+#: models.py:2085 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr ""
-#: models.py:2060
+#: models.py:2091
msgid "Conservative import"
msgstr ""
-#: models.py:2065
+#: models.py:2096
msgid "End date"
msgstr ""
-#: models.py:2067
+#: models.py:2098
msgid "Remaining seconds"
msgstr ""
-#: models.py:2072
+#: models.py:2103
msgid "Import"
msgstr ""
-#: models.py:2089
+#: models.py:2120
msgid "Analyse"
msgstr ""
-#: models.py:2091 models.py:2094
+#: models.py:2122 models.py:2125
msgid "Re-analyse"
msgstr ""
-#: models.py:2092
+#: models.py:2123
msgid "Launch import"
msgstr ""
-#: models.py:2095
+#: models.py:2126
msgid "Re-import"
msgstr ""
-#: models.py:2096
+#: models.py:2127
msgid "Archive"
msgstr ""
-#: models.py:2098
+#: models.py:2129
msgid "Unarchive"
msgstr ""
-#: models.py:2232
+#: models.py:2263
msgid "Organizations"
msgstr ""
-#: models.py:2234
+#: models.py:2265
msgid "Can view all Organizations"
msgstr ""
-#: models.py:2235
+#: models.py:2266
msgid "Can view own Organization"
msgstr ""
-#: models.py:2236
+#: models.py:2267
msgid "Can add own Organization"
msgstr ""
-#: models.py:2238
+#: models.py:2269
msgid "Can change own Organization"
msgstr ""
-#: models.py:2240
+#: models.py:2271
msgid "Can delete own Organization"
msgstr ""
-#: models.py:2275
+#: models.py:2306
msgid "Groups"
msgstr ""
-#: models.py:2280
+#: models.py:2311
msgid "Person types"
msgstr ""
-#: models.py:2286
+#: models.py:2319
msgid "Title type"
msgstr ""
-#: models.py:2287
+#: models.py:2320
msgid "Title types"
msgstr ""
-#: models.py:2294
+#: models.py:2329
msgid "Mr"
msgstr ""
-#: models.py:2295
+#: models.py:2330
msgid "Miss"
msgstr ""
-#: models.py:2296
+#: models.py:2331
msgid "Mr and Mrs"
msgstr ""
-#: models.py:2297
+#: models.py:2332
msgid "Mrs"
msgstr ""
-#: models.py:2298
+#: models.py:2333
msgid "Doctor"
msgstr ""
-#: models.py:2316
+#: models.py:2351
msgid "Contact type"
msgstr ""
-#: models.py:2319 models.py:2368
+#: models.py:2354 models.py:2418
msgid "Types"
msgstr ""
-#: models.py:2322
+#: models.py:2357
msgid "Is attached to"
msgstr ""
-#: models.py:2327
+#: models.py:2362
msgid "Persons"
msgstr ""
-#: models.py:2329
+#: models.py:2364
msgid "Can view all Persons"
msgstr ""
-#: models.py:2330
+#: models.py:2365
msgid "Can view own Person"
msgstr ""
-#: models.py:2331
+#: models.py:2366
msgid "Can add own Person"
msgstr ""
-#: models.py:2332
+#: models.py:2367
msgid "Can change own Person"
msgstr ""
-#: models.py:2333
+#: models.py:2368
msgid "Can delete own Person"
msgstr ""
-#: models.py:2484
+#: models.py:2533
+msgid "Advanced shortcut menu"
+msgstr ""
+
+#: models.py:2536
msgid "Ishtar user"
msgstr ""
-#: models.py:2485
+#: models.py:2537
msgid "Ishtar users"
msgstr ""
-#: models.py:2528
+#: models.py:2580
msgid "To modify the password use the form in Auth > User"
msgstr ""
-#: models.py:2534
+#: models.py:2586
msgid "Author types"
msgstr ""
-#: models.py:2560
+#: models.py:2618
msgid "Source types"
msgstr ""
-#: models.py:2566
+#: models.py:2626
msgid "Support types"
msgstr ""
-#: models.py:2572
+#: models.py:2634
msgid "Formats"
msgstr ""
-#: models.py:2577
+#: models.py:2641
msgid "External ID"
msgstr ""
-#: models.py:2580
+#: models.py:2644
msgid "Support"
msgstr ""
-#: models.py:2584
+#: models.py:2648
msgid "Scale"
msgstr ""
-#: models.py:2598
+#: models.py:2662
msgid "Item number"
msgstr ""
-#: models.py:2599
+#: models.py:2663
msgid "Ref."
msgstr ""
-#: models.py:2602
+#: models.py:2666
msgid "Internal ref."
msgstr ""
-#: models.py:2645
+#: models.py:2709
msgid "Surface (m2)"
msgstr ""
-#: models.py:2646 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2710 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr ""
-#: models.py:2671
+#: models.py:2735
msgid "Is preventive"
msgstr ""
-#: models.py:2675
+#: models.py:2739
msgid "Operation types"
msgstr ""
-#: models.py:2704
+#: models.py:2768
msgid "Preventive"
msgstr ""
-#: models.py:2705
+#: models.py:2769
msgid "Research"
msgstr ""
-#: utils.py:56
+#: utils.py:64
msgid " (...)"
msgstr ""
-#: utils.py:89
+#: utils.py:97
msgid "Load another random image?"
msgstr ""
-#: views.py:109
+#: views.py:111
msgid "New person"
msgstr ""
-#: views.py:117
+#: views.py:119
msgid "Person modification"
msgstr ""
-#: views.py:132
+#: views.py:134
msgid "Person deletion"
msgstr ""
-#: views.py:143
+#: views.py:145
msgid "New organization"
msgstr ""
-#: views.py:150
+#: views.py:152
msgid "Organization modification"
msgstr ""
-#: views.py:166
+#: views.py:168
msgid "Organization deletion"
msgstr ""
-#: views.py:173
+#: views.py:175
msgid "Account management"
msgstr ""
-#: views.py:179
+#: views.py:181
msgid "Account deletion"
msgstr ""
-#: views.py:210
+#: views.py:233
msgid "Archaeological file"
msgstr ""
-#: views.py:213
+#: views.py:236
msgid "Context record"
msgstr ""
-#: views.py:215
+#: views.py:238
msgid "Find"
msgstr ""
-#: views.py:1105 views.py:1174
+#: views.py:1178 views.py:1247
msgid "Operation not permitted."
msgstr ""
-#: views.py:1107
+#: views.py:1180
#, python-format
msgid "New %s"
msgstr ""
-#: views.py:1193 views.py:1247
+#: views.py:1266 views.py:1320
msgid "Operations"
msgstr ""
-#: views.py:1446 templates/ishtar/import_list.html:43
+#: views.py:1519 templates/ishtar/import_list.html:43
msgid "Link unmatched items"
msgstr ""
-#: views.py:1461
+#: views.py:1534
msgid "Delete import"
msgstr ""
-#: views.py:1500
+#: views.py:1573
msgid "Merge persons"
msgstr ""
-#: views.py:1524
+#: views.py:1597
msgid "Select the main person"
msgstr ""
-#: views.py:1533
+#: views.py:1606
msgid "Merge organization"
msgstr ""
-#: views.py:1543
+#: views.py:1616
msgid "Select the main organization"
msgstr ""
-#: views.py:1583 views.py:1599
+#: views.py:1656 views.py:1672
msgid "Corporation manager"
msgstr ""
@@ -1514,28 +1518,36 @@ msgid "The %(app_name)s team"
msgstr ""
#: templates/base.html:41
-msgid "Logged in"
+msgid "Searches in the shortcut menu deals with all items."
msgstr ""
#: templates/base.html:42
+msgid "Searches in the shortcut menu deals with only your items."
+msgstr ""
+
+#: templates/base.html:49
+msgid "Logged in"
+msgstr ""
+
+#: templates/base.html:50
msgid "Log out"
msgstr ""
-#: templates/base.html:43
+#: templates/base.html:51
msgid "Change password"
msgstr ""
-#: templates/base.html:45 templates/registration/activate.html:10
+#: templates/base.html:53 templates/registration/activate.html:10
#: templates/registration/login.html:8 templates/registration/login.html:10
#: templates/registration/password_reset_complete.html:8
msgid "Log in"
msgstr ""
-#: templates/base.html:51
+#: templates/base.html:59
msgid "Lang"
msgstr ""
-#: templates/base.html:51 templates/base.html.py:75 templates/welcome.html:8
+#: templates/base.html:59 templates/base.html.py:83 templates/welcome.html:8
#: templates/welcome.html.py:9 templates/welcome.html:10
#: templates/welcome.html.py:11 templates/ishtar/manage_basket.html:4
#: templates/ishtar/blocks/window_field.html:1
@@ -1545,23 +1557,23 @@ msgstr ""
msgid ":"
msgstr ""
-#: templates/base.html:73
+#: templates/base.html:81
msgid "Current items"
msgstr ""
-#: templates/base.html:107
+#: templates/base.html:115
msgid "Processing..."
msgstr ""
-#: templates/base.html:108
+#: templates/base.html:116
msgid "This can be long."
msgstr ""
-#: templates/base.html:109
+#: templates/base.html:117
msgid "Time to take a coffee?"
msgstr ""
-#: templates/base.html:110
+#: templates/base.html:118
msgid "Time to take another coffee?"
msgstr ""
@@ -1833,7 +1845,7 @@ msgstr ""
msgid "where the magic happens."
msgstr ""
-#: templates/window.html:38 templates/blocks/JQueryJqGrid.html:25
+#: templates/window.html:40 templates/blocks/JQueryJqGrid.html:25
#: templates/ishtar/manage_basket.html:9
msgid "Add"
msgstr ""
@@ -2112,14 +2124,50 @@ msgstr ""
msgid "Documents associated to finds"
msgstr ""
-#: templates/ishtar/blocks/shortcut_menu.html:6
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:7
+#: templates/ishtar/blocks/shortcut_menu.html:7
+msgid ""
+"Simple menu limited to your own items. Be careful only the last 100 items "
+"are displayed."
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:7
+#: templates/ishtar/blocks/shortcut_menu.html:7
+msgid "simple"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:8
+#: templates/ishtar/blocks/shortcut_menu.html:8
+msgid "Advanced menu."
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:8
+#: templates/ishtar/blocks/shortcut_menu.html:8
+msgid "advanced"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:11
+#: templates/ishtar/blocks/shortcut_menu.html:10
msgid ""
"Pin an item in order to constrain default searches with this item. By "
"default only your items are displayed. New created and modified items are "
"auto-pin."
msgstr ""
-#: templates/ishtar/blocks/shortcut_menu.html:18
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:13
+msgid "Search within my items"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:14
+msgid "Search within all items"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:17
+msgid "Refresh menu"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:28
+#: templates/ishtar/blocks/shortcut_menu.html:22
msgid "Unpin"
msgstr ""
diff --git a/ishtar_common/migrations/0016_auto__add_field_ishtaruser_advanced_shortcut_menu.py b/ishtar_common/migrations/0016_auto__add_field_ishtaruser_advanced_shortcut_menu.py
new file mode 100644
index 000000000..19a076913
--- /dev/null
+++ b/ishtar_common/migrations/0016_auto__add_field_ishtaruser_advanced_shortcut_menu.py
@@ -0,0 +1,464 @@
+# -*- 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 'IshtarUser.advanced_shortcut_menu'
+ db.add_column('ishtar_common_ishtaruser', 'advanced_shortcut_menu',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'IshtarUser.advanced_shortcut_menu'
+ db.delete_column('ishtar_common_ishtaruser', 'advanced_shortcut_menu')
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.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.formatertype': {
+ 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'},
+ 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.globalvar': {
+ 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'},
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.historicalorganization': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.historicalperson': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalPerson'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'attached_to_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.import': {
+ 'Meta': {'object_name': 'Import'},
+ 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}),
+ 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '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.importercolumn': {
+ 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'},
+ 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}),
+ 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}),
+ 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'ishtar_common.importerdefault': {
+ 'Meta': {'object_name': 'ImporterDefault'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.importerdefaultvalues': {
+ 'Meta': {'object_name': 'ImporterDefaultValues'},
+ 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.importerduplicatefield': {
+ 'Meta': {'object_name': 'ImporterDuplicateField'},
+ 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}),
+ 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}),
+ 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ 'ishtar_common.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.importtarget': {
+ 'Meta': {'object_name': 'ImportTarget'},
+ 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}),
+ 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.ishtarsiteprofile': {
+ 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'},
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}),
+ 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}),
+ 'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{year}-{numeric_reference}'"}),
+ 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}),
+ 'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.TextField', [], {}),
+ 'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}),
+ 'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'ishtar_common.ishtaruser': {
+ 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']},
+ 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.itemkey': {
+ 'Meta': {'object_name': 'ItemKey'},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.regexp': {
+ 'Meta': {'object_name': 'Regexp'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'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.targetkey': {
+ 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'},
+ 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}),
+ 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'key': ('django.db.models.fields.TextField', [], {}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.titletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['ishtar_common'] \ No newline at end of file
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 95d995a91..ba3d51172 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -235,7 +235,7 @@ class OwnPerms:
return cls.objects.filter(query).count()
@classmethod
- def get_owns(cls, user, replace_query={}):
+ def get_owns(cls, user, replace_query={}, limit=None):
"""
Get Own items
"""
@@ -252,7 +252,10 @@ class OwnPerms:
q = cls.objects.filter(query)
if replace_query:
q = cls.objects.filter(**replace_query)
- items += list(q.order_by(*cls._meta.ordering).all())
+ if limit:
+ items += list(q.order_by('-pk')[:limit])
+ else:
+ items += list(q.order_by(*cls._meta.ordering).all())
return items
@@ -2526,6 +2529,8 @@ class IshtarUser(User):
'person__attached_to')
person = models.ForeignKey(Person, verbose_name=_(u"Person"), unique=True,
related_name='ishtaruser')
+ advanced_shortcut_menu = models.BooleanField(
+ _(u"Advanced shortcut menu"), default=False)
class Meta:
verbose_name = _(u"Ishtar user")
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js
index fecefe0a9..6017aed64 100644
--- a/ishtar_common/static/js/ishtar.js
+++ b/ishtar_common/static/js/ishtar.js
@@ -23,8 +23,6 @@ beforeSend: function(xhr, settings) {
}
}});
-var shortcut_url = '';
-
function manage_async_link(event){
event.preventDefault();
var url = $(this).attr('href');
@@ -38,10 +36,36 @@ function manage_async_link(event){
function get_next_table_id(){}
function get_previous_table_id(){}
+var shortcut_url = '';
+var advanced_menu = false;
+var activate_all_search_url = '/activate-all-search/';
+var activate_own_search_url = '/activate-own-search/';
+var activate_advanced_url = '/activate-advanced-menu/';
+var activate_simple_url = '/activate-simple-menu/';
+
+
function init_shortcut_menu(html){
$("#progress").hide();
$("#context_menu").html(html);
$(".chosen-select").chosen();
+ if (advanced_menu) {
+ init_advanced_shortcut_fields();
+ } else {
+ init_shortcut_fields();
+ }
+ $("#short-menu-advanced").click(function(){
+ $.get(url_path + activate_advanced_url,
+ load_shortcut_menu
+ );
+ });
+ $("#short-menu-simple").click(function(){
+ $.get(url_path + activate_simple_url,
+ load_shortcut_menu
+ );
+ });
+}
+
+function init_shortcut_fields(){
$("#current_file").change(function(){
$.post('/' + url_path + 'update-current-item/',
{item:'file', value:$("#current_file").val()},
@@ -68,6 +92,41 @@ function init_shortcut_menu(html){
});
}
+function init_advanced_shortcut_fields(){
+ $('#id_file-shortcut').change(function(){
+ $("#id_select_file-shortcut").attr(
+ 'title', $('#id_select_file-shortcut').val());
+ $.post('/' + url_path + 'update-current-item/',
+ {item: "file", value:$("#id_file-shortcut").val()},
+ load_shortcut_menu
+ );
+ });
+ $('#id_operation-shortcut').change(function(){
+ $("#id_select_operation-shortcut").attr(
+ 'title', $('#id_select_operation-shortcut').val());
+ $.post('/' + url_path + 'update-current-item/',
+ {item: "operation", value:$("#id_operation-shortcut").val()},
+ load_shortcut_menu
+ );
+ });
+ $('#id_contextrecord-shortcut').change(function(){
+ $("#id_select_contextrecord-shortcut").attr(
+ 'title', $('#id_select_contextrecord-shortcut').val());
+ $.post('/' + url_path + 'update-current-item/',
+ {item: "contextrecord", value:$("#id_contextrecord-shortcut").val()},
+ load_shortcut_menu
+ );
+ });
+ $('#id_find-shortcut').change(function(){
+ $("#id_select_find-shortcut").attr(
+ 'title', $('#id_select_find-shortcut').val());
+ $.post('/' + url_path + 'update-current-item/',
+ {item: "find", value:$("#id_find-shortcut").val()},
+ load_shortcut_menu
+ );
+ });
+}
+
function display_info(msg){
$('#message .information .content').html(msg);
$('#message').fadeIn('slow');
@@ -191,7 +250,12 @@ function load_window(url, speed, on_success){
}
function load_current_window(url, model_name){
- var id = $("#current_" + model_name).val();
+ var id;
+ if (advanced_menu){
+ id = $("#id_" + model_name + "-shortcut").val();
+ } else {
+ id = $("#current_" + model_name).val();
+ }
if (!id) return;
url = url.split('/');
url[url.length - 1] = id;
@@ -267,3 +331,24 @@ function show_hide_flex(id){
$(id).hide();
}
}
+
+var activate_all_search_msg = "Searches in the shortcut menu deals with all items.";
+var activate_own_search_msg = "Searches in the shortcut menu deals with only your items.";
+
+function activate_all_search(){
+ $('.activate_all_search').removeClass('disabled');
+ $('.activate_own_search').addClass('disabled');
+ $.get(activate_all_search_url, function(data) {
+ display_info(activate_all_search_msg);
+ });
+ return false;
+}
+
+function activate_own_search(){
+ $('.activate_own_search').removeClass('disabled');
+ $('.activate_all_search').addClass('disabled');
+ $.get(activate_own_search_url, function(data) {
+ display_info(activate_own_search_msg);
+ });
+ return false;
+}
diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css
index aab5063e4..8aac9e2a2 100644
--- a/ishtar_common/static/media/style.css
+++ b/ishtar_common/static/media/style.css
@@ -29,6 +29,16 @@ a, a.remove {
color:#D14;
}
+span.disabled,
+a.disabled {
+ color:#ccc;
+}
+
+span.disabled:hover,
+a.disabled:hover {
+ color:#DB5C7C;
+}
+
.badge,
a.add-button,
#reset_wizards,
@@ -56,6 +66,10 @@ a.add-button,
font-family: 'FontAwesome', Arial, Helvetica, sans-serif;
}
+#context_menu .chosen-select{
+ width: 400px;
+}
+
#context_menu option.basket{
color:#000;
}
@@ -229,6 +243,7 @@ button, input[type=submit], button.submit{
-webkit-border-radius:4px;
}
+button.btn-selected,
button:hover, input[type=submit]:hover{
cursor:pointer;
color:#922;
@@ -409,6 +424,16 @@ div#language_form_div label{
display:inline;
}*/
+.btn-group .btn{
+ padding: 0;
+ margin: 0;
+}
+
+.short-menu-buttons{
+ position: absolute;
+ margin-top: -20px;
+}
+
div#context_menu{
height:110px;
margin-right:10px;
@@ -418,6 +443,7 @@ div#context_menu{
}
div#context_menu fieldset{
+ margin-top: 8px;
background-color:#f1f2f6;
border:0 solid #CCC;
-moz-border-radius: 0;
@@ -425,13 +451,25 @@ div#context_menu fieldset{
border-radius: 0;
}
+div#action_current_items{
+ display: inline-block;
+ vertical-align: top;
+ width: 70px;
+}
+
+div#action_current_items p{
+ padding: 0;
+ margin: 0;
+ text-align: center;
+}
+
div#context_menu table{
display: inline;
vertical-align: top;
}
div#context_menu .icon{
- padding: 0.6em 0.5em;
+ padding: 0.2em 0.3em;
}
div#context_menu ul{
@@ -792,7 +830,9 @@ table.confirm tr.spacer td:last-child{
/* jquery widget customizations */
.ui-autocomplete{
- font-size:0.7em
+ font-size:0.7em;
+ z-index:10000 !important;
+ width:350px;
}
.ui-autocomplete-loading {
diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html
index 695edd758..7101ed7de 100644
--- a/ishtar_common/templates/base.html
+++ b/ishtar_common/templates/base.html
@@ -32,6 +32,14 @@
{% endblock %}
<script type='text/javascript'>
var shortcut_url = '{% url "shortcut-menu" %}';
+ var get_file_url = '{% url "get-file-shortcut" %}';
+ var get_operation_url = '{% url "get-operation-shortcut" %}';
+ var get_contextrecord_url = '{% url "get-contextrecord-shortcut" %}';
+ 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.' %}";
</script>
</head>
<body{% if current_theme%} id='{{current_theme}}'{%endif%}>
@@ -50,7 +58,7 @@
{% csrf_token %}
<label for='language_selector'>{% trans "Lang" %}{% trans ":"%} </label>
<select name="language" id='language_selector'>
- <option value="">-------</option>
+ <option value="">----------</option>
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}"{% ifequal LANGUAGE_CODE lang.0 %} selected='selected'{% endifequal %}>{{ lang.1 }}</option>
{% endfor %}
diff --git a/ishtar_common/templates/ishtar/blocks/advanced_shortcut_menu.html b/ishtar_common/templates/ishtar/blocks/advanced_shortcut_menu.html
new file mode 100644
index 000000000..581381e82
--- /dev/null
+++ b/ishtar_common/templates/ishtar/blocks/advanced_shortcut_menu.html
@@ -0,0 +1,38 @@
+{% load i18n %}
+{% load url from future%}
+{% if menu %}
+<form method="post" action="{% url 'update-current-item' %}">
+<fieldset>
+<div class="short-menu-buttons btn-group" role="group">
+ <button type="button" class="btn" id='short-menu-simple' title="{% trans 'Simple menu limited to your own items. Be careful only the last 100 items are displayed.' %}">{% trans "simple" %}</button>
+ <button type="button" class="btn btn-selected" id='short-menu-advanced' title="{% trans 'Advanced menu.' %}">{% trans "advanced" %}</button>
+</div>
+<div id='action_current_items'>
+<p><i class="icon fa fa-thumb-tack fa-2x" aria-hidden="true" title="{% trans 'Pin an item in order to constrain default searches with this item. By default only your items are displayed. New created and modified items are auto-pin.' %}"></i></p>
+<p>
+<a href='' onclick='return activate_own_search();' class='activate_own_search{% if SHORTCUT_SEARCH == 'all' %} disabled{% endif %}'><i class="icon fa fa-user" aria-hidden="true" title="{% trans 'Search within my items' %}"></i></a>
+<a href='' class='activate_all_search{% if SHORTCUT_SEARCH == 'own' %} disabled{% endif %}' onclick='return activate_all_search();'><i class="icon fa fa-users" aria-hidden="true" title="{% trans 'Search within all items' %}"></i></a>
+</p>
+<p>
+<a href='' onclick='return load_shortcut_menu();' class='disabled'><i class="icon fa fa-2x fa-refresh" aria-hidden="true" title="{% trans 'Refresh menu' %}"></i></a>
+</p>
+</div>
+<table id='current_items'>
+{% for lbl, model_name, current, widget in menu %}
+<tr>
+ <td><label for="current_{{model_name}}">{{lbl}}</label></td>
+ <td>
+ {{widget|safe}}
+ </td>{% with 'show-'|add:model_name as model_url%}
+ <td><a href='#' onclick='load_current_window("{% url model_url current %}", "{{model_name}}");' class='display_details'><i class="fa fa-info-circle" aria-hidden="true"></i></a></td>
+ <td><span class='disabled pin-action' onclick='$.get("{% url 'unpin' model_name %}", function(){load_shortcut_menu();});' title="{% trans 'Unpin' %}">
+ <i class="fa fa-times"></i>
+ </span></td>
+ {% endwith %}
+</tr>
+{% endfor %}
+</table>
+</fieldset>
+</form>
+<script type='text/javascript'>var advanced_menu = true;</script>
+{% endif %}
diff --git a/ishtar_common/templates/ishtar/blocks/shortcut_menu.html b/ishtar_common/templates/ishtar/blocks/shortcut_menu.html
index c1100ae01..5a0463c30 100644
--- a/ishtar_common/templates/ishtar/blocks/shortcut_menu.html
+++ b/ishtar_common/templates/ishtar/blocks/shortcut_menu.html
@@ -3,6 +3,10 @@
{% if current_menu %}
<form method="post" action="{% url 'update-current-item' %}">
<fieldset>
+<div class="short-menu-buttons btn-group" role="group">
+ <button type="button" class="btn btn-selected" id='short-menu-simple' title="{% trans 'Simple menu limited to your own items. Be careful only the last 100 items are displayed.' %}">{% trans "simple" %}</button>
+ <button type="button" class="btn" id='short-menu-advanced' title="{% trans 'Advanced menu.' %}">{% trans "advanced" %}</button>
+</div>
<i class="icon fa fa-thumb-tack fa-2x" aria-hidden="true" title="{% trans 'Pin an item in order to constrain default searches with this item. By default only your items are displayed. New created and modified items are auto-pin.' %}"></i>
<table id='current_items'>
{% for lbl, model_name, main_cls, items in current_menu %}
@@ -24,4 +28,5 @@
</table>
</fieldset>
</form>
+<script type='text/javascript'>var advanced_menu = false;</script>
{% endif %}
diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py
index 27078dd9e..22a09a052 100644
--- a/ishtar_common/urls.py
+++ b/ishtar_common/urls.py
@@ -192,6 +192,14 @@ urlpatterns += patterns(
views.OrgaManualMergeItems.as_view(),
name='orga_manual_merge_items'),
url(r'reset/$', 'reset_wizards', name='reset_wizards'),
+ url(r'activate-all-search/$', 'activate_all_search',
+ name='activate-all-search'),
+ url(r'activate-own-search/$', 'activate_own_search',
+ name='activate-own-search'),
+ url(r'activate-advanced-menu/$', 'activate_advanced_shortcut_menu',
+ name='activate-advanced-menu'),
+ url(r'activate-simple-menu/$', 'activate_simple_shortcut_menu',
+ name='activate-simple-menu'),
url(r'(?P<action_slug>' + actions + r')/$', 'action', name='action'),
)
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 5f3e80c77..3406cf7af 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -55,6 +55,7 @@ from xhtml2odt import xhtml2odt
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
@@ -62,6 +63,7 @@ from archaeological_operations.forms import DashboardForm as DashboardFormOpe
from archaeological_files.forms import DashboardForm as DashboardFormFile
from ishtar_common.forms import FinalForm, FinalDeleteForm
+from ishtar_common.widgets import JQueryAutoComplete
from ishtar_common.utils import get_random_item_image_link, shortify
from ishtar_common import forms_common as forms
from ishtar_common import wizards
@@ -198,12 +200,33 @@ def get_autocomplete_generic(model, extra={'available': True}):
return func
-def shortcut_menu(request):
- from archaeological_operations.models import Operation
- from archaeological_files.models import File
- from archaeological_context_records.models import ContextRecord
- from archaeological_finds.models import Find
+def activate_all_search(request):
+ request.session['SHORTCUT_SEARCH'] = 'all'
+ return HttpResponse('OK', mimetype='text/plain')
+
+
+def activate_own_search(request):
+ request.session['SHORTCUT_SEARCH'] = 'own'
+ return HttpResponse('OK', mimetype='text/plain')
+
+
+def activate_advanced_shortcut_menu(request):
+ if not hasattr(request.user, 'ishtaruser'):
+ return HttpResponse('KO', mimetype='text/plain')
+ request.user.ishtaruser.advanced_shortcut_menu = True
+ request.user.ishtaruser.save()
+ return HttpResponse('OK', mimetype='text/plain')
+
+
+def activate_simple_shortcut_menu(request):
+ if not hasattr(request.user, 'ishtaruser'):
+ return HttpResponse('KO', mimetype='text/plain')
+ request.user.ishtaruser.advanced_shortcut_menu = False
+ request.user.ishtaruser.save()
+ return HttpResponse('OK', mimetype='text/plain')
+
+def shortcut_menu(request):
profile = get_current_profile()
CURRENT_ITEMS = []
if profile.files:
@@ -213,6 +236,27 @@ def shortcut_menu(request):
CURRENT_ITEMS.append((_(u"Context record"), ContextRecord))
if profile.find:
CURRENT_ITEMS.append((_(u"Find"), Find))
+ if hasattr(request.user, 'ishtaruser') and \
+ request.user.ishtaruser.advanced_shortcut_menu:
+ dct = {'current_menu': [], 'menu': [],
+ 'SHORTCUT_SEARCH': request.session['SHORTCUT_SEARCH']
+ if 'SHORTCUT_SEARCH' in request.session else 'own'}
+
+ for lbl, model in CURRENT_ITEMS:
+ model_name = model.SLUG
+ current = model_name in request.session \
+ and request.session[model_name]
+
+ dct['menu'].append((
+ lbl, model_name, current or 0,
+ JQueryAutoComplete(
+ reverse('get-' + model.SLUG + '-shortcut'),
+ model).render(
+ model.SLUG + '-shortcut', value=current,
+ attrs={'id': 'current_' + model.SLUG})))
+ return render_to_response(
+ 'ishtar/blocks/advanced_shortcut_menu.html',
+ dct, context_instance=RequestContext(request))
dct = {'current_menu': []}
current_selected_item = None
for lbl, model in CURRENT_ITEMS:
@@ -222,7 +266,8 @@ def shortcut_menu(request):
current = model_name in request.session and request.session[model_name]
items = []
for item in model.get_owns(request.user,
- menu_filtr=current_selected_item):
+ menu_filtr=current_selected_item,
+ limit=100):
pk = unicode(item.pk)
if item.IS_BASKET:
pk = "basket-" + pk
@@ -249,10 +294,6 @@ def shortcut_menu(request):
def get_current_items(request):
- 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
currents = {}
for key, model in (('file', File),
('operation', Operation),
@@ -290,6 +331,7 @@ def update_current_item(request, item_type=None, pk=None):
request.session[item_type] = request.POST['value']
else:
request.session[item_type] = str(pk)
+ request.session['SHORTCUT_SEARCH'] = 'all'
currents = get_current_items(request)
# reinit when descending item are not relevant
@@ -516,6 +558,9 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
break # max right reach
if force_own:
own = True
+ if full == 'shortcut' and 'SHORTCUT_SEARCH' in request.session and \
+ request.session['SHORTCUT_SEARCH'] == 'own':
+ own = True
EMPTY = ''
if 'type' in dct:
data_type = dct.pop('type')
@@ -544,6 +589,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
request_items = request.method == 'POST' and request.POST \
or request.GET
dct = base_request.copy()
+ if full == 'shortcut':
+ dct['cached_label__icontains'] = request.GET.get('term', None)
and_reqs, or_reqs = [], []
try:
old = 'old' in request_items and int(request_items['old'])
@@ -577,7 +624,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
q = Q(**{req_key: val})
reqs = reqs | q
and_reqs.append(reqs)
- if 'submited' not in request_items:
+ if 'submited' not in request_items and full != 'shortcut':
# default search
# an item is selected in the default menu
if default_name in request.session and \
@@ -706,6 +753,22 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
for and_req in and_reqs:
query = query & and_req
+ # manage hierarchic in shortcut menu
+ if full == 'shortcut':
+ ASSOCIATED_ITEMS = {
+ Operation: (File, 'associated_file__pk'),
+ ContextRecord: (Operation, 'operation__pk'),
+ Find: (ContextRecord, 'base_finds__context_record__pk'),
+ }
+ if model in ASSOCIATED_ITEMS:
+ upper_model, upper_key = ASSOCIATED_ITEMS[model]
+ model_name = upper_model.SLUG
+ current = model_name in request.session \
+ and request.session[model_name]
+ if current:
+ dct = {upper_key: current}
+ query = query & Q(**dct)
+
items = model.objects.filter(query).distinct()
# print(items.query)
q = request_items.get('sidx')
@@ -731,6 +794,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
for idx, col in enumerate(table_cols):
if col in model.CONTEXTUAL_TABLE_COLS[contxt]:
table_cols[idx] = model.CONTEXTUAL_TABLE_COLS[contxt][col]
+ if full == 'shortcut':
+ table_cols = ['cached_label']
# manage sort tables
manual_sort_key = None
@@ -773,6 +838,9 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
pass
start = (page_nb - 1) * row_nb
end = page_nb * row_nb
+ if full == 'shortcut':
+ start = 0
+ end = 20
items_nb = items.count()
if manual_sort_key:
items = items.all()
@@ -887,13 +955,18 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
if hasattr(model, 'COL_LINK') and k in model.COL_LINK:
value = link_ext_template.format(value, value)
res[k] = value
+ if full == 'shortcut':
+ res['value'] = res.pop('cached_label')
rows.append(res)
- data = json.dumps({
- "records": items_nb,
- "rows": rows,
- "page": page_nb,
- "total": (items_nb / row_nb + 1) if row_nb else items_nb,
- })
+ if full == 'shortcut':
+ data = json.dumps(rows)
+ else:
+ data = json.dumps({
+ "records": items_nb,
+ "rows": rows,
+ "page": page_nb,
+ "total": (items_nb / row_nb + 1) if row_nb else items_nb,
+ })
return HttpResponse(data, mimetype='text/plain')
elif data_type == "csv":
response = HttpResponse(mimetype='text/csv')
diff --git a/scripts/2016-09-29-clean-dup-towns-pdl.py b/scripts/2016-09-29-clean-dup-towns-pdl.py
new file mode 100644
index 000000000..ebacb2fdf
--- /dev/null
+++ b/scripts/2016-09-29-clean-dup-towns-pdl.py
@@ -0,0 +1,51 @@
+from ishtar_common.models import Town
+
+
+dup_nb = 0
+pdl = []
+DPTS = ('44', '49', '53', '72', '85')
+
+for dpt in DPTS:
+ for town in Town.objects.filter(numero_insee__startswith=dpt):
+ pdl.append(town.pk)
+ for dup in Town.objects.filter(name=town.name).exclude(pk=town.pk):
+ not_dup = False
+ for d in DPTS:
+ if dup.numero_insee.startswith(d):
+ not_dup = True
+ if not_dup:
+ continue
+ for item in dup.file_main.all():
+ item.main_town = town
+ p = item.save()
+ for item in dup.parcels.all():
+ item.main_town = town
+ p = item.save()
+ for item in dup.file.all():
+ item.towns.remove(dup)
+ item.towns.add(town)
+ for item in dup.operations.all():
+ item.towns.remove(dup)
+ item.towns.add(town)
+ dup_nb += 1
+ dup.delete()
+
+
+print("{} items cleaned".format(dup_nb))
+
+strange = []
+for town in Town.objects.exclude(pk__in=pdl):
+ if (town.file_main.count() or town.parcels.count() or town.file.count() or
+ town.operations.count()):
+ strange.append((town, town.file_main.count(), town.parcels.count(),
+ town.file.count(), town.operations.count()))
+ continue
+ town.delete()
+
+
+print('* Problems with:')
+for t in strange:
+ print("{}: \n\t* {} ville principale dossier\n\t* {} parcelles\n\t* {} "
+ "villes pour"
+ " dossier\n\t* {} ville pour operation".format(t[0], t[1], t[2],
+ t[3], t[4]))
diff --git a/translations/de/ishtar_common.po b/translations/de/ishtar_common.po
index d1119d29e..aa57a0656 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:245 models.py:1278
+#: forms.py:245 models.py:1307
msgid "Template"
msgstr ""
#: forms_common.py:41 forms_common.py:59 forms_common.py:182
-#: forms_common.py:406 models.py:1344 models.py:2658
+#: forms_common.py:406 models.py:1373 models.py:2722
#: 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.</p>"
msgstr ""
-#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1512
-#: models.py:2326 models.py:2480 models.py:2538
+#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1543
+#: models.py:2361 models.py:2530 models.py:2592
#: 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:1513 models.py:2231
+#: ishtar_menu.py:75 models.py:1544 models.py:2262
#: 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:945 models.py:1277
-#: models.py:1558 models.py:1776 models.py:2225 models.py:2312 models.py:2644
+#: forms_common.py:376 forms_common.py:446 models.py:974 models.py:1306
+#: models.py:1589 models.py:1807 models.py:2256 models.py:2347 models.py:2708
#: templates/ishtar/sheet_organization.html:8
#: templates/ishtar/sheet_organization.html:21
msgid "Name"
msgstr ""
-#: forms_common.py:174 models.py:1499 models.py:1907
+#: forms_common.py:174 models.py:1528 models.py:1938
msgid "Organization type"
msgstr ""
-#: forms_common.py:176 forms_common.py:400 models.py:1339
+#: forms_common.py:176 forms_common.py:400 models.py:1368
#: templates/ishtar/sheet_organization.html:10
msgid "Address"
msgstr ""
-#: forms_common.py:178 forms_common.py:403 models.py:1340
+#: forms_common.py:178 forms_common.py:403 models.py:1369
#: templates/ishtar/sheet_organization.html:11
msgid "Address complement"
msgstr ""
-#: forms_common.py:180 forms_common.py:404 models.py:1342
+#: forms_common.py:180 forms_common.py:404 models.py:1371
#: templates/ishtar/sheet_organization.html:12
msgid "Postal code"
msgstr ""
-#: forms_common.py:183 forms_common.py:407 models.py:1345
+#: forms_common.py:183 forms_common.py:407 models.py:1374
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:1372
+#: forms_common.py:448 forms_common.py:572 models.py:1401
msgid "Email"
msgstr ""
-#: forms_common.py:186 forms_common.py:383 models.py:1357
+#: forms_common.py:186 forms_common.py:383 models.py:1386
#: 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:1369
+#: forms_common.py:187 forms_common.py:392 models.py:1398
#: 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:1935
-#: models.py:2227 models.py:2579 templates/sheet_ope.html:85
+#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:1966
+#: models.py:2258 models.py:2643 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
@@ -256,7 +256,7 @@ msgstr ""
msgid "Type"
msgstr ""
-#: forms_common.py:220 views.py:137
+#: forms_common.py:220 views.py:139
msgid "Organization search"
msgstr ""
@@ -272,12 +272,12 @@ msgstr ""
msgid "Organization to merge"
msgstr ""
-#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2310
+#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2345
#: templates/ishtar/sheet_organization.html:22
msgid "Surname"
msgstr ""
-#: forms_common.py:339 forms_common.py:434 views.py:102
+#: forms_common.py:339 forms_common.py:434 views.py:104
msgid "Person search"
msgstr ""
@@ -290,25 +290,25 @@ msgstr ""
msgid "Identity"
msgstr ""
-#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1908
-#: models.py:2304 models.py:2306 models.py:2576 templates/sheet_ope.html:104
+#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1939
+#: models.py:2339 models.py:2341 models.py:2640 templates/sheet_ope.html:104
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Title"
msgstr ""
-#: forms_common.py:372 models.py:2308
+#: forms_common.py:372 models.py:2343
msgid "Salutation"
msgstr ""
-#: forms_common.py:378 models.py:2314
+#: forms_common.py:378 models.py:2349
msgid "Raw name"
msgstr ""
-#: forms_common.py:381 models.py:1358
+#: forms_common.py:381 models.py:1387
msgid "Phone description"
msgstr ""
-#: forms_common.py:384 models.py:1360 models.py:1362
+#: forms_common.py:384 models.py:1389 models.py:1391
msgid "Phone description 2"
msgstr ""
@@ -316,11 +316,11 @@ msgstr ""
msgid "Phone 2"
msgstr ""
-#: forms_common.py:388 models.py:1366
+#: forms_common.py:388 models.py:1395
msgid "Phone description 3"
msgstr ""
-#: forms_common.py:390 models.py:1364
+#: forms_common.py:390 models.py:1393
msgid "Phone 3"
msgstr ""
@@ -328,23 +328,23 @@ msgstr ""
msgid "Current organization"
msgstr ""
-#: forms_common.py:409 models.py:1347
+#: forms_common.py:409 models.py:1376
msgid "Other address: address"
msgstr ""
-#: forms_common.py:412 models.py:1350
+#: forms_common.py:412 models.py:1379
msgid "Other address: address complement"
msgstr ""
-#: forms_common.py:414 models.py:1351
+#: forms_common.py:414 models.py:1380
msgid "Other address: postal code"
msgstr ""
-#: forms_common.py:416 models.py:1353
+#: forms_common.py:416 models.py:1382
msgid "Other address: town"
msgstr ""
-#: forms_common.py:418 models.py:1355
+#: forms_common.py:418 models.py:1384
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:2279
+#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2310
msgid "Person type"
msgstr ""
@@ -392,7 +392,7 @@ msgstr ""
msgid "Send the new password by email?"
msgstr ""
-#: forms_common.py:628 forms_common.py:641 models.py:2659
+#: forms_common.py:628 forms_common.py:641 models.py:2723
msgid "Towns"
msgstr ""
@@ -408,7 +408,7 @@ msgstr ""
msgid "Documentation informations"
msgstr ""
-#: forms_common.py:775 forms_common.py:823 models.py:1909 models.py:2559
+#: forms_common.py:775 forms_common.py:823 models.py:1940 models.py:2617
msgid "Source type"
msgstr ""
@@ -420,37 +420,37 @@ msgstr ""
msgid "Internal reference"
msgstr ""
-#: forms_common.py:783 models.py:2590
+#: forms_common.py:783 models.py:2654
msgid "Numerical ressource (web address)"
msgstr ""
-#: forms_common.py:784 models.py:2592
+#: forms_common.py:784 models.py:2656
msgid "Receipt date"
msgstr ""
-#: forms_common.py:786 models.py:2062 models.py:2594
+#: forms_common.py:786 models.py:2093 models.py:2658
msgid "Creation date"
msgstr ""
-#: forms_common.py:789 models.py:2597
+#: forms_common.py:789 models.py:2661
msgid "Receipt date in documentation"
msgstr ""
-#: forms_common.py:791 forms_common.py:827 models.py:289 models.py:548
-#: models.py:1803 models.py:2318 models.py:2604
+#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:577
+#: models.py:1834 models.py:2353 models.py:2668
msgid "Comment"
msgstr ""
-#: forms_common.py:793 forms_common.py:826 models.py:947 models.py:1562
-#: models.py:1735 models.py:1777 models.py:2603 templates/sheet_ope.html:128
+#: forms_common.py:793 forms_common.py:826 models.py:976 models.py:1593
+#: models.py:1766 models.py:1808 models.py:2667 templates/sheet_ope.html:128
msgid "Description"
msgstr ""
-#: forms_common.py:796 models.py:2605
+#: forms_common.py:796 models.py:2669
msgid "Additional information"
msgstr ""
-#: forms_common.py:798 forms_common.py:830 models.py:2607
+#: forms_common.py:798 forms_common.py:830 models.py:2671
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:2543
+#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2597
#: 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:1910 models.py:2533 models.py:2540
+#: forms_common.py:856 models.py:1941 models.py:2585 models.py:2594
msgid "Author type"
msgstr ""
@@ -490,7 +490,7 @@ msgstr ""
msgid "There are identical authors."
msgstr ""
-#: forms_common.py:893 models.py:2544 models.py:2586
+#: forms_common.py:893 models.py:2598 models.py:2650
#: 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:1073 views.py:1377
+#: ishtar_menu.py:39 models.py:1102 views.py:1450
msgid "Global variables"
msgstr ""
@@ -536,20 +536,20 @@ msgstr ""
msgid "Manual merge"
msgstr ""
-#: ishtar_menu.py:70 ishtar_menu.py:101 models.py:2099 widgets.py:110
+#: ishtar_menu.py:70 ishtar_menu.py:101 models.py:2130 widgets.py:110
#: templates/ishtar/form_delete.html:11
msgid "Delete"
msgstr ""
-#: ishtar_menu.py:109 models.py:2073
+#: ishtar_menu.py:109 models.py:2104
msgid "Imports"
msgstr ""
-#: ishtar_menu.py:112 views.py:1385
+#: ishtar_menu.py:112 views.py:1458
msgid "New import"
msgstr ""
-#: ishtar_menu.py:116 views.py:1399
+#: ishtar_menu.py:116 views.py:1472
msgid "Current imports"
msgstr ""
@@ -569,200 +569,200 @@ msgstr ""
msgid "This item already exists."
msgstr ""
-#: models.py:285 models.py:547 models.py:1312 models.py:1324
+#: models.py:313 models.py:576 models.py:1341 models.py:1353
msgid "Label"
msgstr ""
-#: models.py:287
+#: models.py:315
msgid "Textual ID"
msgstr ""
-#: models.py:290 models.py:550 models.py:1281
+#: models.py:318 models.py:579 models.py:1310
msgid "Available"
msgstr ""
-#: models.py:569 models.py:1849
+#: models.py:598 models.py:1880
msgid "Key"
msgstr ""
-#: models.py:575
+#: models.py:604
msgid "Specific key to an import"
msgstr ""
-#: models.py:666
+#: models.py:695
msgid "Last editor"
msgstr ""
-#: models.py:669
+#: models.py:698
msgid "Creator"
msgstr ""
-#: models.py:809 models.py:2670
+#: models.py:838 models.py:2734
msgid "Order"
msgstr ""
-#: models.py:810
+#: models.py:839
msgid "Symmetrical"
msgstr ""
-#: models.py:811
+#: models.py:840
msgid "Tiny label"
msgstr ""
-#: models.py:825
+#: models.py:854
msgid "Cannot have symmetrical and an inverse_relation"
msgstr ""
-#: models.py:939
+#: models.py:968
msgid "Euro"
msgstr ""
-#: models.py:940
+#: models.py:969
msgid "US dollar"
msgstr ""
-#: models.py:946 models.py:1560
+#: models.py:975 models.py:1591
msgid "Slug"
msgstr ""
-#: models.py:948
+#: models.py:977
msgid "Files module"
msgstr ""
-#: models.py:949
+#: models.py:978
msgid "Context records module"
msgstr ""
-#: models.py:951
+#: models.py:980
msgid "Finds module"
msgstr ""
-#: models.py:952
+#: models.py:981
msgid "Need context records module"
msgstr ""
-#: models.py:954
+#: models.py:983
msgid "Warehouses module"
msgstr ""
-#: models.py:955
+#: models.py:984
msgid "Need finds module"
msgstr ""
-#: models.py:957
+#: models.py:986
msgid "Home page"
msgstr ""
-#: models.py:958
+#: models.py:987
#, 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:962
+#: models.py:991
msgid "File external id"
msgstr ""
-#: models.py:964
+#: models.py:993
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:969
+#: models.py:998
msgid "Parcel external id"
msgstr ""
-#: models.py:972
+#: models.py:1001
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:977
+#: models.py:1006
msgid "Context record external id"
msgstr ""
-#: models.py:979
+#: models.py:1008
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:984
+#: models.py:1013
msgid "Base find external id"
msgstr ""
-#: models.py:986
+#: models.py:1015
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:991
+#: models.py:1020
msgid "Find external id"
msgstr ""
-#: models.py:993
+#: models.py:1022
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:998
+#: models.py:1027
msgid "Raw name for person"
msgstr ""
-#: models.py:1000
+#: models.py:1029
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:1004
+#: models.py:1033
msgid "Current active"
msgstr ""
-#: models.py:1005
+#: models.py:1034
msgid "Currency"
msgstr ""
-#: models.py:1009
+#: models.py:1038
msgid "Ishtar site profile"
msgstr ""
-#: models.py:1010
+#: models.py:1039
msgid "Ishtar site profiles"
msgstr ""
-#: models.py:1066
+#: models.py:1095
msgid "Variable name"
msgstr ""
-#: models.py:1067
+#: models.py:1096
msgid "Description of the variable"
msgstr ""
-#: models.py:1069 models.py:1850
+#: models.py:1098 models.py:1881
msgid "Value"
msgstr ""
-#: models.py:1072
+#: models.py:1101
msgid "Global variable"
msgstr ""
-#: models.py:1182 models.py:1212
+#: models.py:1211 models.py:1241
msgid "Total"
msgstr ""
-#: models.py:1189 models.py:1313 models.py:1325
+#: models.py:1218 models.py:1342 models.py:1354
#: templates/ishtar/sheet_person.html:22
#: templates/ishtar/dashboards/dashboard_main_detail.html:141
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
@@ -770,686 +770,690 @@ msgstr ""
msgid "Number"
msgstr ""
-#: models.py:1276
+#: models.py:1305
msgid "Administrative Act"
msgstr ""
-#: models.py:1280
+#: models.py:1309
msgid "Associated object"
msgstr ""
-#: models.py:1284
+#: models.py:1313
msgid "Document template"
msgstr ""
-#: models.py:1285
+#: models.py:1314
msgid "Document templates"
msgstr ""
-#: models.py:1316 models.py:1326 models.py:2057
+#: models.py:1345 models.py:1355 models.py:2088
msgid "State"
msgstr ""
-#: models.py:1330 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1359 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr ""
-#: models.py:1331
+#: models.py:1360
msgid "Departments"
msgstr ""
-#: models.py:1368
+#: models.py:1397
msgid "Raw phone"
msgstr ""
-#: models.py:1374
+#: models.py:1403
msgid "Alternative address is prefered"
msgstr ""
-#: models.py:1413
+#: models.py:1442
msgid "Tel: "
msgstr ""
-#: models.py:1417
+#: models.py:1446
msgid "Mobile: "
msgstr ""
-#: models.py:1421
+#: models.py:1450
msgid "Email: "
msgstr ""
-#: models.py:1426
+#: models.py:1455
msgid "Merge key"
msgstr ""
-#: models.py:1500
+#: models.py:1529
msgid "Organization types"
msgstr ""
-#: models.py:1514 views.py:211
+#: models.py:1545 views.py:234
msgid "Operation"
msgstr ""
-#: models.py:1516
+#: models.py:1547
msgid "Archaeological site"
msgstr ""
-#: models.py:1517
+#: models.py:1548
msgid "Parcels"
msgstr ""
-#: models.py:1519
+#: models.py:1550
msgid "Operation source"
msgstr ""
-#: models.py:1522 views.py:1192 views.py:1243
+#: models.py:1553 views.py:1265 views.py:1316
msgid "Archaeological files"
msgstr ""
-#: models.py:1524 views.py:1195 views.py:1251
+#: models.py:1555 views.py:1268 views.py:1324
msgid "Context records"
msgstr ""
-#: models.py:1526
+#: models.py:1557
msgid "Context record relations"
msgstr ""
-#: models.py:1528 views.py:1197 views.py:1254
+#: models.py:1559 views.py:1270 views.py:1327
msgid "Finds"
msgstr ""
-#: models.py:1564 templates/ishtar/dashboards/dashboard_main.html:25
+#: models.py:1595 templates/ishtar/dashboards/dashboard_main.html:25
msgid "Users"
msgstr ""
-#: models.py:1566
+#: models.py:1597
msgid "Associated model"
msgstr ""
-#: models.py:1569
+#: models.py:1600
msgid "Is template"
msgstr ""
-#: models.py:1570
+#: models.py:1601
msgid "Unicity keys (separator \";\")"
msgstr ""
-#: models.py:1574
+#: models.py:1605
msgid "Importer - Type"
msgstr ""
-#: models.py:1575
+#: models.py:1606
msgid "Importer - Types"
msgstr ""
-#: models.py:1665
+#: models.py:1696
msgid "Importer - Default"
msgstr ""
-#: models.py:1666
+#: models.py:1697
msgid "Importer - Defaults"
msgstr ""
-#: models.py:1701
+#: models.py:1732
msgid "Importer - Default value"
msgstr ""
-#: models.py:1702
+#: models.py:1733
msgid "Importer - Default values"
msgstr ""
-#: models.py:1734
+#: models.py:1765
msgid "Column number"
msgstr ""
-#: models.py:1737
+#: models.py:1768
msgid "Required"
msgstr ""
-#: models.py:1740
+#: models.py:1771
msgid "Importer - Column"
msgstr ""
-#: models.py:1741
+#: models.py:1772
msgid "Importer - Columns"
msgstr ""
-#: models.py:1761
+#: models.py:1792
msgid "Field name"
msgstr ""
-#: models.py:1763 models.py:1797
+#: models.py:1794 models.py:1828
msgid "Force creation of new items"
msgstr ""
-#: models.py:1765 models.py:1799
+#: models.py:1796 models.py:1830
msgid "Concatenate with existing"
msgstr ""
-#: models.py:1767 models.py:1801
+#: models.py:1798 models.py:1832
msgid "Concatenate character"
msgstr ""
-#: models.py:1771
+#: models.py:1802
msgid "Importer - Duplicate field"
msgstr ""
-#: models.py:1772
+#: models.py:1803
msgid "Importer - Duplicate fields"
msgstr ""
-#: models.py:1779
+#: models.py:1810
msgid "Regular expression"
msgstr ""
-#: models.py:1782
+#: models.py:1813
msgid "Importer - Regular expression"
msgstr ""
-#: models.py:1783
+#: models.py:1814
msgid "Importer - Regular expressions"
msgstr ""
-#: models.py:1806
+#: models.py:1837
msgid "Importer - Target"
msgstr ""
-#: models.py:1807
+#: models.py:1838
msgid "Importer - Targets"
msgstr ""
-#: models.py:1831 views.py:476
+#: models.py:1862 views.py:518
msgid "True"
msgstr ""
-#: models.py:1832 views.py:478
+#: models.py:1863 views.py:520
msgid "False"
msgstr ""
-#: models.py:1851
+#: models.py:1882
msgid "Is set"
msgstr ""
-#: models.py:1858
+#: models.py:1889
msgid "Importer - Target key"
msgstr ""
-#: models.py:1859
+#: models.py:1890
msgid "Importer - Targets keys"
msgstr ""
-#: models.py:1911 models.py:2571 models.py:2582
+#: models.py:1942 models.py:2633 models.py:2646
msgid "Format"
msgstr ""
-#: models.py:1912 models.py:2674
+#: models.py:1943 models.py:2738
msgid "Operation type"
msgstr ""
-#: models.py:1913
+#: models.py:1944
msgid "Period"
msgstr ""
-#: models.py:1914
+#: models.py:1945
msgid "Report state"
msgstr ""
-#: models.py:1915
+#: models.py:1946
msgid "Unit"
msgstr ""
-#: models.py:1916
+#: models.py:1947
msgid "Material"
msgstr ""
-#: models.py:1918
+#: models.py:1949
msgid "Conservatory state"
msgstr ""
-#: models.py:1919
+#: models.py:1950
msgid "Preservation type"
msgstr ""
-#: models.py:1920
+#: models.py:1951
msgid "Object type"
msgstr ""
-#: models.py:1922
+#: models.py:1953
msgid "Identification type"
msgstr ""
-#: models.py:1924
+#: models.py:1955
msgid "Context record relation type"
msgstr ""
-#: models.py:1925 models.py:2565
+#: models.py:1956 models.py:2625
msgid "Support type"
msgstr ""
-#: models.py:1931
+#: models.py:1962
msgid "Integer"
msgstr ""
-#: models.py:1932
+#: models.py:1963
msgid "Float"
msgstr ""
-#: models.py:1933
+#: models.py:1964
msgid "String"
msgstr ""
-#: models.py:1934 templates/sheet_ope.html:86
+#: models.py:1965 templates/sheet_ope.html:86
msgid "Date"
msgstr ""
-#: models.py:1936 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:1967 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
#: templates/ishtar/dashboards/dashboard_main_detail.html:126
msgid "Year"
msgstr ""
-#: models.py:1937
+#: models.py:1968
msgid "String to boolean"
msgstr ""
-#: models.py:1938
+#: models.py:1969
msgctxt "filesystem"
msgid "File"
msgstr ""
-#: models.py:1939
+#: models.py:1970
msgid "Unknow type"
msgstr ""
-#: models.py:1955
+#: models.py:1986
msgid "4 digit year. e.g.: \"2015\""
msgstr ""
-#: models.py:1956
+#: models.py:1987
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr ""
-#: models.py:1957
+#: models.py:1988
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr ""
-#: models.py:1967
+#: models.py:1998
msgid "Options"
msgstr ""
-#: models.py:1969
+#: models.py:2000
msgid "Split character(s)"
msgstr ""
-#: models.py:1973
+#: models.py:2004
msgid "Importer - Formater type"
msgstr ""
-#: models.py:1974
+#: models.py:2005
msgid "Importer - Formater types"
msgstr ""
-#: models.py:2021 templates/ishtar/dashboards/dashboard_main_detail.html:63
+#: models.py:2052 templates/ishtar/dashboards/dashboard_main_detail.html:63
msgid "Created"
msgstr ""
-#: models.py:2022
+#: models.py:2053
msgid "Analyse in progress"
msgstr ""
-#: models.py:2023
+#: models.py:2054
msgid "Analysed"
msgstr ""
-#: models.py:2024
+#: models.py:2055
msgid "Import pending"
msgstr ""
-#: models.py:2025
+#: models.py:2056
msgid "Import in progress"
msgstr ""
-#: models.py:2026
+#: models.py:2057
msgid "Finished with errors"
msgstr ""
-#: models.py:2027
+#: models.py:2058
msgid "Finished"
msgstr ""
-#: models.py:2028
+#: models.py:2059
msgid "Archived"
msgstr ""
-#: models.py:2040
+#: models.py:2071
msgid "Imported file"
msgstr ""
-#: models.py:2043
+#: models.py:2074
msgid "Associated images (zip file)"
msgstr ""
-#: models.py:2045
+#: models.py:2076
msgid "Encoding"
msgstr ""
-#: models.py:2047
+#: models.py:2078
msgid "Skip lines"
msgstr ""
-#: models.py:2048 templates/ishtar/import_list.html:47
+#: models.py:2079 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr ""
-#: models.py:2051
+#: models.py:2082
msgid "Result file"
msgstr ""
-#: models.py:2054 templates/ishtar/import_list.html:53
+#: models.py:2085 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr ""
-#: models.py:2060
+#: models.py:2091
msgid "Conservative import"
msgstr ""
-#: models.py:2065
+#: models.py:2096
msgid "End date"
msgstr ""
-#: models.py:2067
+#: models.py:2098
msgid "Remaining seconds"
msgstr ""
-#: models.py:2072
+#: models.py:2103
msgid "Import"
msgstr ""
-#: models.py:2089
+#: models.py:2120
msgid "Analyse"
msgstr ""
-#: models.py:2091 models.py:2094
+#: models.py:2122 models.py:2125
msgid "Re-analyse"
msgstr ""
-#: models.py:2092
+#: models.py:2123
msgid "Launch import"
msgstr ""
-#: models.py:2095
+#: models.py:2126
msgid "Re-import"
msgstr ""
-#: models.py:2096
+#: models.py:2127
msgid "Archive"
msgstr ""
-#: models.py:2098
+#: models.py:2129
msgid "Unarchive"
msgstr ""
-#: models.py:2232
+#: models.py:2263
msgid "Organizations"
msgstr ""
-#: models.py:2234
+#: models.py:2265
msgid "Can view all Organizations"
msgstr ""
-#: models.py:2235
+#: models.py:2266
msgid "Can view own Organization"
msgstr ""
-#: models.py:2236
+#: models.py:2267
msgid "Can add own Organization"
msgstr ""
-#: models.py:2238
+#: models.py:2269
msgid "Can change own Organization"
msgstr ""
-#: models.py:2240
+#: models.py:2271
msgid "Can delete own Organization"
msgstr ""
-#: models.py:2275
+#: models.py:2306
msgid "Groups"
msgstr ""
-#: models.py:2280
+#: models.py:2311
msgid "Person types"
msgstr ""
-#: models.py:2286
+#: models.py:2319
msgid "Title type"
msgstr ""
-#: models.py:2287
+#: models.py:2320
msgid "Title types"
msgstr ""
-#: models.py:2294
+#: models.py:2329
msgid "Mr"
msgstr ""
-#: models.py:2295
+#: models.py:2330
msgid "Miss"
msgstr ""
-#: models.py:2296
+#: models.py:2331
msgid "Mr and Mrs"
msgstr ""
-#: models.py:2297
+#: models.py:2332
msgid "Mrs"
msgstr ""
-#: models.py:2298
+#: models.py:2333
msgid "Doctor"
msgstr ""
-#: models.py:2316
+#: models.py:2351
msgid "Contact type"
msgstr ""
-#: models.py:2319 models.py:2368
+#: models.py:2354 models.py:2418
msgid "Types"
msgstr ""
-#: models.py:2322
+#: models.py:2357
msgid "Is attached to"
msgstr ""
-#: models.py:2327
+#: models.py:2362
msgid "Persons"
msgstr ""
-#: models.py:2329
+#: models.py:2364
msgid "Can view all Persons"
msgstr ""
-#: models.py:2330
+#: models.py:2365
msgid "Can view own Person"
msgstr ""
-#: models.py:2331
+#: models.py:2366
msgid "Can add own Person"
msgstr ""
-#: models.py:2332
+#: models.py:2367
msgid "Can change own Person"
msgstr ""
-#: models.py:2333
+#: models.py:2368
msgid "Can delete own Person"
msgstr ""
-#: models.py:2484
+#: models.py:2533
+msgid "Advanced shortcut menu"
+msgstr ""
+
+#: models.py:2536
msgid "Ishtar user"
msgstr ""
-#: models.py:2485
+#: models.py:2537
msgid "Ishtar users"
msgstr ""
-#: models.py:2528
+#: models.py:2580
msgid "To modify the password use the form in Auth > User"
msgstr ""
-#: models.py:2534
+#: models.py:2586
msgid "Author types"
msgstr ""
-#: models.py:2560
+#: models.py:2618
msgid "Source types"
msgstr ""
-#: models.py:2566
+#: models.py:2626
msgid "Support types"
msgstr ""
-#: models.py:2572
+#: models.py:2634
msgid "Formats"
msgstr ""
-#: models.py:2577
+#: models.py:2641
msgid "External ID"
msgstr ""
-#: models.py:2580
+#: models.py:2644
msgid "Support"
msgstr ""
-#: models.py:2584
+#: models.py:2648
msgid "Scale"
msgstr ""
-#: models.py:2598
+#: models.py:2662
msgid "Item number"
msgstr ""
-#: models.py:2599
+#: models.py:2663
msgid "Ref."
msgstr ""
-#: models.py:2602
+#: models.py:2666
msgid "Internal ref."
msgstr ""
-#: models.py:2645
+#: models.py:2709
msgid "Surface (m2)"
msgstr ""
-#: models.py:2646 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2710 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr ""
-#: models.py:2671
+#: models.py:2735
msgid "Is preventive"
msgstr ""
-#: models.py:2675
+#: models.py:2739
msgid "Operation types"
msgstr ""
-#: models.py:2704
+#: models.py:2768
msgid "Preventive"
msgstr ""
-#: models.py:2705
+#: models.py:2769
msgid "Research"
msgstr ""
-#: utils.py:56
+#: utils.py:64
msgid " (...)"
msgstr ""
-#: utils.py:89
+#: utils.py:97
msgid "Load another random image?"
msgstr ""
-#: views.py:109
+#: views.py:111
msgid "New person"
msgstr ""
-#: views.py:117
+#: views.py:119
msgid "Person modification"
msgstr ""
-#: views.py:132
+#: views.py:134
msgid "Person deletion"
msgstr ""
-#: views.py:143
+#: views.py:145
msgid "New organization"
msgstr ""
-#: views.py:150
+#: views.py:152
msgid "Organization modification"
msgstr ""
-#: views.py:166
+#: views.py:168
msgid "Organization deletion"
msgstr ""
-#: views.py:173
+#: views.py:175
msgid "Account management"
msgstr ""
-#: views.py:179
+#: views.py:181
msgid "Account deletion"
msgstr ""
-#: views.py:210
+#: views.py:233
msgid "Archaeological file"
msgstr ""
-#: views.py:213
+#: views.py:236
msgid "Context record"
msgstr ""
-#: views.py:215
+#: views.py:238
msgid "Find"
msgstr ""
-#: views.py:1105 views.py:1174
+#: views.py:1178 views.py:1247
msgid "Operation not permitted."
msgstr ""
-#: views.py:1107
+#: views.py:1180
#, python-format
msgid "New %s"
msgstr ""
-#: views.py:1193 views.py:1247
+#: views.py:1266 views.py:1320
msgid "Operations"
msgstr ""
-#: views.py:1446 templates/ishtar/import_list.html:43
+#: views.py:1519 templates/ishtar/import_list.html:43
msgid "Link unmatched items"
msgstr ""
-#: views.py:1461
+#: views.py:1534
msgid "Delete import"
msgstr ""
-#: views.py:1500
+#: views.py:1573
msgid "Merge persons"
msgstr ""
-#: views.py:1524
+#: views.py:1597
msgid "Select the main person"
msgstr ""
-#: views.py:1533
+#: views.py:1606
msgid "Merge organization"
msgstr ""
-#: views.py:1543
+#: views.py:1616
msgid "Select the main organization"
msgstr ""
-#: views.py:1583 views.py:1599
+#: views.py:1656 views.py:1672
msgid "Corporation manager"
msgstr ""
@@ -1517,28 +1521,36 @@ msgid "The %(app_name)s team"
msgstr ""
#: templates/base.html:41
-msgid "Logged in"
+msgid "Searches in the shortcut menu deals with all items."
msgstr ""
#: templates/base.html:42
+msgid "Searches in the shortcut menu deals with only your items."
+msgstr ""
+
+#: templates/base.html:49
+msgid "Logged in"
+msgstr ""
+
+#: templates/base.html:50
msgid "Log out"
msgstr ""
-#: templates/base.html:43
+#: templates/base.html:51
msgid "Change password"
msgstr ""
-#: templates/base.html:45 templates/registration/activate.html:10
+#: templates/base.html:53 templates/registration/activate.html:10
#: templates/registration/login.html:8 templates/registration/login.html:10
#: templates/registration/password_reset_complete.html:8
msgid "Log in"
msgstr ""
-#: templates/base.html:51
+#: templates/base.html:59
msgid "Lang"
msgstr ""
-#: templates/base.html:51 templates/base.html.py:75 templates/welcome.html:8
+#: templates/base.html:59 templates/base.html.py:83 templates/welcome.html:8
#: templates/welcome.html.py:9 templates/welcome.html:10
#: templates/welcome.html.py:11 templates/ishtar/manage_basket.html:4
#: templates/ishtar/blocks/window_field.html:1
@@ -1548,23 +1560,23 @@ msgstr ""
msgid ":"
msgstr ""
-#: templates/base.html:73
+#: templates/base.html:81
msgid "Current items"
msgstr ""
-#: templates/base.html:107
+#: templates/base.html:115
msgid "Processing..."
msgstr ""
-#: templates/base.html:108
+#: templates/base.html:116
msgid "This can be long."
msgstr ""
-#: templates/base.html:109
+#: templates/base.html:117
msgid "Time to take a coffee?"
msgstr ""
-#: templates/base.html:110
+#: templates/base.html:118
msgid "Time to take another coffee?"
msgstr ""
@@ -1836,7 +1848,7 @@ msgstr ""
msgid "where the magic happens."
msgstr ""
-#: templates/window.html:38 templates/blocks/JQueryJqGrid.html:25
+#: templates/window.html:40 templates/blocks/JQueryJqGrid.html:25
#: templates/ishtar/manage_basket.html:9
msgid "Add"
msgstr ""
@@ -2115,14 +2127,50 @@ msgstr ""
msgid "Documents associated to finds"
msgstr ""
-#: templates/ishtar/blocks/shortcut_menu.html:6
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:7
+#: templates/ishtar/blocks/shortcut_menu.html:7
+msgid ""
+"Simple menu limited to your own items. Be careful only the last 100 items "
+"are displayed."
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:7
+#: templates/ishtar/blocks/shortcut_menu.html:7
+msgid "simple"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:8
+#: templates/ishtar/blocks/shortcut_menu.html:8
+msgid "Advanced menu."
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:8
+#: templates/ishtar/blocks/shortcut_menu.html:8
+msgid "advanced"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:11
+#: templates/ishtar/blocks/shortcut_menu.html:10
msgid ""
"Pin an item in order to constrain default searches with this item. By "
"default only your items are displayed. New created and modified items are "
"auto-pin."
msgstr ""
-#: templates/ishtar/blocks/shortcut_menu.html:18
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:13
+msgid "Search within my items"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:14
+msgid "Search within all items"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:17
+msgid "Refresh menu"
+msgstr ""
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:28
+#: templates/ishtar/blocks/shortcut_menu.html:22
msgid "Unpin"
msgstr ""
diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po
index 70454adeb..4b8532911 100644
--- a/translations/fr/archaeological_context_records.po
+++ b/translations/fr/archaeological_context_records.po
@@ -16,11 +16,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:133 wizards.py:77
+#: forms.py:47 forms.py:51 models.py:143 wizards.py:77
msgid "Operation"
msgstr "Opération"
-#: forms.py:59 forms.py:137 models.py:135
+#: forms.py:59 forms.py:137 models.py:145
#: templates/ishtar/sheet_contextrecord.html:65
msgid "ID"
msgstr "Identifiant"
@@ -45,7 +45,7 @@ msgstr "Entité Archéologique"
msgid "Search within operation relations"
msgstr "Rechercher parmi les opérations reliées"
-#: forms.py:77 forms.py:230 models.py:51
+#: forms.py:77 forms.py:230 models.py:55
msgid "Period"
msgstr "Période"
@@ -61,7 +61,7 @@ msgstr "Parcelle (section/nombre/domaine public)"
msgid "Search within relations"
msgstr "Recherche parmi les relations"
-#: forms.py:111 forms.py:335 views.py:125
+#: forms.py:111 forms.py:335 views.py:126
msgid "Context record search"
msgstr "Recherche d'Unité d'Enregistrement"
@@ -73,41 +73,41 @@ msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement."
msgid "General"
msgstr "Général"
-#: forms.py:136 models.py:121 models.py:131
+#: forms.py:136 models.py:131 models.py:141
#: templates/ishtar/sheet_contextrecord.html:69
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:139 models.py:136 templates/ishtar/sheet_contextrecord.html:25
+#: forms.py:139 models.py:146 templates/ishtar/sheet_contextrecord.html:25
#: templates/ishtar/sheet_contextrecord.html:68
msgid "Description"
msgstr "Description"
-#: forms.py:141 models.py:137
+#: forms.py:141 models.py:147
msgid "General comment"
msgstr "Commentaire général"
-#: forms.py:143 models.py:141
+#: forms.py:143 models.py:151
msgid "Length (m)"
msgstr "Taille (m)"
-#: forms.py:144 models.py:142
+#: forms.py:144 models.py:152
msgid "Width (m)"
msgstr "Largeur (m)"
-#: forms.py:145 models.py:143
+#: forms.py:145 models.py:153
msgid "Thickness (m)"
msgstr "Épaisseur (m)"
-#: forms.py:146 models.py:145
+#: forms.py:146 models.py:155
msgid "Depth (m)"
msgstr "Profondeur (m)"
-#: forms.py:147 models.py:153
+#: forms.py:147 models.py:163
msgid "Unit"
msgstr "Unité"
-#: forms.py:149 models.py:147
+#: forms.py:149 models.py:157
msgid "Location"
msgstr "Lieu"
@@ -128,27 +128,27 @@ msgstr ""
msgid "This ID already exists for this operation."
msgstr "Cet identifiant existe déjà pour cette opération."
-#: forms.py:225 forms.py:252 models.py:62
+#: forms.py:225 forms.py:252 models.py:66
msgid "Dating"
msgstr "Datation"
-#: forms.py:231 models.py:52
+#: forms.py:231 models.py:56
msgid "Start date"
msgstr "Date de début"
-#: forms.py:232 models.py:53 models.py:140
+#: forms.py:232 models.py:57 models.py:150
msgid "End date"
msgstr "Date de fin"
-#: forms.py:233 models.py:56
+#: forms.py:233 models.py:60
msgid "Quality"
msgstr "Qualité"
-#: forms.py:234 models.py:38 models.py:54
+#: forms.py:234 models.py:38 models.py:58
msgid "Dating type"
msgstr "Type de datation"
-#: forms.py:261 ishtar_menu.py:29 models.py:373
+#: forms.py:261 ishtar_menu.py:29 models.py:384
msgid "Context record"
msgstr "Unité d'Enregistrement"
@@ -156,7 +156,7 @@ msgstr "Unité d'Enregistrement"
msgid "Relations"
msgstr "Relations"
-#: forms.py:286 forms.py:296 models.py:158
+#: forms.py:286 forms.py:296 models.py:168
#: templates/ishtar/sheet_contextrecord.html:37
msgid "Interpretation"
msgstr "Interprétation"
@@ -165,35 +165,35 @@ msgstr "Interprétation"
msgid "Comments on dating"
msgstr "Commentaires sur la datation"
-#: forms.py:292 models.py:155
+#: forms.py:292 models.py:165
msgid "Has furniture?"
msgstr "Contient du mobilier ?"
-#: forms.py:294 models.py:157
+#: forms.py:294 models.py:167
msgid "Filling"
msgstr "Remplissage"
-#: forms.py:298 models.py:178
+#: forms.py:298 models.py:188
msgid "Activity"
msgstr "Activité"
-#: forms.py:300 models.py:176
+#: forms.py:300 models.py:186
msgid "Identification"
msgstr "Identification"
-#: forms.py:302 models.py:161
+#: forms.py:302 models.py:171
msgid "TAQ"
msgstr "TAQ"
-#: forms.py:303 models.py:165
+#: forms.py:303 models.py:175
msgid "Estimated TAQ"
msgstr "TAQ estimé"
-#: forms.py:305 models.py:168
+#: forms.py:305 models.py:178
msgid "TPQ"
msgstr "TPQ"
-#: forms.py:306 models.py:172
+#: forms.py:306 models.py:182
msgid "Estimated TPQ"
msgstr "TPQ estimé"
@@ -269,75 +269,75 @@ msgstr "Ajout"
msgid "Dating types"
msgstr "Types de datation"
-#: models.py:45
+#: models.py:47
msgid "Dating quality"
msgstr "Qualité de datation"
-#: models.py:46
+#: models.py:48
msgid "Dating qualities"
msgstr "Qualités de datation"
-#: models.py:58
+#: models.py:62
msgid "Precise dating"
msgstr "Datation précise"
-#: models.py:63
+#: models.py:67
msgid "Datings"
msgstr "Datations"
-#: models.py:74 models.py:88 models.py:100
+#: models.py:78 models.py:94 models.py:108
msgid "Order"
msgstr "Ordre"
-#: models.py:75
+#: models.py:79
msgid "Parent unit"
msgstr "Unité parente"
-#: models.py:79
+#: models.py:83
msgid "Unit Type"
msgstr "Type d'unité"
-#: models.py:80
+#: models.py:84
msgid "Unit Types"
msgstr "Types d'unité"
-#: models.py:91
+#: models.py:97
msgid "Activity Type"
msgstr "Type d'activité"
-#: models.py:92
+#: models.py:98
msgid "Activity Types"
msgstr "Types d'activité"
-#: models.py:103
+#: models.py:111
msgid "Identification Type"
msgstr "Type d'identification"
-#: models.py:104
+#: models.py:112
msgid "Identification Types"
msgstr "Types d'identification"
-#: models.py:128
+#: models.py:138
msgid "External ID"
msgstr "ID externe"
-#: models.py:130
+#: models.py:140
msgid "External ID is set automatically"
msgstr "L'identifiant externe est configuré automatiquement"
-#: models.py:138
+#: models.py:148
msgid "Date d'ouverture"
msgstr "Date d'ouverture"
-#: models.py:148
+#: models.py:158
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:151
+#: models.py:161
msgid "Comment on datings"
msgstr "Commentaire sur les datations"
-#: models.py:162
+#: models.py:172
msgid ""
"\"Terminus Ante Quem\" the context record can't have been created after this "
"date"
@@ -345,11 +345,11 @@ msgstr ""
"« Terminus Ante Quem » l'Unité d'Enregistrement ne peut avoir été créée "
"après cette date"
-#: models.py:166
+#: models.py:176
msgid "Estimation of a \"Terminus Ante Quem\""
msgstr "Estimation d'un « Terminus Ante Quem »"
-#: models.py:169
+#: models.py:179
msgid ""
"\"Terminus Post Quem\" the context record can't have been created before "
"this date"
@@ -357,104 +357,104 @@ msgstr ""
"« Terminus Post Quem » l'Unité d'Enregistrement ne peut avoir été créée "
"avant cette date"
-#: models.py:173
+#: models.py:183
msgid "Estimation of a \"Terminus Post Quem\""
msgstr "Estimation d'un « Terminus Post Quem »"
-#: models.py:181
+#: models.py:191
msgid "Point"
msgstr "Point"
-#: models.py:182
+#: models.py:192
msgid "Polygon"
msgstr "Polygone"
-#: models.py:183
+#: models.py:193
msgid "Cached name"
msgstr "Nom en cache"
-#: models.py:187 models.py:188 templates/ishtar/sheet_contextrecord.html:4
+#: models.py:197 models.py:198 templates/ishtar/sheet_contextrecord.html:4
msgid "Context Record"
msgstr "Unité d'Enregistrement"
-#: models.py:190
+#: models.py:200
msgid "Can view all Context Records"
msgstr "Peut voir toutes les Unités d'Enregistrement"
-#: models.py:192
+#: models.py:202
msgid "Can view own Context Record"
msgstr "Peut voir sa propre Unité d'Enregistrement"
-#: models.py:194
+#: models.py:204
msgid "Can add own Context Record"
msgstr "Peut ajouter sa propre Unité d'Enregistrement"
-#: models.py:196
+#: models.py:206
msgid "Can change own Context Record"
msgstr "Peut modifier sa propre Unité d'Enregistrement"
-#: models.py:198
+#: models.py:208
msgid "Can delete own Context Record"
msgstr "Peut supprimer sa propre Unité d'Enregistrement"
-#: models.py:208
+#: models.py:218
msgctxt "short"
msgid "Context record"
msgstr "UE"
-#: models.py:339
+#: models.py:350
msgid "Inverse relation"
msgstr "Relation inverse"
-#: models.py:343 templates/ishtar/sheet_contextrecord.html:64
+#: models.py:354 templates/ishtar/sheet_contextrecord.html:64
msgid "Relation type"
msgstr "Type de relation"
-#: models.py:344
+#: models.py:355
msgid "Relation types"
msgstr "Types de relation"
-#: models.py:357
+#: models.py:368
msgid "Record relation"
msgstr "Relation entre Unités d'Enregistrement"
-#: models.py:358
+#: models.py:369
msgid "Record relations"
msgstr "Relations entre Unités d'Enregistrement"
-#: models.py:370
+#: models.py:381
msgid "Context record documentation"
msgstr "Documentation d'une Unité d'Enregistrement"
-#: models.py:371
+#: models.py:382
msgid "Context record documentations"
msgstr "Documentations des Unités d'Enregistrement"
-#: views.py:135
+#: views.py:136
msgid "New context record"
msgstr "Nouvelle Unité d'Enregistrement"
-#: views.py:146
+#: views.py:147
msgid "Context record modification"
msgstr "Modification d'une Unité d'Enregistrement"
-#: views.py:160
+#: views.py:161
msgid "Context record deletion"
msgstr "Suppression d'une Unité d'Enregistrement"
-#: views.py:165
+#: views.py:166
msgid "Context record: source search"
msgstr "Unité d'Enregistrement : recherche de documentation associée"
-#: views.py:173
+#: views.py:174
msgid "Context record: new source"
msgstr "Unité d'Enregistrement : nouvelle documentation associée"
-#: views.py:181
+#: views.py:182
msgid "Context record: source modification"
msgstr "Unité d'Enregistrement : modification d'une documentation associée"
-#: views.py:196
+#: views.py:197
msgid "Context record: source deletion"
msgstr "Unité d'Enregistrement : suppression d'une documentation associée"
diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po
index d0a28e4d2..363f81b00 100644
--- a/translations/fr/archaeological_files.po
+++ b/translations/fr/archaeological_files.po
@@ -18,11 +18,11 @@ msgstr ""
"X-Generator: Zanata 3.9.5\n"
#: forms.py:52 forms.py:212 forms.py:257 forms.py:404 forms.py:431
-#: models.py:78 templates/ishtar/sheet_file.html:146
+#: models.py:84 templates/ishtar/sheet_file.html:146
msgid "Year"
msgstr "Année"
-#: forms.py:53 forms.py:217 forms.py:259 models.py:81
+#: forms.py:53 forms.py:217 forms.py:259 models.py:87
msgid "Numeric reference"
msgstr "Référence numérique"
@@ -34,7 +34,7 @@ msgstr "Autre référence"
msgid "Parcel (section/number/public domain)"
msgstr "Parcelle (section/nombre/domaine public)"
-#: forms.py:60 forms.py:415 forms.py:442 models.py:514
+#: forms.py:60 forms.py:415 forms.py:442 models.py:519
msgid "Department"
msgstr "Département"
@@ -42,7 +42,7 @@ msgstr "Département"
msgid "File name"
msgstr "Nom du dossier"
-#: forms.py:62 forms.py:158 forms.py:223 models.py:89
+#: forms.py:62 forms.py:158 forms.py:223 models.py:95
msgid "File type"
msgstr "Type de dossier"
@@ -54,15 +54,15 @@ msgstr "Est actif ?"
msgid "Saisine type"
msgstr "Type de saisine"
-#: forms.py:65 forms.py:311 models.py:58 models.py:120
+#: forms.py:65 forms.py:311 models.py:60 models.py:126
msgid "Permit type"
msgstr "Type de permis"
-#: forms.py:67 forms.py:314 models.py:121
+#: forms.py:67 forms.py:314 models.py:127
msgid "Permit reference"
msgstr "Référence du permis"
-#: forms.py:68 forms.py:229 forms.py:372 models.py:150
+#: forms.py:68 forms.py:229 forms.py:372 models.py:156
#: templates/ishtar/sheet_file.html:99
msgid "Comment"
msgstr "Commentaire"
@@ -71,7 +71,7 @@ msgstr "Commentaire"
msgid "In charge"
msgstr "Responsable"
-#: forms.py:77 forms.py:289 forms.py:453 models.py:96
+#: forms.py:77 forms.py:289 forms.py:453 models.py:102
msgid "General contractor"
msgstr "Aménageur"
@@ -95,11 +95,11 @@ msgstr "Recherche de dossiers archéologiques"
msgid "You should select a file."
msgstr "Vous devez sélectionner un dossier archéologique."
-#: forms.py:146 forms.py:221 models.py:129
+#: forms.py:146 forms.py:221 models.py:135
msgid "Creation date"
msgstr "Date de création"
-#: forms.py:147 forms.py:324 models.py:131
+#: forms.py:147 forms.py:324 models.py:137
msgid "Reception date"
msgstr "Date de réception"
@@ -127,23 +127,23 @@ msgstr "Date avant"
msgid "General"
msgstr "Général"
-#: forms.py:206 models.py:91
+#: forms.py:206 models.py:97
msgid "Person in charge"
msgstr "Responsable"
-#: forms.py:220 models.py:88
+#: forms.py:220 models.py:94
msgid "Name"
msgstr "Nom"
-#: forms.py:225 models.py:133
+#: forms.py:225 models.py:139
msgid "Related file"
msgstr "Dossier associé"
-#: forms.py:233 models.py:141
+#: forms.py:233 models.py:147
msgid "Total surface (m2)"
msgstr "Surface totale (m2)"
-#: forms.py:236 models.py:147
+#: forms.py:236 models.py:153
msgid "Main address"
msgstr "Adresse des terrains"
@@ -164,11 +164,11 @@ msgstr "Un autre dossier avec cet identifiant numérique existe."
msgid "Preventive informations"
msgstr "Information archéologie préventive"
-#: forms.py:301 models.py:108
+#: forms.py:301 models.py:114
msgid "Responsible for town planning service"
msgstr "Responsable au service instructeur"
-#: forms.py:317 models.py:144
+#: forms.py:317 models.py:150
msgid "Total developed surface (m2)"
msgstr "Surface totale aménagée (m2)"
@@ -177,15 +177,15 @@ msgstr "Surface totale aménagée (m2)"
msgid "Research archaeology"
msgstr "Archéologie programmée"
-#: forms.py:348 models.py:153 templates/ishtar/sheet_file.html:90
+#: forms.py:348 models.py:159 templates/ishtar/sheet_file.html:90
msgid "Departments"
msgstr "Départements"
-#: forms.py:359 models.py:162
+#: forms.py:359 models.py:168
msgid "Scientist in charge"
msgstr "Responsable scientifique"
-#: forms.py:361 models.py:156 templates/ishtar/sheet_file.html:92
+#: forms.py:361 models.py:162 templates/ishtar/sheet_file.html:92
msgid "Requested operation type"
msgstr "Type d'opération demandée"
@@ -193,11 +193,11 @@ msgstr "Type d'opération demandée"
msgid "Lead organization"
msgstr "Organisation porteuse du projet"
-#: forms.py:379 models.py:166 templates/ishtar/sheet_file.html:97
+#: forms.py:379 models.py:172 templates/ishtar/sheet_file.html:97
msgid "Classified area"
msgstr "Au sein d'un site classé"
-#: forms.py:381 models.py:168 templates/ishtar/sheet_file.html:98
+#: forms.py:381 models.py:174 templates/ishtar/sheet_file.html:98
msgid "Protected area"
msgstr "Au sein d'un secteur sauvegardé"
@@ -257,7 +257,7 @@ msgstr "Dossier : responsable"
msgid "File permit reference"
msgstr "Dossier : réf. du permis"
-#: ishtar_menu.py:33 models.py:190 templates/ishtar/sheet_file.html:4
+#: ishtar_menu.py:33 models.py:196 templates/ishtar/sheet_file.html:4
msgid "Archaeological file"
msgstr "Dossier"
@@ -301,7 +301,7 @@ msgstr "Tableau de bord"
msgid "General informations"
msgstr "Informations générales"
-#: ishtar_menu.py:87 models.py:191
+#: ishtar_menu.py:87 models.py:197
#: templates/ishtar/dashboards/dashboard_file.html:7
msgid "Archaeological files"
msgstr "Dossiers archéologiques"
@@ -314,155 +314,155 @@ msgstr "Type de dossier archéologique"
msgid "Archaeological file types"
msgstr "Types de dossier archéologique"
-#: models.py:59
+#: models.py:61
msgid "Permit types"
msgstr "Types de permis"
-#: models.py:64
+#: models.py:68
msgid "Delay (in days)"
msgstr "Délai (en jours)"
-#: models.py:82
+#: models.py:88
msgid "Internal reference"
msgstr "Référence interne"
-#: models.py:84
+#: models.py:90
msgid "External ID"
msgstr "ID externe"
-#: models.py:87
+#: models.py:93
msgid "External ID is set automatically"
msgstr "L'identifiant externe est configuré automatiquement"
-#: models.py:99
+#: models.py:105
msgid "General contractor (raw)"
msgstr "Aménageur (brut)"
-#: models.py:103
+#: models.py:109
msgid "General contractor organization"
msgstr "Organisation de l'aménageur"
-#: models.py:111
+#: models.py:117
msgid "Town planning service (raw)"
msgstr "Service instructeur (brut)"
-#: models.py:117
+#: models.py:123
msgid "Town planning service organization"
msgstr "Service instructeur"
-#: models.py:123
+#: models.py:129
msgid "Closing date"
msgstr "Date de clôture"
-#: models.py:124
+#: models.py:130
msgid "Town"
msgstr "Commune"
-#: models.py:126
+#: models.py:132
msgid "Towns"
msgstr "Communes"
-#: models.py:139
+#: models.py:145
msgid "Instruction deadline"
msgstr "Date limite d'instruction"
-#: models.py:145
+#: models.py:151
msgid "Locality"
msgstr "Lieu-dit"
-#: models.py:148
+#: models.py:154
msgid "Main address - postal code"
msgstr "Adresse des terrains - code postal"
-#: models.py:158 templates/ishtar/sheet_file.html:93
+#: models.py:164 templates/ishtar/sheet_file.html:93
msgid "Organization"
msgstr "Organisation"
-#: models.py:163
+#: models.py:169
msgid "Research archaeology comment"
msgstr "Commentaire archéologie programmée"
-#: models.py:177
+#: models.py:183
msgid "Cached name"
msgstr "Nom en cache"
-#: models.py:178
+#: models.py:184
msgid "Imported line"
msgstr "Ligne importée"
-#: models.py:193
+#: models.py:199
msgid "Can view all Archaelogical files"
msgstr "Peut voir tous les Dossiers"
-#: models.py:194
+#: models.py:200
msgid "Can view own Archaelogical file"
msgstr "Peut voir son propre Dossier"
-#: models.py:195
+#: models.py:201
msgid "Can add own Archaelogical file"
msgstr "Peut ajouter son propre Dossier"
-#: models.py:197
+#: models.py:203
msgid "Can change own Archaelogical file"
msgstr "Peut modifier son propre Dossier"
-#: models.py:199
+#: models.py:205
msgid "Can delete own Archaelogical file"
msgstr "Peut supprimer son propre Dossier"
-#: models.py:200
+#: models.py:206
msgid "Can close File"
msgstr "Peut fermer un Dossier"
-#: models.py:206
+#: models.py:212
msgid "FILE"
msgstr "DOSSIER"
-#: models.py:375
+#: models.py:380
msgid "Multi-town"
msgstr "Intercommunal"
-#: models.py:381
+#: models.py:386
msgid "No town"
msgstr "Pas de commune"
-#: models.py:513
+#: models.py:518
msgid "File"
msgstr "Dossier"
-#: views.py:159
+#: views.py:160
msgid "File search"
msgstr "Recherche de dossier archéologique"
-#: views.py:168
+#: views.py:169
msgid "New file"
msgstr "Nouveau dossier archéologique"
-#: views.py:187
+#: views.py:188
msgid "File modification"
msgstr "Modification de dossier archéologique"
-#: views.py:210
+#: views.py:211
msgid "File closing"
msgstr "Clôture de dossier archéologique"
-#: views.py:215
+#: views.py:216
msgid "File deletion"
msgstr "Suppression de dossier archéologique"
-#: views.py:222
+#: views.py:223
msgid "File: search administrative act"
msgstr "Dossier : rechercher un acte administratif"
-#: views.py:231
+#: views.py:232
msgid "File: new administrative act"
msgstr "Dossier : nouvel acte administratif"
-#: views.py:241
+#: views.py:242
msgid "File: administrative act modification"
msgstr "Dossier : modification d'acte administratif"
-#: views.py:265
+#: views.py:266
msgid "File: administrative act deletion"
msgstr "Dossier : suppression d'acte administratif"
diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po
index 73128481b..01178e89c 100644
--- a/translations/fr/archaeological_finds.po
+++ b/translations/fr/archaeological_finds.po
@@ -21,29 +21,29 @@ msgstr ""
msgid "Context record"
msgstr "Unité d'Enregistrement"
-#: forms.py:83 ishtar_menu.py:31 models.py:387 models.py:671 models.py:769
-#: models.py:913 templates/ishtar/sheet_find.html:5
+#: forms.py:83 ishtar_menu.py:31 models.py:399 models.py:685 models.py:785
+#: models.py:929 templates/ishtar/sheet_find.html:5
msgid "Find"
msgstr "Mobilier"
-#: forms.py:94 forms.py:218 forms.py:425 models.py:115 models.py:324
+#: forms.py:94 forms.py:218 forms.py:425 models.py:127 models.py:336
msgid "Free ID"
msgstr "ID libre"
-#: forms.py:96 models.py:373
+#: forms.py:96 models.py:385
msgid "Previous ID"
msgstr "Identifiant précédent"
-#: forms.py:97 forms.py:250 forms.py:591 models.py:119 models.py:325
-#: models.py:703
+#: forms.py:97 forms.py:250 forms.py:591 models.py:131 models.py:337
+#: models.py:719
msgid "Description"
msgstr "Description"
-#: forms.py:100 forms.py:252 models.py:130
+#: forms.py:100 forms.py:252 models.py:142
msgid "Batch/object"
msgstr "Lot/objet"
-#: forms.py:102 models.py:353
+#: forms.py:102 models.py:365
msgid "Is complete?"
msgstr "Est complet ?"
@@ -51,83 +51,83 @@ msgstr "Est complet ?"
msgid "Material type"
msgstr "Type de matériau"
-#: forms.py:106 forms.py:244 models.py:60 models.py:329
+#: forms.py:106 forms.py:244 models.py:62 models.py:341
msgid "Conservatory state"
msgstr "État sanitaire"
-#: forms.py:109 models.py:331
+#: forms.py:109 models.py:343
msgid "Conservatory comment"
msgstr "Commentaire relatif à la conservation"
-#: forms.py:112 models.py:92 models.py:356
+#: forms.py:112 models.py:102 models.py:368
msgid "Object types"
msgstr "Types d'objet"
-#: forms.py:114 forms.py:243 models.py:67
+#: forms.py:114 forms.py:243 models.py:71
msgid "Preservation type"
msgstr "Type de conservation"
-#: forms.py:117 forms.py:246 models.py:358
+#: forms.py:117 forms.py:246 models.py:370
msgid "Integrity / interest"
msgstr "Intégrité / intérêt"
-#: forms.py:120 forms.py:248 models.py:361
+#: forms.py:120 forms.py:248 models.py:373
msgid "Remarkability"
msgstr "Remarquabilité"
-#: forms.py:122 models.py:363
+#: forms.py:122 models.py:375
msgid "Length (cm)"
msgstr "Longueur (cm)"
-#: forms.py:123 models.py:364
+#: forms.py:123 models.py:376
msgid "Width (cm)"
msgstr "Largeur (cm)"
-#: forms.py:124 models.py:365
+#: forms.py:124 models.py:377
msgid "Height (cm)"
msgstr "Hauteur (cm)"
-#: forms.py:125 models.py:366
+#: forms.py:125 models.py:378
msgid "Diameter (cm)"
msgstr "Diamètre (cm)"
-#: forms.py:126 forms.py:430 models.py:336
+#: forms.py:126 forms.py:430 models.py:348
msgid "Volume (l)"
msgstr "Volume (l)"
-#: forms.py:127 forms.py:431 models.py:337
+#: forms.py:127 forms.py:431 models.py:349
msgid "Weight (g)"
msgstr "Poids (g)"
-#: forms.py:129 models.py:367
+#: forms.py:129 models.py:379
msgid "Dimensions comment"
msgstr "Commentaire concernant les dimensions"
-#: forms.py:130 forms.py:432 models.py:340
+#: forms.py:130 forms.py:432 models.py:352
msgid "Find number"
msgstr "Mobilier (en nombre)"
-#: forms.py:131 models.py:369
+#: forms.py:131 models.py:381
msgid "Mark"
msgstr "Marque"
-#: forms.py:132 forms.py:254 models.py:375
+#: forms.py:132 forms.py:254 models.py:387
msgid "Check"
msgstr "Vérification"
-#: forms.py:134 models.py:377
+#: forms.py:134 models.py:389
msgid "Check date"
msgstr "Date de vérification"
-#: forms.py:135 models.py:120 models.py:370 models.py:704
+#: forms.py:135 models.py:132 models.py:382 models.py:720
msgid "Comment"
msgstr "Commentaires"
-#: forms.py:138 models.py:371
+#: forms.py:138 models.py:383
msgid "Comment on dating"
msgstr "Commentaire général sur les datations"
-#: forms.py:139 models.py:379
+#: forms.py:139 models.py:391
msgid "Estimated value"
msgstr "Valeur estimée"
@@ -144,7 +144,7 @@ msgstr ""
"<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "
"ratio est conservé).</p>"
-#: forms.py:181 forms.py:212 models.py:348
+#: forms.py:181 forms.py:212 models.py:360
msgid "Dating"
msgstr "Datation"
@@ -152,12 +152,12 @@ msgstr "Datation"
msgid "Period"
msgstr "Période"
-#: forms.py:187 forms.py:593 models.py:717 models.py:782 models.py:918
+#: forms.py:187 forms.py:593 models.py:733 models.py:798 models.py:934
#: templates/ishtar/sheet_find.html:85 templates/ishtar/sheet_find.html:114
msgid "Start date"
msgstr "Date de début"
-#: forms.py:189 forms.py:595 models.py:718 models.py:783 models.py:919
+#: forms.py:189 forms.py:595 models.py:734 models.py:799 models.py:935
#: templates/ishtar/sheet_find.html:86 templates/ishtar/sheet_find.html:115
msgid "End date"
msgstr "Date de fin"
@@ -174,11 +174,11 @@ msgstr "Type de datation"
msgid "Precise dating"
msgstr "Datation précise"
-#: forms.py:216 models.py:138
+#: forms.py:216 models.py:150
msgid "Short ID"
msgstr "ID court"
-#: forms.py:217 models.py:141
+#: forms.py:217 models.py:153
msgid "Complete ID"
msgstr "ID complet"
@@ -202,7 +202,7 @@ msgstr "Entité Archéologique"
msgid "Search within operation relations"
msgstr "Rechercher parmi les opérations reliées"
-#: forms.py:241 models.py:91
+#: forms.py:241 models.py:101
msgid "Object type"
msgstr "Type d'objet"
@@ -210,7 +210,7 @@ msgstr "Type d'objet"
msgid "Has an image?"
msgstr "Dispose d'une image ?"
-#: forms.py:297 forms.py:310 views.py:132
+#: forms.py:297 forms.py:310 views.py:133
msgid "Find search"
msgstr "Recherche de mobilier"
@@ -218,7 +218,7 @@ msgstr "Recherche de mobilier"
msgid "Upstream finds"
msgstr "Mobilier amont"
-#: forms.py:326 models.py:388
+#: forms.py:326 models.py:400
msgid "Finds"
msgstr "Mobilier"
@@ -294,16 +294,16 @@ msgstr "Panier"
msgid "Base treatment"
msgstr "Traitement de base"
-#: forms.py:578 models.py:693 models.py:706 models.py:781
+#: forms.py:578 models.py:707 models.py:722 models.py:797
msgid "Treatment type"
msgstr "Type de traitement"
-#: forms.py:580 models.py:715 models.py:786
+#: forms.py:580 models.py:731 models.py:802
#: templates/ishtar/sheet_find.html:83 templates/ishtar/sheet_find.html:112
msgid "Doer"
msgstr "Opérateur"
-#: forms.py:586 models.py:708 models.py:784
+#: forms.py:586 models.py:724 models.py:800
msgid "Location"
msgstr "Lieu"
@@ -355,383 +355,383 @@ msgstr "Recommandation"
msgid "Parent material"
msgstr "Matériau parent"
-#: models.py:51 models.py:327
+#: models.py:51 models.py:339
msgid "Material types"
msgstr "Types de matériau"
-#: models.py:57
+#: models.py:59
msgid "Parent conservatory state"
msgstr "État sanitaire - parent"
-#: models.py:61
+#: models.py:63
msgid "Conservatory states"
msgstr "États sanitaires"
-#: models.py:68
+#: models.py:72
msgid "Preservation types"
msgstr "Types de conservation"
-#: models.py:74
+#: models.py:80
msgid "Integrity / interest type"
msgstr "Type d'intégrité / intérêt"
-#: models.py:75
+#: models.py:81
msgid "Integrity / interest types"
msgstr "Types d'intégrité / intérêts"
-#: models.py:81
+#: models.py:89
msgid "Remarkability type"
msgstr "Type de remarquabilité"
-#: models.py:82
+#: models.py:90
msgid "Remarkability types"
msgstr "Types de remarquabilité"
-#: models.py:88
+#: models.py:98
msgid "Parent"
msgstr "Parent"
-#: models.py:107
+#: models.py:119
msgid "Unknow"
msgstr "Inconnu"
-#: models.py:108
+#: models.py:120
msgid "Object"
msgstr "Objet"
-#: models.py:109
+#: models.py:121
msgid "Batch"
msgstr "Lot"
-#: models.py:116 models.py:320 models.py:699
+#: models.py:128 models.py:332 models.py:715
msgid "External ID"
msgstr "ID externe"
-#: models.py:118 models.py:322
+#: models.py:130 models.py:334
msgid "External ID is set automatically"
msgstr "L'identifiant externe est configuré automatiquement"
-#: models.py:122
+#: models.py:134
msgid "Topographic localisation"
msgstr "Localisation topogaphique"
-#: models.py:123
+#: models.py:135
msgid "Special interest"
msgstr "Intérêt spécifique"
-#: models.py:127
+#: models.py:139
msgid "Context Record"
msgstr "Unité d'Enregistrement"
-#: models.py:128
+#: models.py:140
msgid "Discovery date"
msgstr "Date de découverte"
-#: models.py:133
+#: models.py:145
msgid "Material index"
msgstr "Index matériel"
-#: models.py:134
+#: models.py:146
msgid "Point"
msgstr "Point"
-#: models.py:135
+#: models.py:147
msgid "Line"
msgstr "Ligne"
-#: models.py:136
+#: models.py:148
msgid "Polygon"
msgstr "Polygon"
-#: models.py:139 models.py:142
+#: models.py:151 models.py:154
msgid "Cached value - do not edit"
msgstr "Valeur en cache - ne pas éditer"
-#: models.py:147 models.py:318
+#: models.py:159 models.py:330
msgid "Base find"
msgstr "Mobilier de base"
-#: models.py:148
+#: models.py:160
msgid "Base finds"
msgstr "Mobilier de base"
-#: models.py:150
+#: models.py:162
msgid "Can view all Base finds"
msgstr "Peut voir tout le Mobilier de base"
-#: models.py:151
+#: models.py:163
msgid "Can view own Base find"
msgstr "Peut voir son propre Mobilier de base"
-#: models.py:152
+#: models.py:164
msgid "Can add own Base find"
msgstr "Peut ajouter son propre Mobilier de base"
-#: models.py:153
+#: models.py:165
msgid "Can change own Base find"
msgstr "Peut modifier son propre Mobilier de base"
-#: models.py:154
+#: models.py:166
msgid "Can delete own Base find"
msgstr "Peut supprimer son propre Mobilier de base"
-#: models.py:263
+#: models.py:275
msgid "g"
msgstr "g"
-#: models.py:264
+#: models.py:276
msgid "kg"
msgstr "kg"
-#: models.py:266
+#: models.py:278
msgid "Not checked"
msgstr "Non vérifié"
-#: models.py:267
+#: models.py:279
msgid "Checked but incorrect"
msgstr "Vérifié mais incorrect"
-#: models.py:268
+#: models.py:280
msgid "Checked and correct"
msgstr "Vérifié et correct"
-#: models.py:308
+#: models.py:320
msgid "Base find - Short ID"
msgstr "Mobilier de base - ID court"
-#: models.py:309
+#: models.py:321
msgid "Base find - Complete ID"
msgstr "Mobilier de base - ID complet"
-#: models.py:310
+#: models.py:322
msgid "Base find - Comment"
msgstr "Mobilier de base - Commentaires"
-#: models.py:311
+#: models.py:323
msgid "Base find - Description"
msgstr "Mobilier de base - Description"
-#: models.py:312
+#: models.py:324
msgid "Base find - Topographic localisation"
msgstr "Mobilier de base - Localisation topographique"
-#: models.py:314
+#: models.py:326
msgid "Base find - Special interest"
msgstr "Mobilier de base - Intérêt spécifique"
-#: models.py:315
+#: models.py:327
msgid "Base find - Discovery date"
msgstr "Mobilier de base - Date de découverte"
-#: models.py:323 models.py:775
+#: models.py:335 models.py:791
msgid "Order"
msgstr "Ordre"
-#: models.py:334
+#: models.py:346
msgid "Type of preservation to consider"
msgstr "Mesures de conservation à envisager"
-#: models.py:338
+#: models.py:350
msgid "Weight unit"
msgstr "Unité de poids"
-#: models.py:344 templates/ishtar/sheet_find.html:76
+#: models.py:356 templates/ishtar/sheet_find.html:76
msgid "Upstream treatment"
msgstr "Traitement amont"
-#: models.py:347 templates/ishtar/sheet_find.html:105
+#: models.py:359 templates/ishtar/sheet_find.html:105
msgid "Downstream treatment"
msgstr "Traitement aval"
-#: models.py:351 models.py:701 models.py:785
+#: models.py:363 models.py:717 models.py:801
#: templates/ishtar/sheet_find.html:84 templates/ishtar/sheet_find.html:113
msgid "Container"
msgstr "Contenant"
-#: models.py:381
+#: models.py:393
msgid "Cached name"
msgstr "Nom en cache"
-#: models.py:390
+#: models.py:402
msgid "Can view all Finds"
msgstr "Peut voir tout le Mobilier"
-#: models.py:391
+#: models.py:403
msgid "Can view own Find"
msgstr "Peut voir son propre Mobilier"
-#: models.py:392
+#: models.py:404
msgid "Can add own Find"
msgstr "Peut ajouter son propre Mobilier"
-#: models.py:393
+#: models.py:405
msgid "Can change own Find"
msgstr "Peut modifier son propre Mobilier"
-#: models.py:394
+#: models.py:406
msgid "Can delete own Find"
msgstr "Peut supprimer son propre Mobilier"
-#: models.py:400
+#: models.py:412
msgid "FIND"
msgstr "MOBILIER"
-#: models.py:669
+#: models.py:683
msgid "Find documentation"
msgstr "Documentation de mobilier"
-#: models.py:670
+#: models.py:684
msgid "Find documentations"
msgstr "Documentations de mobilier"
-#: models.py:680
+#: models.py:694
msgid "Virtual"
msgstr "Virtuel"
-#: models.py:682
+#: models.py:696
msgid "Upstream is many"
msgstr "Les éléments amonts sont multiple"
-#: models.py:684
+#: models.py:698
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:687
+#: models.py:701
msgid "Downstream is many"
msgstr "Les éléments avals sont multiple"
-#: models.py:689
+#: models.py:703
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:694
+#: models.py:708
msgid "Treatment types"
msgstr "Types de traitement"
-#: models.py:710
+#: models.py:726
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:712
+#: models.py:728
msgid "Other location"
msgstr "Autre lieu"
-#: models.py:722 models.py:771 models.py:905
+#: models.py:738 models.py:787 models.py:921
msgid "Treatment"
msgstr "Traitement"
-#: models.py:723 templates/ishtar/sheet_find.html:73
+#: models.py:739 templates/ishtar/sheet_find.html:73
msgid "Treatments"
msgstr "Traitements"
-#: models.py:725
+#: models.py:741
msgid "Can view all Treatments"
msgstr "Peut voir tous les Traitements"
-#: models.py:726
+#: models.py:742
msgid "Can view own Treatment"
msgstr "Peut voir son propre Traitement"
-#: models.py:727
+#: models.py:743
msgid "Can add own Treatment"
msgstr "Peut ajouter son propre Traitement"
-#: models.py:728
+#: models.py:744
msgid "Can change own Treatment"
msgstr "Peut modifier son propre Traitement"
-#: models.py:729
+#: models.py:745
msgid "Can delete own Treatment"
msgstr "Peut supprimer son propre Traitement"
-#: models.py:735
+#: models.py:751
msgid "by"
msgstr "par"
-#: models.py:787 models.py:788 templates/ishtar/sheet_find.html:82
+#: models.py:803 models.py:804 templates/ishtar/sheet_find.html:82
#: templates/ishtar/sheet_find.html:111
msgid "Related finds"
msgstr "Mobilier associé"
-#: models.py:891
+#: models.py:907
msgid "Is upstream"
msgstr "Est amont"
-#: models.py:902
+#: models.py:918
msgid "Treatment documentation"
msgstr "Documentation d'un traitement"
-#: models.py:903
+#: models.py:919
msgid "Treament documentations"
msgstr "Documentations des traitements"
-#: models.py:915
+#: models.py:931
msgid "Administrative act"
msgstr "Acte administratif"
-#: models.py:916
+#: models.py:932
msgid "Person"
msgstr "Individu"
-#: models.py:922
+#: models.py:938
msgid "Property"
msgstr "Propriété"
-#: models.py:923
+#: models.py:939
msgid "Properties"
msgstr "Propriétés"
-#: views.py:127
+#: views.py:128
msgid "New find"
msgstr "Nouveau mobilier"
-#: views.py:141
+#: views.py:142
msgid "Find modification"
msgstr "Modification de mobilier"
-#: views.py:156
+#: views.py:157
msgid "Find deletion"
msgstr "Suppression de mobilier"
-#: views.py:161
+#: views.py:162
msgid "Find: source search"
msgstr "Mobilier : recherche de documentation associée"
-#: views.py:169
+#: views.py:170
msgid "Find: new source"
msgstr "Mobilier : nouvelle documentation associée"
-#: views.py:177
+#: views.py:178
msgid "Find: source modification"
msgstr "Mobilier : modification de documentation associée"
-#: views.py:192
+#: views.py:193
msgid "Find: source deletion"
msgstr "Mobilier : suppression de mobilier associé"
-#: views.py:206
+#: views.py:207
msgid "New basket"
msgstr "Nouveau panier"
-#: views.py:225
+#: views.py:226
msgid "Manage items in basket"
msgstr "Gérer les éléments dans un panier"
-#: views.py:245
+#: views.py:246
msgid "Manage basket"
msgstr "Gérer un panier"
-#: views.py:333
+#: views.py:334
msgid "Delete basket"
msgstr "Supprimer un panier"
-#: views.py:371
+#: views.py:372
msgid "New treatment"
msgstr "Nouveau traitement"
diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po
index f4f2eb713..9388c271b 100644
--- a/translations/fr/archaeological_operations.po
+++ b/translations/fr/archaeological_operations.po
@@ -18,12 +18,12 @@ msgstr ""
"X-Generator: Zanata 3.9.5\n"
#: forms.py:67 forms.py:369 forms.py:1004 forms.py:1026 forms.py:1030
-#: models.py:1037 templates/ishtar/sheet_operation.html:139
+#: models.py:1047 templates/ishtar/sheet_operation.html:139
#: templates/ishtar/blocks/window_tables/parcels.html:10
msgid "Parcels"
msgstr "Parcelles"
-#: forms.py:70 forms.py:203 forms.py:980 models.py:1023
+#: forms.py:70 forms.py:203 forms.py:980 models.py:1033
#: templates/ishtar/blocks/window_tables/parcels.html:7
#: templates/ishtar/dashboards/dashboard_operation.html:432
#: templates/ishtar/dashboards/dashboard_operation.html:446
@@ -32,22 +32,22 @@ msgstr "Parcelles"
msgid "Town"
msgstr "Commune"
-#: forms.py:72 forms.py:459 forms.py:755 forms.py:1250 models.py:197
-#: models.py:840 models.py:1021
+#: forms.py:72 forms.py:459 forms.py:755 forms.py:1250 models.py:203
+#: models.py:850 models.py:1031
#: templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Year"
msgstr "Année"
-#: forms.py:75 models.py:1024
+#: forms.py:75 models.py:1034
#: templates/ishtar/blocks/window_tables/parcels.html:9
msgid "Section"
msgstr "Section"
-#: forms.py:78 models.py:1026
+#: forms.py:78 models.py:1036
msgid "Parcel number"
msgstr "Numéro de parcelle"
-#: forms.py:80 models.py:1028 models.py:1045 models.py:1094
+#: forms.py:80 models.py:1038 models.py:1055 models.py:1104
msgid "Public domain"
msgstr "Domaine public"
@@ -83,8 +83,8 @@ msgstr "Il y a des parcelles identiques."
msgid "Relation type"
msgstr "Type de relation"
-#: forms.py:381 ishtar_menu.py:30 models.py:291 models.py:740 models.py:765
-#: models.py:781 models.py:832 models.py:1020 wizards.py:339 wizards.py:350
+#: forms.py:381 ishtar_menu.py:30 models.py:298 models.py:748 models.py:773
+#: models.py:789 models.py:842 models.py:1030 wizards.py:339 wizards.py:350
#: templates/ishtar/sheet_operation.html:4
msgid "Operation"
msgstr "Opération"
@@ -113,7 +113,7 @@ msgstr "Relations supprimées"
msgid "Relations"
msgstr "Relations"
-#: forms.py:460 forms.py:1221 models.py:198
+#: forms.py:460 forms.py:1221 models.py:204
msgid "Numeric reference"
msgstr "Identifiant numérique"
@@ -121,7 +121,7 @@ msgstr "Identifiant numérique"
msgid "Parcel (section/number/public domain)"
msgstr "Parcelle (section/nombre/domaine public)"
-#: forms.py:469 forms.py:1264 models.py:741
+#: forms.py:469 forms.py:1264 models.py:749
#: templates/ishtar/dashboards/dashboard_operation.html:390
#: templates/ishtar/dashboards/dashboard_operation.html:411
#: templates/ishtar/dashboards/dashboard_operation.html:643
@@ -130,12 +130,12 @@ msgstr "Parcelle (section/nombre/domaine public)"
msgid "Department"
msgstr "Département"
-#: forms.py:470 forms.py:1092 models.py:79
+#: forms.py:470 forms.py:1092 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:205
+#: forms.py:472 forms.py:675 forms.py:753 forms.py:1227 models.py:211
msgid "Operation type"
msgstr "Type d'opération"
@@ -143,24 +143,24 @@ msgstr "Type d'opération"
msgid "Is open?"
msgstr "Est ouvert ?"
-#: forms.py:483 forms.py:782 models.py:194
+#: forms.py:483 forms.py:782 models.py:200
msgid "In charge"
msgstr "Responsable"
-#: forms.py:490 models.py:826
+#: forms.py:490 models.py:836
msgid "Scientist in charge"
msgstr "Responsable scientifique"
-#: forms.py:492 forms.py:677 forms.py:773 models.py:192
+#: forms.py:492 forms.py:677 forms.py:773 models.py:198
msgid "Operator"
msgstr "Opérateur"
-#: forms.py:499 forms.py:1097 models.py:83 models.py:207
+#: forms.py:499 forms.py:1097 models.py:89 models.py:213
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10
msgid "Remains"
msgstr "Vestiges"
-#: forms.py:500 forms.py:1075 forms.py:1094 models.py:81 models.py:212
+#: forms.py:500 forms.py:1075 forms.py:1094 models.py:87 models.py:219
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9
msgid "Periods"
msgstr "Périodes"
@@ -193,19 +193,19 @@ msgstr "Commentaire"
msgid "Abstract (full text search)"
msgstr "Résumé (recherche texte intégral)"
-#: forms.py:515 forms.py:835 models.py:260
+#: forms.py:515 forms.py:835 models.py:267
msgid "Comment about scientific documentation"
msgstr "Commentaire concernant la documentation scientifique"
-#: forms.py:516 forms.py:837 models.py:272
+#: forms.py:516 forms.py:837 models.py:279
msgid "Record quality"
msgstr "Qualité d'enregistrement"
-#: forms.py:517 forms.py:805 models.py:224
+#: forms.py:517 forms.py:805 models.py:231
msgid "Report processing"
msgstr "Traitement du rapport"
-#: forms.py:519 forms.py:840 models.py:267
+#: forms.py:519 forms.py:840 models.py:274
msgid "Virtual operation"
msgstr "Opération virtuelle"
@@ -229,7 +229,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:544 forms.py:825 models.py:279
+#: forms.py:544 forms.py:825 models.py:286
msgid "Documentation received"
msgstr "Documentation reçue"
@@ -241,11 +241,11 @@ msgstr "Date limite de rendu du mobilier avant"
msgid "Finds deadline after"
msgstr "Date limite de rendu du mobilier après"
-#: forms.py:550 forms.py:830 models.py:283
+#: forms.py:550 forms.py:830 models.py:290
msgid "Finds received"
msgstr "Mobilier reçu"
-#: forms.py:595 forms.py:1213 views.py:258
+#: forms.py:595 forms.py:1213 views.py:259
msgid "Operation search"
msgstr "Recherche d'opérations"
@@ -253,11 +253,11 @@ msgstr "Recherche d'opérations"
msgid "Associated file"
msgstr "Dossier associé"
-#: forms.py:643 forms.py:928 models.py:837 wizards.py:76
+#: forms.py:643 forms.py:928 models.py:847 wizards.py:76
msgid "Archaelogical file"
msgstr "Dossier"
-#: forms.py:650 forms.py:652 models.py:274
+#: forms.py:650 forms.py:652 models.py:281
msgid "Abstract"
msgstr "Résumé"
@@ -269,7 +269,7 @@ msgstr "mois"
msgid "years"
msgstr "années"
-#: forms.py:657 models.py:178
+#: forms.py:657 models.py:184
msgid "Creation date"
msgstr "Date de création"
@@ -326,11 +326,11 @@ msgstr "Avec du mobilier"
msgid "General"
msgstr "Général"
-#: forms.py:751 models.py:257
+#: forms.py:751 models.py:264
msgid "Generic name"
msgstr "Nom générique"
-#: forms.py:760 models.py:226
+#: forms.py:760 models.py:233
msgid "Old code"
msgstr "Ancien code"
@@ -338,7 +338,7 @@ msgstr "Ancien code"
msgid "Head scientist"
msgstr "Responsable scientifique"
-#: forms.py:779 models.py:256
+#: forms.py:779 models.py:263
msgid "Operator reference"
msgstr "Référence de l'opérateur"
@@ -346,23 +346,23 @@ msgstr "Référence de l'opérateur"
msgid "Total surface (m2)"
msgstr "Surface totale (m2)"
-#: forms.py:798 models.py:51 models.py:181 models.py:1210
+#: forms.py:798 models.py:53 models.py:187 models.py:1220
msgid "Start date"
msgstr "Date de début"
-#: forms.py:800 models.py:183
+#: forms.py:800 models.py:189
msgid "Excavation end date"
msgstr "Date de fin de chantier"
-#: forms.py:803 models.py:184
+#: forms.py:803 models.py:190
msgid "Report delivery date"
msgstr "Date de livraison du rapport"
-#: forms.py:822 models.py:276
+#: forms.py:822 models.py:283
msgid "Deadline for submission of the documentation"
msgstr "Date limite de rendu de la documentation"
-#: forms.py:827 models.py:281
+#: forms.py:827 models.py:288
msgid "Deadline for submission of the finds"
msgstr "Date limite de rendu du mobilier"
@@ -404,7 +404,7 @@ msgstr ""
msgid "Bad operation code"
msgstr "Mauvais code d'opération"
-#: forms.py:924 models.py:424
+#: forms.py:924 models.py:432
msgid "Operation code"
msgstr "Code de l'opération"
@@ -412,20 +412,20 @@ msgstr "Code de l'opération"
msgid "Preventive informations - excavation"
msgstr "Information archéologie préventive - fouille"
-#: forms.py:951 models.py:210
+#: forms.py:951 models.py:217
#: templates/ishtar/dashboards/dashboard_operation.html:701
msgid "Cost (euros)"
msgstr "Coût (euros)"
-#: forms.py:952 models.py:215
+#: forms.py:952 models.py:222
msgid "Scheduled man-days"
msgstr "Jours-hommes prévus"
-#: forms.py:954 models.py:218
+#: forms.py:954 models.py:225
msgid "Optional man-days"
msgstr "Jours-hommes optionnels"
-#: forms.py:956 models.py:221
+#: forms.py:956 models.py:228
msgid "Effective man-days"
msgstr "Jours-hommes effectifs"
@@ -433,23 +433,23 @@ msgstr "Jours-hommes effectifs"
msgid "Preventive informations - diagnostic"
msgstr "Information archéologie préventive - diagnostic"
-#: forms.py:969 models.py:240
+#: forms.py:969 models.py:247
msgid "Prescription on zoning"
msgstr "Prescription sur zonage"
-#: forms.py:971 models.py:243
+#: forms.py:971 models.py:250
msgid "Prescription on large area"
msgstr "Prescription sur une vaste surface"
-#: forms.py:974 models.py:245
+#: forms.py:974 models.py:252
msgid "Prescription on geoarchaeological context"
msgstr "Prescription sur un contexte géoarchéologique"
-#: forms.py:978 forms.py:1000 models.py:209 models.py:850
+#: forms.py:978 forms.py:1000 models.py:215 models.py:860
msgid "Towns"
msgstr "Communes"
-#: forms.py:1007 models.py:1036 models.py:1208
+#: forms.py:1007 models.py:1046 models.py:1218
msgid "Parcel"
msgstr "Parcelle"
@@ -466,7 +466,7 @@ msgstr "Type de vestige"
msgid "Period"
msgstr "Période"
-#: forms.py:1091 models.py:78
+#: forms.py:1091 models.py:84
msgid "Reference"
msgstr "Référence"
@@ -474,11 +474,11 @@ msgstr "Référence"
msgid "This reference already exists."
msgstr "Cette référence existe déjà."
-#: forms.py:1137 models.py:87
+#: forms.py:1137 models.py:93
msgid "Archaeological site"
msgstr "Entité archéologique"
-#: forms.py:1152 models.py:88 models.py:264
+#: forms.py:1152 models.py:94 models.py:271
#: templates/ishtar/sheet_operation.html:94
msgid "Archaeological sites"
msgstr "Entités archéologiques"
@@ -499,7 +499,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:1181 forms.py:1251 forms.py:1387 models.py:767 models.py:817
+#: forms.py:1181 forms.py:1251 forms.py:1387 models.py:775 models.py:827
msgid "Index"
msgstr "Index"
@@ -528,7 +528,7 @@ msgstr "Recherche de document"
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
-#: forms.py:1258 forms.py:1325 models.py:792 models.py:811
+#: forms.py:1258 forms.py:1325 models.py:800 models.py:821
msgid "Act type"
msgstr "Type d'acte"
@@ -536,12 +536,12 @@ msgstr "Type d'acte"
msgid "Indexed?"
msgstr "Indexé ?"
-#: forms.py:1265 forms.py:1330 models.py:841
+#: forms.py:1265 forms.py:1330 models.py:851
#: templates/ishtar/blocks/window_tables/administrativacts.html:10
msgid "Object"
msgstr "Objet"
-#: forms.py:1302 views.py:414
+#: forms.py:1302 views.py:415
msgid "Administrative act search"
msgstr "Recherche d'actes administratifs"
@@ -549,7 +549,7 @@ msgstr "Recherche d'actes administratifs"
msgid "You should select an administrative act."
msgstr "Vous devez sélectionner un acte administratif."
-#: forms.py:1333 models.py:838
+#: forms.py:1333 models.py:848
msgid "Signature date"
msgstr "Date de signature"
@@ -586,7 +586,7 @@ msgstr "Génération de document"
msgid "Generate the associated doc?"
msgstr "Générer le document associé ?"
-#: forms.py:1466 ishtar_menu.py:121 views.py:467
+#: forms.py:1466 ishtar_menu.py:121 views.py:468
msgctxt "admin act register"
msgid "Register"
msgstr "Registre"
@@ -607,7 +607,7 @@ msgstr "Clôture"
msgid "Deletion"
msgstr "Suppression"
-#: ishtar_menu.py:58 models.py:857
+#: ishtar_menu.py:58 models.py:867
#: templates/ishtar/sheet_administrativeact.html:4
msgid "Administrative act"
msgstr "Acte administratif"
@@ -636,420 +636,420 @@ msgstr "Tableau de bord"
msgid "General informations"
msgstr "Informations générales"
-#: ishtar_menu.py:136 models.py:292
+#: ishtar_menu.py:136 models.py:299
#: templates/ishtar/dashboards/dashboard_operation.html:8
msgid "Operations"
msgstr "Opérations"
-#: models.py:50 models.py:66 models.py:1672
+#: models.py:52 models.py:70 models.py:1682
msgid "Order"
msgstr "Ordre"
-#: models.py:52 models.py:1211
+#: models.py:54 models.py:1221
msgid "End date"
msgstr "Date de fin"
-#: models.py:53
+#: models.py:55
msgid "Parent period"
msgstr "Période parente"
-#: models.py:57
+#: models.py:59
msgid "Type Period"
msgstr "Type de période"
-#: models.py:58
+#: models.py:60
msgid "Types Period"
msgstr "Types de période"
-#: models.py:69
+#: models.py:73
msgid "Type of report state"
msgstr "Type d'état de rapport"
-#: models.py:70
+#: models.py:74
msgid "Types of report state"
msgstr "Types d'état de rapport"
-#: models.py:91
+#: models.py:97
msgid "Can view all Archaeological sites"
msgstr "Peut voir toutes les Entités archéologiques"
-#: models.py:93
+#: models.py:99
msgid "Can view own Archaeological site"
msgstr "Peut voir ses propres Entités archéologiques"
-#: models.py:95
+#: models.py:101
msgid "Can add own Archaeological site"
msgstr "Peut ajouter ses propres Entités archéologique"
-#: models.py:97
+#: models.py:103
msgid "Can change own Archaeological site"
msgstr "Peut modifier ses propres Entités archéologiques"
-#: models.py:99
+#: models.py:105
msgid "Can delete own Archaeological site"
msgstr "Peut supprimer ses propres Entités archéologiques"
-#: models.py:136
+#: models.py:142
msgid "Not documented"
msgstr "Non documenté"
-#: models.py:137
+#: models.py:143
msgid "Arbitrary"
msgstr "Arbitraire"
-#: models.py:138
+#: models.py:144
msgid "Reliable"
msgstr "Fiable"
-#: models.py:180
+#: models.py:186
msgid "Closing date"
msgstr "Date de clôture"
-#: models.py:187
+#: models.py:193
msgid "In charge scientist"
msgstr "Responsable scientifique"
-#: models.py:202 models.py:1016
+#: models.py:208 models.py:1026
msgid "File"
msgstr "Dossier"
-#: models.py:206
+#: models.py:212
msgid "Surface (m2)"
msgstr "Surface (m2)"
-#: models.py:258
+#: models.py:265
msgid "General comment"
msgstr "Commentaire général"
-#: models.py:261
+#: models.py:268
msgid "Cached name"
msgstr "Nom en cache"
-#: models.py:269
+#: models.py:276
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:285
+#: models.py:292
msgid "Point"
msgstr "Point"
-#: models.py:286
+#: models.py:293
msgid "Multi polygon"
msgstr "Polygones multiples"
-#: models.py:294
+#: models.py:301
msgid "Can view all Operations"
msgstr "Peut voir toutes les Opérations"
-#: models.py:295
+#: models.py:302
msgid "Can view own Operation"
msgstr "Peut voir sa propre Opération"
-#: models.py:296
+#: models.py:303
msgid "Can add own Operation"
msgstr "Peut ajouter sa propre Opération"
-#: models.py:297
+#: models.py:304
msgid "Can change own Operation"
msgstr "Peut modifier sa propre Opération"
-#: models.py:298
+#: models.py:305
msgid "Can delete own Operation"
msgstr "Peut supprimer sa propre Opération"
-#: models.py:299
+#: models.py:306
msgid "Can close Operation"
msgstr "Peut fermer une Opération"
-#: models.py:326
+#: models.py:334
msgid "OPE"
msgstr "OPE"
-#: models.py:383
+#: models.py:391
msgid "Intercommunal"
msgstr "Intercommunal"
-#: models.py:409 models.py:780
+#: models.py:417 models.py:788
msgid "Archaeological file"
msgstr "Dossier archéologique"
-#: models.py:410
+#: models.py:418
msgid "Code patriarche"
msgstr "Code patriarche"
-#: models.py:450
+#: models.py:458
msgid "This operation code already exists for this year"
msgstr "Ce code d'opération existe déjà pour cette année."
-#: models.py:483
+#: models.py:491
msgid "Number of parcels"
msgstr "Nombre de parcelles"
-#: models.py:501
+#: models.py:509
msgid "Number of administrative acts"
msgstr "Nombre d'actes administratifs"
-#: models.py:509
+#: models.py:517
msgid "Number of indexed administrative acts"
msgstr "Nombre d'actes administratifs indexés"
-#: models.py:517
+#: models.py:525
msgid "Number of context records"
msgstr "Nombre d'Unités d'Enregistrement"
-#: models.py:553
+#: models.py:561
msgid "Number of finds"
msgstr "Nombre d'élément de mobilier"
-#: models.py:598
+#: models.py:606
msgid "No type"
msgstr "Pas de type"
-#: models.py:629
+#: models.py:637
msgid "Number of sources"
msgstr "Nombre de documents"
-#: models.py:671 templates/ishtar/dashboards/dashboard_operation.html:309
+#: models.py:679 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:711
+#: models.py:719
msgid "Inverse relation"
msgstr "Relation inverse"
-#: models.py:715
+#: models.py:723
msgid "Operation relation type"
msgstr "Type de relation entre opérations"
-#: models.py:716
+#: models.py:724
msgid "Operation relation types"
msgstr "Types de relation entre opérations"
-#: models.py:729
+#: models.py:737
msgid "Operation record relation"
msgstr "Relation entre opérations"
-#: models.py:730
+#: models.py:738
msgid "Operation record relations"
msgstr "Relations entre opérations"
-#: models.py:751
+#: models.py:759
msgid "Operation documentation"
msgstr "Documentation d'une opération"
-#: models.py:752
+#: models.py:760
msgid "Operation documentations"
msgstr "Documentations des opérations"
-#: models.py:755
+#: models.py:763
msgid "Can view all Operation sources"
msgstr "Peut voir toutes les Documentations d'opération"
-#: models.py:757
+#: models.py:765
msgid "Can view own Operation source"
msgstr "Peut voir sa propre Documentation d'opération"
-#: models.py:759
+#: models.py:767
msgid "Can add own Operation source"
msgstr "Peut ajouter sa propre Documentation d'opération"
-#: models.py:761
+#: models.py:769
msgid "Can change own Operation source"
msgstr "Peut modifier sa propre Documentation d'opération"
-#: models.py:763
+#: models.py:771
msgid "Can delete own Operation source"
msgstr "Peut supprimer sa propre Documentation d'opération"
-#: models.py:783
+#: models.py:791
msgid "Intended to"
msgstr "Destiné à"
-#: models.py:785
+#: models.py:793
msgid "Code"
msgstr "Code"
-#: models.py:788
+#: models.py:796
msgid "Associated template"
msgstr "Patron associé"
-#: models.py:789
+#: models.py:797
msgid "Indexed"
msgstr "Indexé"
-#: models.py:793
+#: models.py:801
msgid "Act types"
msgstr "Types d'acte"
-#: models.py:815
+#: models.py:825
msgid "Person in charge of the operation"
msgstr "Responsable d'opération"
-#: models.py:821
+#: models.py:831
msgid "Archaeological preventive operator"
msgstr "Opérateur d'archéologie préventive"
-#: models.py:829
+#: models.py:839
msgid "Signatory"
msgstr "Signataire"
-#: models.py:847
+#: models.py:857
msgid "Departments"
msgstr "Départements"
-#: models.py:848
+#: models.py:858
msgid "Cached values get from associated departments"
msgstr "Valeur en cache des départements associés"
-#: models.py:851
+#: models.py:861
msgid "Cached values get from associated towns"
msgstr "Valeur en cache des communes associées"
-#: models.py:858 templates/ishtar/sheet_operation.html:102
+#: models.py:868 templates/ishtar/sheet_operation.html:102
#: templates/ishtar/sheet_operation.html:133
msgid "Administrative acts"
msgstr "Actes administratifs"
-#: models.py:861
+#: models.py:871
msgid "Can view all Administrative acts"
msgstr "Peut voir tous les Actes administratifs"
-#: models.py:863
+#: models.py:873
msgid "Can view own Administrative act"
msgstr "Peut voir son propre Acte administratif"
-#: models.py:865
+#: models.py:875
msgid "Can add own Administrative act"
msgstr "Peut ajouter son propre Acte administratif"
-#: models.py:867
+#: models.py:877
msgid "Can change own Administrative act"
msgstr "Peut modifier son propre Acte administratif"
-#: models.py:869
+#: models.py:879
msgid "Can delete own Administrative act"
msgstr "Peut supprimer son propre Acte administratif"
-#: models.py:878
+#: models.py:888
#: templates/ishtar/blocks/window_tables/administrativacts.html:7
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7
msgid "Ref."
msgstr "Réf."
-#: models.py:961
+#: models.py:971
msgid "This index already exists for this year"
msgstr "Cet index existe déjà pour cette année."
-#: models.py:1029
+#: models.py:1039
msgid "External ID"
msgstr "ID externe"
-#: models.py:1032
+#: models.py:1042
msgid "External ID is set automatically"
msgstr "L'identifiant externe est configuré automatiquement"
-#: models.py:1033
+#: models.py:1043
msgid "Address - Locality"
msgstr "Adresse - Lieu-dit"
-#: models.py:1206
+#: models.py:1216
msgid "Owner"
msgstr "Propriétaire"
-#: models.py:1214
+#: models.py:1224
msgid "Parcel owner"
msgstr "Propriétaire de parcelle"
-#: models.py:1215
+#: models.py:1225
msgid "Parcel owners"
msgstr "Propriétaires de parcelle"
-#: models.py:1241
+#: models.py:1251
msgid "Recorded"
msgstr "Enregistré"
-#: models.py:1242
+#: models.py:1252
msgid "Effective"
msgstr "Effectif"
-#: models.py:1243
+#: models.py:1253
msgid "Active"
msgstr "Actif"
-#: models.py:1244
+#: models.py:1254
msgid "Field completed"
msgstr "Terrain achevé"
-#: models.py:1245
+#: models.py:1255
msgid "Associated report"
msgstr "Rapport associé"
-#: models.py:1246
+#: models.py:1256
msgid "Closed"
msgstr "Clos"
-#: models.py:1247
+#: models.py:1257
msgid "Documented and closed"
msgstr "Documenté et clos"
-#: models.py:1673
+#: models.py:1683
msgid "Is preventive"
msgstr "Préventif"
-#: models.py:1676
+#: models.py:1686
msgid "Operation type old"
msgstr "Type d'opération - ancien"
-#: models.py:1677
+#: models.py:1687
msgid "Operation types old"
msgstr "Types d'opération - ancien"
-#: views.py:304
+#: views.py:305
msgid "New operation"
msgstr "Nouvelle opération"
-#: views.py:323
+#: views.py:324
msgid "Operation modification"
msgstr "Modification d'une opération"
-#: views.py:366
+#: views.py:367
msgid "Operation closing"
msgstr "Clôture d'une opération"
-#: views.py:372
+#: views.py:373
msgid "Operation deletion"
msgstr "Suppression d'une opération"
-#: views.py:377
+#: views.py:378
msgid "Operation: source search"
msgstr "Opération : recherche de documentation associée"
-#: views.py:385
+#: views.py:386
msgid "Operation: source creation"
msgstr "Opération : nouvelle documentation associée"
-#: views.py:393
+#: views.py:394
msgid "Operation: source modification"
msgstr "Opération : modification d'une documentation associée"
-#: views.py:408
+#: views.py:409
msgid "Operation: source deletion"
msgstr "Opération : suppression d'une documentation associée"
-#: views.py:427
+#: views.py:428
msgid "Operation: new administrative act"
msgstr "Opération : nouvel acte administratif"
-#: views.py:437
+#: views.py:438
msgid "Operation: administrative act modification"
msgstr "Opération : modification d'un acte administratif"
-#: views.py:461
+#: views.py:462
msgid "Operation: administrative act deletion"
msgstr "Opération : suppression d'un acte administratif"
diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po
index 2e7367415..4318212e7 100644
--- a/translations/fr/archaeological_warehouse.po
+++ b/translations/fr/archaeological_warehouse.po
@@ -15,23 +15,23 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.9.5\n"
-#: forms.py:34 forms.py:97 models.py:44 models.py:73
+#: forms.py:34 forms.py:97 models.py:47 models.py:78
msgid "Warehouse"
msgstr "Dépôt"
-#: forms.py:43 models.py:35
+#: forms.py:43 models.py:38
msgid "Name"
msgstr "Nom"
-#: forms.py:45 models.py:29 models.py:37
+#: forms.py:45 models.py:30 models.py:40
msgid "Warehouse type"
msgstr "Type de dépôt"
-#: forms.py:48 models.py:40
+#: forms.py:48 models.py:43
msgid "Person in charge"
msgstr "Responsable"
-#: forms.py:54 forms.py:102 models.py:41 models.py:77
+#: forms.py:54 forms.py:102 models.py:44 models.py:82
msgid "Comment"
msgstr "Commentaires"
@@ -59,15 +59,15 @@ msgstr "Pays"
msgid "Phone"
msgstr "Téléphone"
-#: forms.py:93 models.py:80
+#: forms.py:93 models.py:85
msgid "Container"
msgstr "Contenant"
-#: forms.py:94 forms.py:129 models.py:63
+#: forms.py:94 forms.py:129 models.py:66
msgid "Ref."
msgstr "Réf."
-#: forms.py:95 forms.py:128 models.py:66 models.py:75
+#: forms.py:95 forms.py:128 models.py:69 models.py:80
msgid "Container type"
msgstr "Type de contenant"
@@ -103,58 +103,58 @@ msgstr "Mobilier conditionné"
msgid "Find"
msgstr "Mobilier"
-#: models.py:30
+#: models.py:31
msgid "Warehouse types"
msgstr "Types de dépôts"
-#: models.py:45
+#: models.py:48
msgid "Warehouses"
msgstr "Dépôts"
-#: models.py:47
+#: models.py:50
msgid "Can view all Warehouses"
msgstr "Peut voir tous les Dépôts"
-#: models.py:48
+#: models.py:51
msgid "Can view own Warehouse"
msgstr "Peut voir son propre Dépôt"
-#: models.py:49
+#: models.py:52
msgid "Can add own Warehouse"
msgstr "Peut ajouter son propre Dépôt"
-#: models.py:50
+#: models.py:53
msgid "Can change own Warehouse"
msgstr "Peut modifier son propre Dépôt"
-#: models.py:51
+#: models.py:54
msgid "Can delete own Warehouse"
msgstr "Peut supprimer son propre Dépôt"
-#: models.py:59
+#: models.py:62
msgid "Length (mm)"
msgstr "Longueur (mm)"
-#: models.py:60
+#: models.py:63
msgid "Width (mm)"
msgstr "Largeur (mm)"
-#: models.py:61
+#: models.py:64
msgid "Height (mm)"
msgstr "Hauteur (mm)"
-#: models.py:62
+#: models.py:65
msgid "Volume (l)"
msgstr "Volume (l)"
-#: models.py:67
+#: models.py:70
msgid "Container types"
msgstr "Types de contenant"
-#: models.py:76
+#: models.py:81
msgid "Container ref."
msgstr "Réf. du contenant"
-#: models.py:81
+#: models.py:86
msgid "Containers"
msgstr "Contenants"
diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po
index d0fea2af2..03dd5c53d 100644
--- a/translations/fr/ishtar_common.po
+++ b/translations/fr/ishtar_common.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-09-13 06:08-0400\n"
+"PO-Revision-Date: 2016-10-11 12:46-0400\n"
"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"
"Language-Team: \n"
"Language: fr\n"
@@ -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:245 models.py:1278
+#: forms.py:245 models.py:1307
msgid "Template"
msgstr "Patron"
#: forms_common.py:41 forms_common.py:59 forms_common.py:182
-#: forms_common.py:406 models.py:1344 models.py:2658
+#: forms_common.py:406 models.py:1373 models.py:2722
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:13
msgid "Town"
@@ -198,8 +198,8 @@ msgstr ""
"<p class='example'>Par exemple tapez « saint denis 93 » pour obtenir la "
"commune Saint-Denis dans le département français de Seine-Saint-Denis.</p>"
-#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1512
-#: models.py:2326 models.py:2480 models.py:2538
+#: forms_common.py:68 forms_common.py:855 ishtar_menu.py:47 models.py:1543
+#: models.py:2361 models.py:2530 models.py:2592
#: templates/ishtar/sheet_person.html:4
msgid "Person"
msgstr "Personne"
@@ -213,63 +213,63 @@ msgstr ""
"pas possible."
#: forms_common.py:170 forms_common.py:327 forms_common.py:451
-#: ishtar_menu.py:75 models.py:1513 models.py:2231
+#: ishtar_menu.py:75 models.py:1544 models.py:2262
#: 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:945 models.py:1277
-#: models.py:1558 models.py:1776 models.py:2225 models.py:2312 models.py:2644
+#: forms_common.py:376 forms_common.py:446 models.py:974 models.py:1306
+#: models.py:1589 models.py:1807 models.py:2256 models.py:2347 models.py:2708
#: templates/ishtar/sheet_organization.html:8
#: templates/ishtar/sheet_organization.html:21
msgid "Name"
msgstr "Nom"
-#: forms_common.py:174 models.py:1499 models.py:1907
+#: forms_common.py:174 models.py:1528 models.py:1938
msgid "Organization type"
msgstr "Type d'organisation"
-#: forms_common.py:176 forms_common.py:400 models.py:1339
+#: forms_common.py:176 forms_common.py:400 models.py:1368
#: templates/ishtar/sheet_organization.html:10
msgid "Address"
msgstr "Adresse"
-#: forms_common.py:178 forms_common.py:403 models.py:1340
+#: forms_common.py:178 forms_common.py:403 models.py:1369
#: templates/ishtar/sheet_organization.html:11
msgid "Address complement"
msgstr "Complément d'adresse"
-#: forms_common.py:180 forms_common.py:404 models.py:1342
+#: forms_common.py:180 forms_common.py:404 models.py:1371
#: templates/ishtar/sheet_organization.html:12
msgid "Postal code"
msgstr "Code postal"
-#: forms_common.py:183 forms_common.py:407 models.py:1345
+#: forms_common.py:183 forms_common.py:407 models.py:1374
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:1372
+#: forms_common.py:448 forms_common.py:572 models.py:1401
msgid "Email"
msgstr "Courriel"
-#: forms_common.py:186 forms_common.py:383 models.py:1357
+#: forms_common.py:186 forms_common.py:383 models.py:1386
#: 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:1369
+#: forms_common.py:187 forms_common.py:392 models.py:1398
#: 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:1935
-#: models.py:2227 models.py:2579 templates/sheet_ope.html:85
+#: forms_common.py:211 forms_common.py:325 forms_common.py:449 models.py:1966
+#: models.py:2258 models.py:2643 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,7 +277,7 @@ msgstr "Téléphone portable"
msgid "Type"
msgstr "Type"
-#: forms_common.py:220 views.py:137
+#: forms_common.py:220 views.py:139
msgid "Organization search"
msgstr "Recherche d'organisations"
@@ -293,12 +293,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:2310
+#: forms_common.py:323 forms_common.py:374 forms_common.py:447 models.py:2345
#: templates/ishtar/sheet_organization.html:22
msgid "Surname"
msgstr "Prénom"
-#: forms_common.py:339 forms_common.py:434 views.py:102
+#: forms_common.py:339 forms_common.py:434 views.py:104
msgid "Person search"
msgstr "Recherche de personnes"
@@ -311,25 +311,25 @@ msgstr "Personne à fusionner"
msgid "Identity"
msgstr "Identité"
-#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1908
-#: models.py:2304 models.py:2306 models.py:2576 templates/sheet_ope.html:104
+#: forms_common.py:371 forms_common.py:773 forms_common.py:822 models.py:1939
+#: models.py:2339 models.py:2341 models.py:2640 templates/sheet_ope.html:104
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Title"
msgstr "Titre"
-#: forms_common.py:372 models.py:2308
+#: forms_common.py:372 models.py:2343
msgid "Salutation"
msgstr "Formule d'appel"
-#: forms_common.py:378 models.py:2314
+#: forms_common.py:378 models.py:2349
msgid "Raw name"
msgstr "Nom brut"
-#: forms_common.py:381 models.py:1358
+#: forms_common.py:381 models.py:1387
msgid "Phone description"
msgstr "Type de téléphone"
-#: forms_common.py:384 models.py:1360 models.py:1362
+#: forms_common.py:384 models.py:1389 models.py:1391
msgid "Phone description 2"
msgstr "Type de téléphone 2"
@@ -337,11 +337,11 @@ msgstr "Type de téléphone 2"
msgid "Phone 2"
msgstr "Téléphone 2"
-#: forms_common.py:388 models.py:1366
+#: forms_common.py:388 models.py:1395
msgid "Phone description 3"
msgstr "Type de téléphone 3"
-#: forms_common.py:390 models.py:1364
+#: forms_common.py:390 models.py:1393
msgid "Phone 3"
msgstr "Téléphone 3"
@@ -349,23 +349,23 @@ msgstr "Téléphone 3"
msgid "Current organization"
msgstr "Organisation actuelle"
-#: forms_common.py:409 models.py:1347
+#: forms_common.py:409 models.py:1376
msgid "Other address: address"
msgstr "Autre adresse : adresse"
-#: forms_common.py:412 models.py:1350
+#: forms_common.py:412 models.py:1379
msgid "Other address: address complement"
msgstr "Autre adresse : complément d'adresse"
-#: forms_common.py:414 models.py:1351
+#: forms_common.py:414 models.py:1380
msgid "Other address: postal code"
msgstr "Autre adresse : code postal"
-#: forms_common.py:416 models.py:1353
+#: forms_common.py:416 models.py:1382
msgid "Other address: town"
msgstr "Autre adresse : ville"
-#: forms_common.py:418 models.py:1355
+#: forms_common.py:418 models.py:1384
msgid "Other address: country"
msgstr "Autre adresse : pays"
@@ -381,7 +381,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:2279
+#: forms_common.py:510 forms_common.py:550 forms_common.py:554 models.py:2310
msgid "Person type"
msgstr "Type de personne"
@@ -413,7 +413,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:2659
+#: forms_common.py:628 forms_common.py:641 models.py:2723
msgid "Towns"
msgstr "Communes"
@@ -429,7 +429,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:1909 models.py:2559
+#: forms_common.py:775 forms_common.py:823 models.py:1940 models.py:2617
msgid "Source type"
msgstr "Type de document"
@@ -441,37 +441,37 @@ msgstr "Référence"
msgid "Internal reference"
msgstr "Référence interne"
-#: forms_common.py:783 models.py:2590
+#: forms_common.py:783 models.py:2654
msgid "Numerical ressource (web address)"
msgstr "Ressource numérique (adresse web)"
-#: forms_common.py:784 models.py:2592
+#: forms_common.py:784 models.py:2656
msgid "Receipt date"
msgstr "Date de réception"
-#: forms_common.py:786 models.py:2062 models.py:2594
+#: forms_common.py:786 models.py:2093 models.py:2658
msgid "Creation date"
msgstr "Date de création"
-#: forms_common.py:789 models.py:2597
+#: forms_common.py:789 models.py:2661
msgid "Receipt date in documentation"
msgstr "Date de réception en documentation"
-#: forms_common.py:791 forms_common.py:827 models.py:289 models.py:548
-#: models.py:1803 models.py:2318 models.py:2604
+#: forms_common.py:791 forms_common.py:827 models.py:317 models.py:577
+#: models.py:1834 models.py:2353 models.py:2668
msgid "Comment"
msgstr "Commentaire"
-#: forms_common.py:793 forms_common.py:826 models.py:947 models.py:1562
-#: models.py:1735 models.py:1777 models.py:2603 templates/sheet_ope.html:128
+#: forms_common.py:793 forms_common.py:826 models.py:976 models.py:1593
+#: models.py:1766 models.py:1808 models.py:2667 templates/sheet_ope.html:128
msgid "Description"
msgstr "Description"
-#: forms_common.py:796 models.py:2605
+#: forms_common.py:796 models.py:2669
msgid "Additional information"
msgstr "Informations supplémentaires"
-#: forms_common.py:798 forms_common.py:830 models.py:2607
+#: forms_common.py:798 forms_common.py:830 models.py:2671
msgid "Has a duplicate"
msgstr "Existe en doublon"
@@ -488,7 +488,7 @@ msgstr ""
"<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "
"ratio est conservé).</p>"
-#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2543
+#: forms_common.py:819 forms_common.py:848 forms_common.py:882 models.py:2597
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr "Auteur"
@@ -501,7 +501,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:1910 models.py:2533 models.py:2540
+#: forms_common.py:856 models.py:1941 models.py:2585 models.py:2594
msgid "Author type"
msgstr "Type d'auteur"
@@ -513,7 +513,7 @@ msgstr "Sélection d'auteur"
msgid "There are identical authors."
msgstr "Il y a des auteurs identiques."
-#: forms_common.py:893 models.py:2544 models.py:2586
+#: forms_common.py:893 models.py:2598 models.py:2650
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:9
msgid "Authors"
@@ -531,7 +531,7 @@ msgstr "Ajouter/Modifier"
msgid "Deletion"
msgstr "Suppression"
-#: ishtar_menu.py:39 models.py:1073 views.py:1377
+#: ishtar_menu.py:39 models.py:1102 views.py:1450
msgid "Global variables"
msgstr "Variables globales"
@@ -559,20 +559,20 @@ msgstr "Fusion automatique"
msgid "Manual merge"
msgstr "Fusion manuelle"
-#: ishtar_menu.py:70 ishtar_menu.py:101 models.py:2099 widgets.py:110
+#: ishtar_menu.py:70 ishtar_menu.py:101 models.py:2130 widgets.py:110
#: templates/ishtar/form_delete.html:11
msgid "Delete"
msgstr "Suppression"
-#: ishtar_menu.py:109 models.py:2073
+#: ishtar_menu.py:109 models.py:2104
msgid "Imports"
msgstr "Imports"
-#: ishtar_menu.py:112 views.py:1385
+#: ishtar_menu.py:112 views.py:1458
msgid "New import"
msgstr "Nouvel import"
-#: ishtar_menu.py:116 views.py:1399
+#: ishtar_menu.py:116 views.py:1472
msgid "Current imports"
msgstr "Imports en cours"
@@ -592,91 +592,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:285 models.py:547 models.py:1312 models.py:1324
+#: models.py:313 models.py:576 models.py:1341 models.py:1353
msgid "Label"
msgstr "Libellé"
-#: models.py:287
+#: models.py:315
msgid "Textual ID"
msgstr "Identifiant textuel"
-#: models.py:290 models.py:550 models.py:1281
+#: models.py:318 models.py:579 models.py:1310
msgid "Available"
msgstr "Disponible"
-#: models.py:569 models.py:1849
+#: models.py:598 models.py:1880
msgid "Key"
msgstr "Clé"
-#: models.py:575
+#: models.py:604
msgid "Specific key to an import"
msgstr "Clé spécifique à un import"
-#: models.py:666
+#: models.py:695
msgid "Last editor"
msgstr "Dernier éditeur"
-#: models.py:669
+#: models.py:698
msgid "Creator"
msgstr "Créateur"
-#: models.py:809 models.py:2670
+#: models.py:838 models.py:2734
msgid "Order"
msgstr "Ordre"
-#: models.py:810
+#: models.py:839
msgid "Symmetrical"
msgstr "Symétrique"
-#: models.py:811
+#: models.py:840
msgid "Tiny label"
msgstr "Petit libellé"
-#: models.py:825
+#: models.py:854
msgid "Cannot have symmetrical and an inverse_relation"
msgstr "Ne peut pas être symétrique et avoir une relation inverse"
-#: models.py:939
+#: models.py:968
msgid "Euro"
msgstr "Euro"
-#: models.py:940
+#: models.py:969
msgid "US dollar"
msgstr "Dollars US"
-#: models.py:946 models.py:1560
+#: models.py:975 models.py:1591
msgid "Slug"
msgstr "Identifiant texte"
-#: models.py:948
+#: models.py:977
msgid "Files module"
msgstr "Module Dossiers"
-#: models.py:949
+#: models.py:978
msgid "Context records module"
msgstr "Module Unités d'Enregistrement"
-#: models.py:951
+#: models.py:980
msgid "Finds module"
msgstr "Module Mobilier"
-#: models.py:952
+#: models.py:981
msgid "Need context records module"
msgstr "Nécessite le module Unités d'Enregistrement"
-#: models.py:954
+#: models.py:983
msgid "Warehouses module"
msgstr "Module Dépôts"
-#: models.py:955
+#: models.py:984
msgid "Need finds module"
msgstr "Nécessite le module mobilier"
-#: models.py:957
+#: models.py:986
msgid "Home page"
msgstr "Page d'accueil"
-#: models.py:958
+#: models.py:987
#, python-brace-format
msgid ""
"Homepage of Ishtar - if not defined a default homepage will appear. Use the "
@@ -686,22 +686,22 @@ msgstr ""
"défaut va apparaître. Utiliser la syntaxe Markdown. {random_image} peut être "
"utilisé pour afficher une image au hasard."
-#: models.py:962
+#: models.py:991
msgid "File external id"
msgstr "Identifiant externe de fichier"
-#: models.py:964
+#: models.py:993
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:969
+#: models.py:998
msgid "Parcel external id"
msgstr "Identifiant externe de parcelle"
-#: models.py:972
+#: models.py:1001
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 +711,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:977
+#: models.py:1006
msgid "Context record external id"
msgstr "Identifiant externe d'unité d'enregistrement"
-#: models.py:979
+#: models.py:1008
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 +725,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:984
+#: models.py:1013
msgid "Base find external id"
msgstr "Identifiant externe de mobilier de base"
-#: models.py:986
+#: models.py:1015
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 +739,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:991
+#: models.py:1020
msgid "Find external id"
msgstr "Identifiant externe de mobilier"
-#: models.py:993
+#: models.py:1022
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 +753,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:998
+#: models.py:1027
msgid "Raw name for person"
msgstr "Nom brut pour une personne"
-#: models.py:1000
+#: models.py:1029
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 +767,43 @@ msgstr ""
"Une formule incorrecte peut rendre l'application inutilisable et l'import de "
"données externes peut alors être destructif."
-#: models.py:1004
+#: models.py:1033
msgid "Current active"
msgstr "Actuellement utilisé"
-#: models.py:1005
+#: models.py:1034
msgid "Currency"
msgstr "Devise"
-#: models.py:1009
+#: models.py:1038
msgid "Ishtar site profile"
msgstr "Profil d'instance Ishtar"
-#: models.py:1010
+#: models.py:1039
msgid "Ishtar site profiles"
msgstr "Profils d'instance Ishtar"
-#: models.py:1066
+#: models.py:1095
msgid "Variable name"
msgstr "Nom de la variable"
-#: models.py:1067
+#: models.py:1096
msgid "Description of the variable"
msgstr "Description de la variable"
-#: models.py:1069 models.py:1850
+#: models.py:1098 models.py:1881
msgid "Value"
msgstr "Valeur"
-#: models.py:1072
+#: models.py:1101
msgid "Global variable"
msgstr "Variable globale"
-#: models.py:1182 models.py:1212
+#: models.py:1211 models.py:1241
msgid "Total"
msgstr "Total"
-#: models.py:1189 models.py:1313 models.py:1325
+#: models.py:1218 models.py:1342 models.py:1354
#: templates/ishtar/sheet_person.html:22
#: templates/ishtar/dashboards/dashboard_main_detail.html:141
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
@@ -811,688 +811,692 @@ msgstr "Total"
msgid "Number"
msgstr "Nombre"
-#: models.py:1276
+#: models.py:1305
msgid "Administrative Act"
msgstr "Acte administratif"
-#: models.py:1280
+#: models.py:1309
msgid "Associated object"
msgstr "Objet associé"
-#: models.py:1284
+#: models.py:1313
msgid "Document template"
msgstr "Patron de document"
-#: models.py:1285
+#: models.py:1314
msgid "Document templates"
msgstr "Patrons de documents"
-#: models.py:1316 models.py:1326 models.py:2057
+#: models.py:1345 models.py:1355 models.py:2088
msgid "State"
msgstr "État"
-#: models.py:1330 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1359 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr "Département"
-#: models.py:1331
+#: models.py:1360
msgid "Departments"
msgstr "Départements"
-#: models.py:1368
+#: models.py:1397
msgid "Raw phone"
msgstr "Téléphone brut"
-#: models.py:1374
+#: models.py:1403
msgid "Alternative address is prefered"
msgstr "L'adresse alternative est préférée"
-#: models.py:1413
+#: models.py:1442
msgid "Tel: "
msgstr "Tél :"
-#: models.py:1417
+#: models.py:1446
msgid "Mobile: "
msgstr "Mobile :"
-#: models.py:1421
+#: models.py:1450
msgid "Email: "
msgstr "Courriel :"
-#: models.py:1426
+#: models.py:1455
msgid "Merge key"
msgstr "Clé de fusion"
-#: models.py:1500
+#: models.py:1529
msgid "Organization types"
msgstr "Types d'organisation"
-#: models.py:1514 views.py:211
+#: models.py:1545 views.py:234
msgid "Operation"
msgstr "Opération"
-#: models.py:1516
+#: models.py:1547
msgid "Archaeological site"
msgstr "Entité Archéologique"
-#: models.py:1517
+#: models.py:1548
msgid "Parcels"
msgstr "Parcelles"
-#: models.py:1519
+#: models.py:1550
msgid "Operation source"
msgstr "Documentation de l'opération"
-#: models.py:1522 views.py:1192 views.py:1243
+#: models.py:1553 views.py:1265 views.py:1316
msgid "Archaeological files"
msgstr "Dossiers archéologiques"
-#: models.py:1524 views.py:1195 views.py:1251
+#: models.py:1555 views.py:1268 views.py:1324
msgid "Context records"
msgstr "Unités d'Enregistrement"
-#: models.py:1526
+#: models.py:1557
msgid "Context record relations"
msgstr "Relations entre Unités d'Enregistrement"
-#: models.py:1528 views.py:1197 views.py:1254
+#: models.py:1559 views.py:1270 views.py:1327
msgid "Finds"
msgstr "Mobilier"
-#: models.py:1564 templates/ishtar/dashboards/dashboard_main.html:25
+#: models.py:1595 templates/ishtar/dashboards/dashboard_main.html:25
msgid "Users"
msgstr "Utilisateurs"
-#: models.py:1566
+#: models.py:1597
msgid "Associated model"
msgstr "Modèle associé"
-#: models.py:1569
+#: models.py:1600
msgid "Is template"
msgstr "Est un patron"
-#: models.py:1570
+#: models.py:1601
msgid "Unicity keys (separator \";\")"
msgstr "Clés d'unicité (séparateur « ; »)"
-#: models.py:1574
+#: models.py:1605
msgid "Importer - Type"
msgstr "Importeur - Type"
-#: models.py:1575
+#: models.py:1606
msgid "Importer - Types"
msgstr "Importeur - Types"
-#: models.py:1665
+#: models.py:1696
msgid "Importer - Default"
msgstr "Importeur - Par défaut"
-#: models.py:1666
+#: models.py:1697
msgid "Importer - Defaults"
msgstr "Importeur - Par défaut"
-#: models.py:1701
+#: models.py:1732
msgid "Importer - Default value"
msgstr "Importeur - Valeur par défaut"
-#: models.py:1702
+#: models.py:1733
msgid "Importer - Default values"
msgstr "Importeur - Valeurs par défaut"
-#: models.py:1734
+#: models.py:1765
msgid "Column number"
msgstr "Numéro de colonne"
-#: models.py:1737
+#: models.py:1768
msgid "Required"
msgstr "Requis"
-#: models.py:1740
+#: models.py:1771
msgid "Importer - Column"
msgstr "Importeur - Colonne"
-#: models.py:1741
+#: models.py:1772
msgid "Importer - Columns"
msgstr "Importeur - Colonnes"
-#: models.py:1761
+#: models.py:1792
msgid "Field name"
msgstr "Nom du champ"
-#: models.py:1763 models.py:1797
+#: models.py:1794 models.py:1828
msgid "Force creation of new items"
msgstr "Forcer la création de nouveaux éléments"
-#: models.py:1765 models.py:1799
+#: models.py:1796 models.py:1830
msgid "Concatenate with existing"
msgstr "Concaténer avec l'existant"
-#: models.py:1767 models.py:1801
+#: models.py:1798 models.py:1832
msgid "Concatenate character"
msgstr "Caractère de concaténation"
-#: models.py:1771
+#: models.py:1802
msgid "Importer - Duplicate field"
msgstr "Importeur - Champ dupliqué"
-#: models.py:1772
+#: models.py:1803
msgid "Importer - Duplicate fields"
msgstr "Importeur - Champs dupliqués"
-#: models.py:1779
+#: models.py:1810
msgid "Regular expression"
msgstr "Expression régulière"
-#: models.py:1782
+#: models.py:1813
msgid "Importer - Regular expression"
msgstr "Importeur - Expression régulière"
-#: models.py:1783
+#: models.py:1814
msgid "Importer - Regular expressions"
msgstr "Importeur - Expressions régulières"
-#: models.py:1806
+#: models.py:1837
msgid "Importer - Target"
msgstr "Importeur - Cible"
-#: models.py:1807
+#: models.py:1838
msgid "Importer - Targets"
msgstr "Importeur - Cibles"
-#: models.py:1831 views.py:476
+#: models.py:1862 views.py:518
msgid "True"
msgstr "Oui"
-#: models.py:1832 views.py:478
+#: models.py:1863 views.py:520
msgid "False"
msgstr "Non"
-#: models.py:1851
+#: models.py:1882
msgid "Is set"
msgstr "Est défini"
-#: models.py:1858
+#: models.py:1889
msgid "Importer - Target key"
msgstr "Importeur - Rapprochement"
-#: models.py:1859
+#: models.py:1890
msgid "Importer - Targets keys"
msgstr "Importeur - Rapprochements"
-#: models.py:1911 models.py:2571 models.py:2582
+#: models.py:1942 models.py:2633 models.py:2646
msgid "Format"
msgstr "Format"
-#: models.py:1912 models.py:2674
+#: models.py:1943 models.py:2738
msgid "Operation type"
msgstr "Type d'opération"
-#: models.py:1913
+#: models.py:1944
msgid "Period"
msgstr "Périodes"
-#: models.py:1914
+#: models.py:1945
msgid "Report state"
msgstr "État de rapport"
-#: models.py:1915
+#: models.py:1946
msgid "Unit"
msgstr "Unité"
-#: models.py:1916
+#: models.py:1947
msgid "Material"
msgstr "Matériau"
-#: models.py:1918
+#: models.py:1949
msgid "Conservatory state"
msgstr "État de conservation"
-#: models.py:1919
+#: models.py:1950
msgid "Preservation type"
msgstr "Type de conservation"
-#: models.py:1920
+#: models.py:1951
msgid "Object type"
msgstr "Type d'objet"
-#: models.py:1922
+#: models.py:1953
msgid "Identification type"
msgstr "Type d'identification"
-#: models.py:1924
+#: models.py:1955
msgid "Context record relation type"
msgstr "Type de relations entre Unités d'Enregistrement"
-#: models.py:1925 models.py:2565
+#: models.py:1956 models.py:2625
msgid "Support type"
msgstr "Type de support"
-#: models.py:1931
+#: models.py:1962
msgid "Integer"
msgstr "Entier"
-#: models.py:1932
+#: models.py:1963
msgid "Float"
msgstr "Nombre à virgule"
-#: models.py:1933
+#: models.py:1964
msgid "String"
msgstr "Chaîne de caractères"
-#: models.py:1934 templates/sheet_ope.html:86
+#: models.py:1965 templates/sheet_ope.html:86
msgid "Date"
msgstr "Date"
-#: models.py:1936 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:1967 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:1937
+#: models.py:1968
msgid "String to boolean"
msgstr "Chaîne de caractères vers booléen"
-#: models.py:1938
+#: models.py:1969
msgctxt "filesystem"
msgid "File"
msgstr "Fichier"
-#: models.py:1939
+#: models.py:1970
msgid "Unknow type"
msgstr "Type inconnu"
-#: models.py:1955
+#: models.py:1986
msgid "4 digit year. e.g.: \"2015\""
msgstr "Année sur 4 chiffres. Exemple : « 2015 »"
-#: models.py:1956
+#: models.py:1987
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:1957
+#: models.py:1988
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:1967
+#: models.py:1998
msgid "Options"
msgstr "Options"
-#: models.py:1969
+#: models.py:2000
msgid "Split character(s)"
msgstr "Caractère(s) de séparation"
-#: models.py:1973
+#: models.py:2004
msgid "Importer - Formater type"
msgstr "Importeur - Type de mise en forme"
-#: models.py:1974
+#: models.py:2005
msgid "Importer - Formater types"
msgstr "Importeur - Types de mise en forme"
-#: models.py:2021 templates/ishtar/dashboards/dashboard_main_detail.html:63
+#: models.py:2052 templates/ishtar/dashboards/dashboard_main_detail.html:63
msgid "Created"
msgstr "Créé"
-#: models.py:2022
+#: models.py:2053
msgid "Analyse in progress"
msgstr "Analyse en cours"
-#: models.py:2023
+#: models.py:2054
msgid "Analysed"
msgstr "Analysé"
-#: models.py:2024
+#: models.py:2055
msgid "Import pending"
msgstr "Import en attente"
-#: models.py:2025
+#: models.py:2056
msgid "Import in progress"
msgstr "Import en cours"
-#: models.py:2026
+#: models.py:2057
msgid "Finished with errors"
msgstr "Terminé avec des erreurs"
-#: models.py:2027
+#: models.py:2058
msgid "Finished"
msgstr "Terminé"
-#: models.py:2028
+#: models.py:2059
msgid "Archived"
msgstr "Archivé"
-#: models.py:2040
+#: models.py:2071
msgid "Imported file"
msgstr "Fichier importé"
-#: models.py:2043
+#: models.py:2074
msgid "Associated images (zip file)"
msgstr "Images associées (fichier zip)"
-#: models.py:2045
+#: models.py:2076
msgid "Encoding"
msgstr "Codage"
-#: models.py:2047
+#: models.py:2078
msgid "Skip lines"
msgstr "Nombre de lignes d'entête"
-#: models.py:2048 templates/ishtar/import_list.html:47
+#: models.py:2079 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr "Fichier erreur"
-#: models.py:2051
+#: models.py:2082
msgid "Result file"
msgstr "Fichier résultant"
-#: models.py:2054 templates/ishtar/import_list.html:53
+#: models.py:2085 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr "Fichier de correspondance"
-#: models.py:2060
+#: models.py:2091
msgid "Conservative import"
msgstr "Import conservateur"
-#: models.py:2065
+#: models.py:2096
msgid "End date"
msgstr "Date de fin"
-#: models.py:2067
+#: models.py:2098
msgid "Remaining seconds"
msgstr "Secondes restantes"
-#: models.py:2072
+#: models.py:2103
msgid "Import"
msgstr "Import"
-#: models.py:2089
+#: models.py:2120
msgid "Analyse"
msgstr "Analyser"
-#: models.py:2091 models.py:2094
+#: models.py:2122 models.py:2125
msgid "Re-analyse"
msgstr "Analyser de nouveau "
-#: models.py:2092
+#: models.py:2123
msgid "Launch import"
msgstr "Lancer l'import"
-#: models.py:2095
+#: models.py:2126
msgid "Re-import"
msgstr "Ré-importer"
-#: models.py:2096
+#: models.py:2127
msgid "Archive"
msgstr "Archiver"
-#: models.py:2098
+#: models.py:2129
msgid "Unarchive"
msgstr "Désarchiver"
-#: models.py:2232
+#: models.py:2263
msgid "Organizations"
msgstr "Organisations"
-#: models.py:2234
+#: models.py:2265
msgid "Can view all Organizations"
msgstr "Peut voir toutes les Organisations"
-#: models.py:2235
+#: models.py:2266
msgid "Can view own Organization"
msgstr "Peut voir sa propre Organisation"
-#: models.py:2236
+#: models.py:2267
msgid "Can add own Organization"
msgstr "Peut ajouter sa propre Organisation"
-#: models.py:2238
+#: models.py:2269
msgid "Can change own Organization"
msgstr "Peut modifier sa propre Organisation"
-#: models.py:2240
+#: models.py:2271
msgid "Can delete own Organization"
msgstr "Peut supprimer sa propre Organisation"
-#: models.py:2275
+#: models.py:2306
msgid "Groups"
msgstr "Groupes"
-#: models.py:2280
+#: models.py:2311
msgid "Person types"
msgstr "Types de personne"
-#: models.py:2286
+#: models.py:2319
msgid "Title type"
msgstr "Type de titre"
-#: models.py:2287
+#: models.py:2320
msgid "Title types"
msgstr "Types de titre"
-#: models.py:2294
+#: models.py:2329
msgid "Mr"
msgstr "M."
-#: models.py:2295
+#: models.py:2330
msgid "Miss"
msgstr "Mlle"
-#: models.py:2296
+#: models.py:2331
msgid "Mr and Mrs"
msgstr "M. et Mme"
-#: models.py:2297
+#: models.py:2332
msgid "Mrs"
msgstr "Mme"
-#: models.py:2298
+#: models.py:2333
msgid "Doctor"
msgstr "Dr."
-#: models.py:2316
+#: models.py:2351
msgid "Contact type"
msgstr "Type de contact"
-#: models.py:2319 models.py:2368
+#: models.py:2354 models.py:2418
msgid "Types"
msgstr "Types"
-#: models.py:2322
+#: models.py:2357
msgid "Is attached to"
msgstr "Est rattaché à"
-#: models.py:2327
+#: models.py:2362
msgid "Persons"
msgstr "Personnes"
-#: models.py:2329
+#: models.py:2364
msgid "Can view all Persons"
msgstr "Peut voir toutes les Personnes"
-#: models.py:2330
+#: models.py:2365
msgid "Can view own Person"
msgstr "Peut voir sa propre Personne"
-#: models.py:2331
+#: models.py:2366
msgid "Can add own Person"
msgstr "Peut ajouter sa propre Personne"
-#: models.py:2332
+#: models.py:2367
msgid "Can change own Person"
msgstr "Peut modifier sa propre Personne"
-#: models.py:2333
+#: models.py:2368
msgid "Can delete own Person"
msgstr "Peut supprimer sa propre Personne"
-#: models.py:2484
+#: models.py:2533
+msgid "Advanced shortcut menu"
+msgstr "Menu de raccourci (avancé)"
+
+#: models.py:2536
msgid "Ishtar user"
msgstr "Utilisateur d'Ishtar"
-#: models.py:2485
+#: models.py:2537
msgid "Ishtar users"
msgstr "Utilisateurs d'Ishtar"
-#: models.py:2528
+#: models.py:2580
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:2534
+#: models.py:2586
msgid "Author types"
msgstr "Types d'auteur"
-#: models.py:2560
+#: models.py:2618
msgid "Source types"
msgstr "Types de document"
-#: models.py:2566
+#: models.py:2626
msgid "Support types"
msgstr "Types de support"
-#: models.py:2572
+#: models.py:2634
msgid "Formats"
msgstr "Formats"
-#: models.py:2577
+#: models.py:2641
msgid "External ID"
msgstr "Identifiant externe"
-#: models.py:2580
+#: models.py:2644
msgid "Support"
msgstr "Support"
-#: models.py:2584
+#: models.py:2648
msgid "Scale"
msgstr "Échelle"
-#: models.py:2598
+#: models.py:2662
msgid "Item number"
msgstr "Numéro d'élément"
-#: models.py:2599
+#: models.py:2663
msgid "Ref."
msgstr "Réf."
-#: models.py:2602
+#: models.py:2666
msgid "Internal ref."
msgstr "Réf. interne"
-#: models.py:2645
+#: models.py:2709
msgid "Surface (m2)"
msgstr "Surface (m2)"
-#: models.py:2646 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2710 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr "Localisation"
-#: models.py:2671
+#: models.py:2735
msgid "Is preventive"
msgstr "Est du préventif"
-#: models.py:2675
+#: models.py:2739
msgid "Operation types"
msgstr "Types d'opération"
-#: models.py:2704
+#: models.py:2768
msgid "Preventive"
msgstr "Préventif"
-#: models.py:2705
+#: models.py:2769
msgid "Research"
msgstr "Programmé"
-#: utils.py:56
+#: utils.py:64
msgid " (...)"
msgstr " (...)"
-#: utils.py:89
+#: utils.py:97
msgid "Load another random image?"
msgstr "Charger une autre image au hasard ?"
-#: views.py:109
+#: views.py:111
msgid "New person"
msgstr "Nouvelle personne"
-#: views.py:117
+#: views.py:119
msgid "Person modification"
msgstr "Modification d'une personne"
-#: views.py:132
+#: views.py:134
msgid "Person deletion"
msgstr "Suppression de personne"
-#: views.py:143
+#: views.py:145
msgid "New organization"
msgstr "Nouvelle organisation"
-#: views.py:150
+#: views.py:152
msgid "Organization modification"
msgstr "Modification d'une organisation"
-#: views.py:166
+#: views.py:168
msgid "Organization deletion"
msgstr "Suppression d'une organisation"
-#: views.py:173
+#: views.py:175
msgid "Account management"
msgstr "Gestion des comptes"
-#: views.py:179
+#: views.py:181
msgid "Account deletion"
msgstr "Suppression de comptes"
-#: views.py:210
+#: views.py:233
msgid "Archaeological file"
msgstr "Dossier"
-#: views.py:213
+#: views.py:236
msgid "Context record"
msgstr "Unité d'Enregistrement"
-#: views.py:215
+#: views.py:238
msgid "Find"
msgstr "Mobilier"
-#: views.py:1105 views.py:1174
+#: views.py:1178 views.py:1247
msgid "Operation not permitted."
msgstr "Opération non permise."
-#: views.py:1107
+#: views.py:1180
#, python-format
msgid "New %s"
msgstr "Nouveau %s"
-#: views.py:1193 views.py:1247
+#: views.py:1266 views.py:1320
msgid "Operations"
msgstr "Opérations"
-#: views.py:1446 templates/ishtar/import_list.html:43
+#: views.py:1519 templates/ishtar/import_list.html:43
msgid "Link unmatched items"
msgstr "Associer les éléments non rapprochés"
-#: views.py:1461
+#: views.py:1534
msgid "Delete import"
msgstr "Suppression de l'import"
-#: views.py:1500
+#: views.py:1573
msgid "Merge persons"
msgstr "Fusionner des personnes"
-#: views.py:1524
+#: views.py:1597
msgid "Select the main person"
msgstr "Choisir la personne principale"
-#: views.py:1533
+#: views.py:1606
msgid "Merge organization"
msgstr "Fusionner des organisations"
-#: views.py:1543
+#: views.py:1616
msgid "Select the main organization"
msgstr "Sélectionner l'organisation principale"
-#: views.py:1583 views.py:1599
+#: views.py:1656 views.py:1672
msgid "Corporation manager"
msgstr "Représentant de la personne morale"
@@ -1560,28 +1564,38 @@ 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."
+
+#: templates/base.html:42
+msgid "Searches in the shortcut menu deals with only your items."
+msgstr ""
+"Les recherches dans le menu de raccourci ne concernent que vos éléments."
+
+#: templates/base.html:49
msgid "Logged in"
msgstr "Connecté"
-#: templates/base.html:42
+#: templates/base.html:50
msgid "Log out"
msgstr "Déconnexion"
-#: templates/base.html:43
+#: templates/base.html:51
msgid "Change password"
msgstr "Changement de mot de passe"
-#: templates/base.html:45 templates/registration/activate.html:10
+#: templates/base.html:53 templates/registration/activate.html:10
#: templates/registration/login.html:8 templates/registration/login.html:10
#: templates/registration/password_reset_complete.html:8
msgid "Log in"
msgstr "Connexion"
-#: templates/base.html:51
+#: templates/base.html:59
msgid "Lang"
msgstr "Langue"
-#: templates/base.html:51 templates/base.html.py:75 templates/welcome.html:8
+#: templates/base.html:59 templates/base.html.py:83 templates/welcome.html:8
#: templates/welcome.html.py:9 templates/welcome.html:10
#: templates/welcome.html.py:11 templates/ishtar/manage_basket.html:4
#: templates/ishtar/blocks/window_field.html:1
@@ -1591,23 +1605,23 @@ msgstr "Langue"
msgid ":"
msgstr " :"
-#: templates/base.html:73
+#: templates/base.html:81
msgid "Current items"
msgstr "Éléments courants"
-#: templates/base.html:107
+#: templates/base.html:115
msgid "Processing..."
msgstr "En traitement..."
-#: templates/base.html:108
+#: templates/base.html:116
msgid "This can be long."
msgstr "Cela peut être long."
-#: templates/base.html:109
+#: templates/base.html:117
msgid "Time to take a coffee?"
msgstr "Il est temps de prendre un café ?"
-#: templates/base.html:110
+#: templates/base.html:118
msgid "Time to take another coffee?"
msgstr "Pourquoi pas un autre café ?"
@@ -1883,7 +1897,7 @@ msgstr "tickets"
msgid "where the magic happens."
msgstr "c'est là que la magie opère."
-#: templates/window.html:38 templates/blocks/JQueryJqGrid.html:25
+#: templates/window.html:40 templates/blocks/JQueryJqGrid.html:25
#: templates/ishtar/manage_basket.html:9
msgid "Add"
msgstr "Ajout"
@@ -2164,7 +2178,32 @@ msgstr "Documents des Unités d'Enregistrement associées"
msgid "Documents associated to finds"
msgstr "Documents du mobilier associé"
-#: templates/ishtar/blocks/shortcut_menu.html:6
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:7
+#: templates/ishtar/blocks/shortcut_menu.html:7
+msgid ""
+"Simple menu limited to your own items. Be careful only the last 100 items "
+"are displayed."
+msgstr ""
+"Menu simple limité à vos propres éléments. Attention seuls les 100 derniers "
+"éléments sont affichés."
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:7
+#: templates/ishtar/blocks/shortcut_menu.html:7
+msgid "simple"
+msgstr "simple"
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:8
+#: templates/ishtar/blocks/shortcut_menu.html:8
+msgid "Advanced menu."
+msgstr "Menu avancé."
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:8
+#: templates/ishtar/blocks/shortcut_menu.html:8
+msgid "advanced"
+msgstr "avancé"
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:11
+#: templates/ishtar/blocks/shortcut_menu.html:10
msgid ""
"Pin an item in order to constrain default searches with this item. By "
"default only your items are displayed. New created and modified items are "
@@ -2174,7 +2213,20 @@ msgstr ""
"élément. Par défaut seuls ses propres éléments sont listés. Les nouveaux "
"éléments, ceux modifiés sont auto-épinglés."
-#: templates/ishtar/blocks/shortcut_menu.html:18
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:13
+msgid "Search within my items"
+msgstr "Rechercher parmi mes éléments"
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:14
+msgid "Search within all items"
+msgstr "Rechercher parmi tous les éléments"
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:17
+msgid "Refresh menu"
+msgstr "Rafraîchir le menu"
+
+#: templates/ishtar/blocks/advanced_shortcut_menu.html:28
+#: templates/ishtar/blocks/shortcut_menu.html:22
msgid "Unpin"
msgstr "Détacher"
diff --git a/version.py b/version.py
index 0138ede37..cd8064223 100644
--- a/version.py
+++ b/version.py
@@ -1,4 +1,4 @@
-VERSION = (0, 98, 5)
+VERSION = (0, 98, 6)
def get_version():