summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-06-08 18:30:15 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-06-08 18:30:15 +0200
commit8486380780073057736944ac6e6ef0aca9a52eec (patch)
tree83ab0b4fd2b1356f1e03d72f9562e730efcca165 /ishtar_common
parentbbed42d3287dcbb47fadf1ed926dfdfe5fb3d93f (diff)
parent3714f0d1f3e8610d1fa789c8ea33e7fc9f773f25 (diff)
downloadIshtar-8486380780073057736944ac6e6ef0aca9a52eec.tar.bz2
Ishtar-8486380780073057736944ac6e6ef0aca9a52eec.zip
Merge branch 'master' into v0.9
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/locale/django.pot629
-rw-r--r--ishtar_common/migrations/0051_auto__add_field_ishtarsiteprofile_homepage.py404
-rw-r--r--ishtar_common/models.py46
-rw-r--r--ishtar_common/static/js/grid.tbltogrid.js106
-rw-r--r--ishtar_common/static/media/style.css41
-rw-r--r--ishtar_common/static/media/style_basic.css4
-rw-r--r--ishtar_common/templates/base.html3
-rw-r--r--ishtar_common/templates/index.html1
-rw-r--r--ishtar_common/templates/ishtar/blocks/window_field.html6
-rw-r--r--ishtar_common/templates/ishtar/blocks/window_field_detail.html3
-rw-r--r--ishtar_common/templates/ishtar/blocks/window_field_multiple.html6
-rw-r--r--ishtar_common/templates/ishtar/blocks/window_field_url.html6
-rw-r--r--ishtar_common/templates/ishtar/sheet_toolbar.html2
-rw-r--r--ishtar_common/templates/welcome.html11
-rw-r--r--ishtar_common/templatetags/link_to_window.py8
-rw-r--r--ishtar_common/templatetags/window_field.py39
-rw-r--r--ishtar_common/views.py8
17 files changed, 1001 insertions, 322 deletions
diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot
index 303c03ace..b3ceeddda 100644
--- a/ishtar_common/locale/django.pot
+++ b/ishtar_common/locale/django.pot
@@ -24,7 +24,7 @@ msgstr ""
msgid "Archaeological file"
msgstr ""
-#: context_processors.py:38 models.py:1281
+#: context_processors.py:38 models.py:1322
msgid "Operation"
msgstr ""
@@ -171,12 +171,12 @@ msgstr ""
msgid "Add a new item"
msgstr ""
-#: forms.py:171 models.py:1058
+#: forms.py:174 models.py:1099
msgid "Template"
msgstr ""
#: forms_common.py:39 forms_common.py:57 forms_common.py:169
-#: forms_common.py:289 models.py:1124 models.py:2377
+#: forms_common.py:289 models.py:1165 models.py:2420
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:17
msgid "Town"
@@ -192,110 +192,110 @@ msgid ""
"french town Saint-Denis in the Seine-Saint-Denis department.</p>"
msgstr ""
-#: forms_common.py:66 forms_common.py:669 ishtar_menu.py:42 models.py:1279
-#: models.py:2076 models.py:2205 models.py:2259
-#: templates/ishtar/sheet_person.html:6
+#: forms_common.py:66 forms_common.py:669 ishtar_menu.py:42 models.py:1320
+#: models.py:2119 models.py:2248 models.py:2302
+#: templates/ishtar/sheet_person.html:4
msgid "Person"
msgstr ""
-#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1280
-#: models.py:1995 templates/ishtar/sheet_organization.html:6
+#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1321
+#: models.py:2036 templates/ishtar/sheet_organization.html:6
msgid "Organization"
msgstr ""
#: forms_common.py:160 forms_common.py:196 forms_common.py:226
-#: forms_common.py:259 models.py:775 models.py:1057 models.py:1325
-#: models.py:1543 models.py:1989 models.py:2063 models.py:2363
+#: forms_common.py:259 models.py:812 models.py:1098 models.py:1366
+#: models.py:1584 models.py:2030 models.py:2106 models.py:2406
#: templates/ishtar/sheet_organization.html:12
#: templates/ishtar/sheet_organization.html:25
msgid "Name"
msgstr ""
-#: forms_common.py:161 models.py:1266 models.py:1674
+#: forms_common.py:161 models.py:1307 models.py:1715
msgid "Organization type"
msgstr ""
-#: forms_common.py:163 forms_common.py:283 models.py:1119
+#: forms_common.py:163 forms_common.py:283 models.py:1160
#: templates/ishtar/sheet_organization.html:14
msgid "Address"
msgstr ""
-#: forms_common.py:165 forms_common.py:286 models.py:1120
+#: forms_common.py:165 forms_common.py:286 models.py:1161
#: templates/ishtar/sheet_organization.html:15
msgid "Address complement"
msgstr ""
-#: forms_common.py:167 forms_common.py:287 models.py:1122
+#: forms_common.py:167 forms_common.py:287 models.py:1163
#: templates/ishtar/sheet_organization.html:16
msgid "Postal code"
msgstr ""
-#: forms_common.py:170 forms_common.py:290 models.py:1125
+#: forms_common.py:170 forms_common.py:290 models.py:1166
msgid "Country"
msgstr ""
#: forms_common.py:172 forms_common.py:228 forms_common.py:263
-#: forms_common.py:397 models.py:1152
+#: forms_common.py:397 models.py:1193
msgid "Email"
msgstr ""
-#: forms_common.py:173 forms_common.py:266 models.py:1137
+#: forms_common.py:173 forms_common.py:266 models.py:1178
#: templates/ishtar/sheet_organization.html:18
-#: templates/ishtar/sheet_person.html:23
+#: templates/ishtar/sheet_person.html:19
#: templates/ishtar/wizard/wizard_person.html:17
msgid "Phone"
msgstr ""
-#: forms_common.py:174 forms_common.py:275 models.py:1149
+#: forms_common.py:174 forms_common.py:275 models.py:1190
#: templates/ishtar/sheet_organization.html:19
-#: templates/ishtar/sheet_person.html:41
+#: templates/ishtar/sheet_person.html:37
#: templates/ishtar/wizard/wizard_person.html:35
msgid "Mobile phone"
msgstr ""
-#: forms_common.py:197 forms_common.py:229 models.py:1700 models.py:1991
-#: models.py:2300 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
+#: forms_common.py:197 forms_common.py:229 models.py:1741 models.py:2032
+#: models.py:2343 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
#: templates/sheet_ope.html:126 templates/ishtar/import_list.html:13
#: templates/ishtar/sheet_organization.html:27
-#: templates/ishtar/sheet_person.html:95
+#: templates/ishtar/sheet_person.html:91
#: templates/ishtar/blocks/window_tables/documents.html:6
msgid "Type"
msgstr ""
-#: forms_common.py:206 views.py:114
+#: forms_common.py:206 views.py:128
msgid "Organization search"
msgstr ""
-#: forms_common.py:227 forms_common.py:257 models.py:2061
+#: forms_common.py:227 forms_common.py:257 models.py:2104
#: templates/ishtar/sheet_organization.html:26
msgid "Surname"
msgstr ""
-#: forms_common.py:243 views.py:88
+#: forms_common.py:243 views.py:93
msgid "Person search"
msgstr ""
-#: forms_common.py:254 templates/ishtar/sheet_person.html:12
+#: forms_common.py:254 templates/ishtar/sheet_person.html:8
#: templates/ishtar/wizard/wizard_person.html:6
msgid "Identity"
msgstr ""
-#: forms_common.py:256 forms_common.py:595 forms_common.py:636 models.py:2059
-#: models.py:2297 templates/sheet_ope.html:104
-#: templates/ishtar/sheet_person.html:94
+#: forms_common.py:256 forms_common.py:595 forms_common.py:636 models.py:2102
+#: models.py:2340 templates/sheet_ope.html:104
+#: templates/ishtar/sheet_person.html:90
#: templates/ishtar/blocks/window_tables/documents.html:5
msgid "Title"
msgstr ""
-#: forms_common.py:261 models.py:2065
+#: forms_common.py:261 models.py:2108
msgid "Raw name"
msgstr ""
-#: forms_common.py:264 models.py:1138
+#: forms_common.py:264 models.py:1179
msgid "Phone description"
msgstr ""
-#: forms_common.py:267 models.py:1140 models.py:1142
+#: forms_common.py:267 models.py:1181 models.py:1183
msgid "Phone description 2"
msgstr ""
@@ -303,11 +303,11 @@ msgstr ""
msgid "Phone 2"
msgstr ""
-#: forms_common.py:271 models.py:1146
+#: forms_common.py:271 models.py:1187
msgid "Phone description 3"
msgstr ""
-#: forms_common.py:273 models.py:1144
+#: forms_common.py:273 models.py:1185
msgid "Phone 3"
msgstr ""
@@ -315,27 +315,27 @@ msgstr ""
msgid "Current organization"
msgstr ""
-#: forms_common.py:292 models.py:1127
+#: forms_common.py:292 models.py:1168
msgid "Other address: address"
msgstr ""
-#: forms_common.py:295 models.py:1130
+#: forms_common.py:295 models.py:1171
msgid "Other address: address complement"
msgstr ""
-#: forms_common.py:297 models.py:1131
+#: forms_common.py:297 models.py:1172
msgid "Other address: postal code"
msgstr ""
-#: forms_common.py:299 models.py:1133
+#: forms_common.py:299 models.py:1174
msgid "Other address: town"
msgstr ""
-#: forms_common.py:301 models.py:1135
+#: forms_common.py:301 models.py:1176
msgid "Other address: country"
msgstr ""
-#: forms_common.py:346 forms_common.py:376 forms_common.py:380 models.py:2043
+#: forms_common.py:346 forms_common.py:376 forms_common.py:380 models.py:2084
msgid "Person type"
msgstr ""
@@ -367,7 +367,7 @@ msgstr ""
msgid "Send the new password by email?"
msgstr ""
-#: forms_common.py:451 forms_common.py:464 models.py:2378
+#: forms_common.py:451 forms_common.py:464 models.py:2421
msgid "Towns"
msgstr ""
@@ -383,7 +383,7 @@ msgstr ""
msgid "Documentation informations"
msgstr ""
-#: forms_common.py:597 forms_common.py:637 models.py:1675 models.py:2280
+#: forms_common.py:597 forms_common.py:637 models.py:1716 models.py:2323
msgid "Source type"
msgstr ""
@@ -395,41 +395,41 @@ msgstr ""
msgid "Internal reference"
msgstr ""
-#: forms_common.py:605 models.py:2311
+#: forms_common.py:605 models.py:2354
msgid "Numerical ressource (web address)"
msgstr ""
-#: forms_common.py:606 models.py:2313
+#: forms_common.py:606 models.py:2356
msgid "Receipt date"
msgstr ""
-#: forms_common.py:608 models.py:1827 models.py:2315
+#: forms_common.py:608 models.py:1868 models.py:2358
msgid "Creation date"
msgstr ""
-#: forms_common.py:611 models.py:2318
+#: forms_common.py:611 models.py:2361
msgid "Receipt date in documentation"
msgstr ""
-#: forms_common.py:613 forms_common.py:641 models.py:277 models.py:1570
-#: models.py:2069 models.py:2325
+#: forms_common.py:613 forms_common.py:641 models.py:282 models.py:490
+#: models.py:1611 models.py:2112 models.py:2368
msgid "Comment"
msgstr ""
-#: forms_common.py:615 forms_common.py:640 models.py:777 models.py:1329
-#: models.py:1502 models.py:1544 models.py:2324 templates/sheet_ope.html:128
+#: forms_common.py:615 forms_common.py:640 models.py:814 models.py:1370
+#: models.py:1543 models.py:1585 models.py:2367 templates/sheet_ope.html:128
msgid "Description"
msgstr ""
-#: forms_common.py:618 models.py:2326
+#: forms_common.py:618 models.py:2369
msgid "Additional information"
msgstr ""
-#: forms_common.py:620 forms_common.py:644 models.py:2328
+#: forms_common.py:620 forms_common.py:644 models.py:2371
msgid "Has a duplicate"
msgstr ""
-#: forms_common.py:633 forms_common.py:662 forms_common.py:695 models.py:2264
+#: forms_common.py:633 forms_common.py:662 forms_common.py:695 models.py:2307
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr ""
@@ -442,7 +442,7 @@ msgstr ""
msgid "Would you like to delete this documentation?"
msgstr ""
-#: forms_common.py:670 models.py:1676 models.py:2254 models.py:2261
+#: forms_common.py:670 models.py:1717 models.py:2297 models.py:2304
msgid "Author type"
msgstr ""
@@ -454,7 +454,7 @@ msgstr ""
msgid "There are identical authors."
msgstr ""
-#: forms_common.py:706 models.py:2265 models.py:2307
+#: forms_common.py:706 models.py:2308 models.py:2350
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Authors"
@@ -464,11 +464,11 @@ msgstr ""
msgid "Administration"
msgstr ""
-#: ishtar_menu.py:31 views.py:140
+#: ishtar_menu.py:31 views.py:154
msgid "Account management"
msgstr ""
-#: ishtar_menu.py:34 models.py:853 views.py:1120
+#: ishtar_menu.py:34 models.py:894 views.py:1140
msgid "Global variables"
msgstr ""
@@ -492,19 +492,20 @@ msgstr ""
msgid "Merge"
msgstr ""
-#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1864 widgets.py:110
+#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1905 widgets.py:110
+#: templates/ishtar/form_delete.html:11
msgid "Delete"
msgstr ""
-#: ishtar_menu.py:96 models.py:1838
+#: ishtar_menu.py:96 models.py:1879
msgid "Imports"
msgstr ""
-#: ishtar_menu.py:99 views.py:1128
+#: ishtar_menu.py:99 views.py:1148
msgid "New import"
msgstr ""
-#: ishtar_menu.py:103 views.py:1142
+#: ishtar_menu.py:103 views.py:1162
msgid "Current imports"
msgstr ""
@@ -524,682 +525,692 @@ msgstr ""
msgid "This item already exists."
msgstr ""
-#: models.py:273 models.py:1092 models.py:1104
+#: models.py:278 models.py:489 models.py:1133 models.py:1145
msgid "Label"
msgstr ""
-#: models.py:275
+#: models.py:280
msgid "Textual ID"
msgstr ""
-#: models.py:278 models.py:1061
+#: models.py:283 models.py:492 models.py:1102
msgid "Available"
msgstr ""
-#: models.py:479 models.py:1616
+#: models.py:511 models.py:1657
msgid "Key"
msgstr ""
-#: models.py:485
+#: models.py:517
msgid "Specific key to an import"
msgstr ""
-#: models.py:556
+#: models.py:593
msgid "Last editor"
msgstr ""
-#: models.py:559
+#: models.py:596
msgid "Creator"
msgstr ""
-#: models.py:692 models.py:2389
+#: models.py:729 models.py:2432
msgid "Order"
msgstr ""
-#: models.py:693
+#: models.py:730
msgid "Symmetrical"
msgstr ""
-#: models.py:706
+#: models.py:743
msgid "Cannot have symmetrical and an inverse_relation"
msgstr ""
-#: models.py:776 models.py:1327
+#: models.py:813 models.py:1368
msgid "Slug"
msgstr ""
-#: models.py:778
+#: models.py:815
msgid "Files module"
msgstr ""
-#: models.py:779
+#: models.py:816
msgid "Context records module"
msgstr ""
-#: models.py:781
+#: models.py:818
msgid "Finds module"
msgstr ""
-#: models.py:782
+#: models.py:819
msgid "Need context records module"
msgstr ""
-#: models.py:784
+#: models.py:821
msgid "Warehouses module"
msgstr ""
-#: models.py:785
+#: models.py:822
msgid "Need finds module"
msgstr ""
-#: models.py:786
+#: models.py:824
+msgid "Home page"
+msgstr ""
+
+#: models.py:825
+msgid ""
+"Homepage of Ishtar - if not defined a default homepage will appear. Use the "
+"markdown syntax."
+msgstr ""
+
+#: models.py:827
msgid "Current active"
msgstr ""
-#: models.py:789
+#: models.py:830
msgid "Ishtar site profile"
msgstr ""
-#: models.py:790
+#: models.py:831
msgid "Ishtar site profiles"
msgstr ""
-#: models.py:846
+#: models.py:887
msgid "Variable name"
msgstr ""
-#: models.py:847
+#: models.py:888
msgid "Description of the variable"
msgstr ""
-#: models.py:849 models.py:1617
+#: models.py:890 models.py:1658
msgid "Value"
msgstr ""
-#: models.py:852
+#: models.py:893
msgid "Global variable"
msgstr ""
-#: models.py:962 models.py:992
+#: models.py:1003 models.py:1033
msgid "Total"
msgstr ""
-#: models.py:969 models.py:1093 models.py:1105
-#: templates/ishtar/sheet_person.html:26
+#: models.py:1010 models.py:1134 models.py:1146
+#: templates/ishtar/sheet_person.html:22
#: templates/ishtar/dashboards/dashboard_main_detail.html:135
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
#: templates/ishtar/wizard/wizard_person.html:20
msgid "Number"
msgstr ""
-#: models.py:1056
+#: models.py:1097
msgid "Administrative Act"
msgstr ""
-#: models.py:1060
+#: models.py:1101
msgid "Associated object"
msgstr ""
-#: models.py:1064
+#: models.py:1105
msgid "Document template"
msgstr ""
-#: models.py:1065
+#: models.py:1106
msgid "Document templates"
msgstr ""
-#: models.py:1096 models.py:1106 models.py:1822
+#: models.py:1137 models.py:1147 models.py:1863
msgid "State"
msgstr ""
-#: models.py:1110 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1151 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr ""
-#: models.py:1111
+#: models.py:1152
msgid "Departments"
msgstr ""
-#: models.py:1148
+#: models.py:1189
msgid "Raw phone"
msgstr ""
-#: models.py:1154
+#: models.py:1195
msgid "Alternative address is prefered"
msgstr ""
-#: models.py:1193
+#: models.py:1234
msgid "Tel: "
msgstr ""
-#: models.py:1197
+#: models.py:1238
msgid "Mobile: "
msgstr ""
-#: models.py:1201
+#: models.py:1242
msgid "Email: "
msgstr ""
-#: models.py:1206
+#: models.py:1247
msgid "Merge key"
msgstr ""
-#: models.py:1267
+#: models.py:1308
msgid "Organization types"
msgstr ""
-#: models.py:1283
+#: models.py:1324
msgid "Archaeological site"
msgstr ""
-#: models.py:1284
+#: models.py:1325
msgid "Parcels"
msgstr ""
-#: models.py:1286
+#: models.py:1327
msgid "Operation source"
msgstr ""
-#: models.py:1289 views.py:945 views.py:996
+#: models.py:1330 views.py:965 views.py:1016
msgid "Archaeological files"
msgstr ""
-#: models.py:1291 views.py:948 views.py:1004
+#: models.py:1332 views.py:968 views.py:1024
msgid "Context records"
msgstr ""
-#: models.py:1293
+#: models.py:1334
msgid "Context record relations"
msgstr ""
-#: models.py:1295 views.py:950 views.py:1007
+#: models.py:1336 views.py:970 views.py:1027
msgid "Finds"
msgstr ""
-#: models.py:1331 templates/ishtar/dashboards/dashboard_main.html:26
+#: models.py:1372 templates/ishtar/dashboards/dashboard_main.html:26
msgid "Users"
msgstr ""
-#: models.py:1333
+#: models.py:1374
msgid "Associated model"
msgstr ""
-#: models.py:1336
+#: models.py:1377
msgid "Is template"
msgstr ""
-#: models.py:1337
+#: models.py:1378
msgid "Unicity keys (separator \";\")"
msgstr ""
-#: models.py:1341
+#: models.py:1382
msgid "Importer - Type"
msgstr ""
-#: models.py:1342
+#: models.py:1383
msgid "Importer - Types"
msgstr ""
-#: models.py:1432
+#: models.py:1473
msgid "Importer - Default"
msgstr ""
-#: models.py:1433
+#: models.py:1474
msgid "Importer - Defaults"
msgstr ""
-#: models.py:1468
+#: models.py:1509
msgid "Importer - Default value"
msgstr ""
-#: models.py:1469
+#: models.py:1510
msgid "Importer - Default values"
msgstr ""
-#: models.py:1501
+#: models.py:1542
msgid "Column number"
msgstr ""
-#: models.py:1504
+#: models.py:1545
msgid "Required"
msgstr ""
-#: models.py:1507
+#: models.py:1548
msgid "Importer - Column"
msgstr ""
-#: models.py:1508
+#: models.py:1549
msgid "Importer - Columns"
msgstr ""
-#: models.py:1528
+#: models.py:1569
msgid "Field name"
msgstr ""
-#: models.py:1530 models.py:1564
+#: models.py:1571 models.py:1605
msgid "Force creation of new items"
msgstr ""
-#: models.py:1532 models.py:1566
+#: models.py:1573 models.py:1607
msgid "Concatenate with existing"
msgstr ""
-#: models.py:1534 models.py:1568
+#: models.py:1575 models.py:1609
msgid "Concatenate character"
msgstr ""
-#: models.py:1538
+#: models.py:1579
msgid "Importer - Duplicate field"
msgstr ""
-#: models.py:1539
+#: models.py:1580
msgid "Importer - Duplicate fields"
msgstr ""
-#: models.py:1546
+#: models.py:1587
msgid "Regular expression"
msgstr ""
-#: models.py:1549
+#: models.py:1590
msgid "Importer - Regular expression"
msgstr ""
-#: models.py:1550
+#: models.py:1591
msgid "Importer - Regular expressions"
msgstr ""
-#: models.py:1573
+#: models.py:1614
msgid "Importer - Target"
msgstr ""
-#: models.py:1574
+#: models.py:1615
msgid "Importer - Targets"
msgstr ""
-#: models.py:1598 views.py:311
+#: models.py:1639 views.py:325
msgid "True"
msgstr ""
-#: models.py:1599 views.py:313
+#: models.py:1640 views.py:327
msgid "False"
msgstr ""
-#: models.py:1618
+#: models.py:1659
msgid "Is set"
msgstr ""
-#: models.py:1625
+#: models.py:1666
msgid "Importer - Target key"
msgstr ""
-#: models.py:1626
+#: models.py:1667
msgid "Importer - Targets keys"
msgstr ""
-#: models.py:1677 models.py:2292 models.py:2303
+#: models.py:1718 models.py:2335 models.py:2346
msgid "Format"
msgstr ""
-#: models.py:1678 models.py:2393
+#: models.py:1719 models.py:2436
msgid "Operation type"
msgstr ""
-#: models.py:1679
+#: models.py:1720
msgid "Period"
msgstr ""
-#: models.py:1680
+#: models.py:1721
msgid "Unit"
msgstr ""
-#: models.py:1681
+#: models.py:1722
msgid "Material"
msgstr ""
-#: models.py:1683
+#: models.py:1724
msgid "Conservatory state"
msgstr ""
-#: models.py:1684
+#: models.py:1725
msgid "Preservation type"
msgstr ""
-#: models.py:1685
+#: models.py:1726
msgid "Object type"
msgstr ""
-#: models.py:1687
+#: models.py:1728
msgid "Identification type"
msgstr ""
-#: models.py:1689
+#: models.py:1730
msgid "Context record relation type"
msgstr ""
-#: models.py:1690 models.py:2286
+#: models.py:1731 models.py:2329
msgid "Support type"
msgstr ""
-#: models.py:1696
+#: models.py:1737
msgid "Integer"
msgstr ""
-#: models.py:1697
+#: models.py:1738
msgid "Float"
msgstr ""
-#: models.py:1698
+#: models.py:1739
msgid "String"
msgstr ""
-#: models.py:1699 templates/sheet_ope.html:86
+#: models.py:1740 templates/sheet_ope.html:86
msgid "Date"
msgstr ""
-#: models.py:1701 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
-#: templates/ishtar/sheet_person.html:93
+#: models.py:1742 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: templates/ishtar/sheet_person.html:89
#: templates/ishtar/dashboards/dashboard_main_detail.html:120
msgid "Year"
msgstr ""
-#: models.py:1702
+#: models.py:1743
msgid "String to boolean"
msgstr ""
-#: models.py:1703
+#: models.py:1744
msgctxt "filesystem"
msgid "File"
msgstr ""
-#: models.py:1704
+#: models.py:1745
msgid "Unknow type"
msgstr ""
-#: models.py:1720
+#: models.py:1761
msgid "4 digit year. e.g.: \"2015\""
msgstr ""
-#: models.py:1721
+#: models.py:1762
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr ""
-#: models.py:1722
+#: models.py:1763
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr ""
-#: models.py:1732
+#: models.py:1773
msgid "Options"
msgstr ""
-#: models.py:1734
+#: models.py:1775
msgid "Split character(s)"
msgstr ""
-#: models.py:1738
+#: models.py:1779
msgid "Importer - Formater type"
msgstr ""
-#: models.py:1739
+#: models.py:1780
msgid "Importer - Formater types"
msgstr ""
-#: models.py:1786 templates/ishtar/dashboards/dashboard_main_detail.html:61
+#: models.py:1827 templates/ishtar/dashboards/dashboard_main_detail.html:61
msgid "Created"
msgstr ""
-#: models.py:1787
+#: models.py:1828
msgid "Analyse in progress"
msgstr ""
-#: models.py:1788
+#: models.py:1829
msgid "Analysed"
msgstr ""
-#: models.py:1789
+#: models.py:1830
msgid "Import pending"
msgstr ""
-#: models.py:1790
+#: models.py:1831
msgid "Import in progress"
msgstr ""
-#: models.py:1791
+#: models.py:1832
msgid "Finished with errors"
msgstr ""
-#: models.py:1792
+#: models.py:1833
msgid "Finished"
msgstr ""
-#: models.py:1793
+#: models.py:1834
msgid "Archived"
msgstr ""
-#: models.py:1805
+#: models.py:1846
msgid "Imported file"
msgstr ""
-#: models.py:1808
+#: models.py:1849
msgid "Associated images (zip file)"
msgstr ""
-#: models.py:1810
+#: models.py:1851
msgid "Encoding"
msgstr ""
-#: models.py:1812
+#: models.py:1853
msgid "Skip lines"
msgstr ""
-#: models.py:1813 templates/ishtar/import_list.html:47
+#: models.py:1854 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr ""
-#: models.py:1816
+#: models.py:1857
msgid "Result file"
msgstr ""
-#: models.py:1819 templates/ishtar/import_list.html:53
+#: models.py:1860 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr ""
-#: models.py:1825
+#: models.py:1866
msgid "Conservative import"
msgstr ""
-#: models.py:1830
+#: models.py:1871
msgid "End date"
msgstr ""
-#: models.py:1832
+#: models.py:1873
msgid "Remaining seconds"
msgstr ""
-#: models.py:1837
+#: models.py:1878
msgid "Import"
msgstr ""
-#: models.py:1854
+#: models.py:1895
msgid "Analyse"
msgstr ""
-#: models.py:1856 models.py:1859
+#: models.py:1897 models.py:1900
msgid "Re-analyse"
msgstr ""
-#: models.py:1857
+#: models.py:1898
msgid "Launch import"
msgstr ""
-#: models.py:1860
+#: models.py:1901
msgid "Re-import"
msgstr ""
-#: models.py:1861
+#: models.py:1902
msgid "Archive"
msgstr ""
-#: models.py:1863
+#: models.py:1904
msgid "Unarchive"
msgstr ""
-#: models.py:1996
+#: models.py:2037
msgid "Organizations"
msgstr ""
-#: models.py:1998
+#: models.py:2039
msgid "Can view all Organizations"
msgstr ""
-#: models.py:1999
+#: models.py:2040
msgid "Can view own Organization"
msgstr ""
-#: models.py:2000
+#: models.py:2041
msgid "Can add own Organization"
msgstr ""
-#: models.py:2002
+#: models.py:2043
msgid "Can change own Organization"
msgstr ""
-#: models.py:2004
+#: models.py:2045
msgid "Can delete own Organization"
msgstr ""
-#: models.py:2039
+#: models.py:2080
msgid "Groups"
msgstr ""
-#: models.py:2044
+#: models.py:2085
msgid "Person types"
msgstr ""
-#: models.py:2051
+#: models.py:2092
msgid "Mr"
msgstr ""
-#: models.py:2052
+#: models.py:2093
msgid "Miss"
msgstr ""
-#: models.py:2053
+#: models.py:2094
msgid "Mr and Mrs"
msgstr ""
-#: models.py:2054
+#: models.py:2095
msgid "Mrs"
msgstr ""
-#: models.py:2055
+#: models.py:2096
msgid "Doctor"
msgstr ""
-#: models.py:2067
+#: models.py:2110
msgid "Contact type"
msgstr ""
-#: models.py:2070 models.py:2117
+#: models.py:2113 models.py:2160
msgid "Types"
msgstr ""
-#: models.py:2073
+#: models.py:2116
msgid "Is attached to"
msgstr ""
-#: models.py:2077
+#: models.py:2120
msgid "Persons"
msgstr ""
-#: models.py:2079
+#: models.py:2122
msgid "Can view all Persons"
msgstr ""
-#: models.py:2080
+#: models.py:2123
msgid "Can view own Person"
msgstr ""
-#: models.py:2081
+#: models.py:2124
msgid "Can add own Person"
msgstr ""
-#: models.py:2082
+#: models.py:2125
msgid "Can change own Person"
msgstr ""
-#: models.py:2083
+#: models.py:2126
msgid "Can delete own Person"
msgstr ""
-#: models.py:2209
+#: models.py:2252
msgid "Ishtar user"
msgstr ""
-#: models.py:2210
+#: models.py:2253
msgid "Ishtar users"
msgstr ""
-#: models.py:2255
+#: models.py:2298
msgid "Author types"
msgstr ""
-#: models.py:2281
+#: models.py:2324
msgid "Source types"
msgstr ""
-#: models.py:2287
+#: models.py:2330
msgid "Support types"
msgstr ""
-#: models.py:2293
+#: models.py:2336
msgid "Formats"
msgstr ""
-#: models.py:2298
+#: models.py:2341
msgid "External ID"
msgstr ""
-#: models.py:2301
+#: models.py:2344
msgid "Support"
msgstr ""
-#: models.py:2305
+#: models.py:2348
msgid "Scale"
msgstr ""
-#: models.py:2319
+#: models.py:2362
msgid "Item number"
msgstr ""
-#: models.py:2320
+#: models.py:2363
msgid "Ref."
msgstr ""
-#: models.py:2323
+#: models.py:2366
msgid "Internal ref."
msgstr ""
-#: models.py:2364
+#: models.py:2407
msgid "Surface (m2)"
msgstr ""
-#: models.py:2365 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2408 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr ""
-#: models.py:2390
+#: models.py:2433
msgid "Is preventive"
msgstr ""
-#: models.py:2394
+#: models.py:2437
msgid "Operation types"
msgstr ""
-#: models.py:2420
+#: models.py:2463
msgid "Preventive"
msgstr ""
-#: models.py:2421
+#: models.py:2464
msgid "Research"
msgstr ""
@@ -1207,58 +1218,58 @@ msgstr ""
msgid " (...)"
msgstr ""
-#: views.py:95
+#: views.py:100
msgid "New person"
msgstr ""
-#: views.py:103
+#: views.py:108
msgid "Person modification"
msgstr ""
-#: views.py:109
+#: views.py:123
msgid "Person deletion"
msgstr ""
-#: views.py:120
+#: views.py:134
msgid "New organization"
msgstr ""
-#: views.py:127
+#: views.py:141
msgid "Organization modification"
msgstr ""
-#: views.py:133
+#: views.py:147
msgid "Organization deletion"
msgstr ""
-#: views.py:642 templates/base.html:80
+#: views.py:662 templates/base.html:81 templates/ishtar/basket_list.html:4
#: templates/ishtar/sheet_organization.html:35
-#: templatetags/link_to_window.py:16
+#: templatetags/link_to_window.py:18
msgid "Details"
msgstr ""
-#: views.py:873 views.py:927
+#: views.py:893 views.py:947
msgid "Operation not permitted."
msgstr ""
-#: views.py:875
+#: views.py:895
#, python-format
msgid "New %s"
msgstr ""
-#: views.py:946 views.py:1000
+#: views.py:966 views.py:1020
msgid "Operations"
msgstr ""
-#: views.py:1189 templates/ishtar/import_list.html:43
+#: views.py:1209 templates/ishtar/import_list.html:43
msgid "Link unmatched items"
msgstr ""
-#: views.py:1204
+#: views.py:1224
msgid "Delete import"
msgstr ""
-#: views.py:1263 views.py:1279
+#: views.py:1283 views.py:1299
msgid "Corporation manager"
msgstr ""
@@ -1266,15 +1277,15 @@ msgstr ""
msgid "Search..."
msgstr ""
-#: widgets.py:602 templatetags/window_tables.py:68
+#: widgets.py:604 templatetags/window_tables.py:71
msgid "No results"
msgstr ""
-#: widgets.py:603 templatetags/window_tables.py:69
+#: widgets.py:605 templatetags/window_tables.py:72
msgid "Loading..."
msgstr ""
-#: widgets.py:604
+#: widgets.py:606
msgid "Remove"
msgstr ""
@@ -1325,55 +1336,58 @@ msgstr ""
msgid "The %(app_name)s team"
msgstr ""
-#: templates/base.html:34
+#: templates/base.html:35
msgid "Logged in"
msgstr ""
-#: templates/base.html:35
+#: templates/base.html:36
msgid "Log out"
msgstr ""
-#: templates/base.html:36
+#: templates/base.html:37
msgid "Change password"
msgstr ""
-#: templates/base.html:38 templates/registration/activate.html:10
+#: templates/base.html:39 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:44
+#: templates/base.html:45
msgid "Lang"
msgstr ""
-#: templates/base.html:44 templates/base.html.py:91
-#: templates/ishtar/blocks/window_field.html:2
-#: templates/ishtar/blocks/window_field_multiple.html:2
-#: templates/ishtar/blocks/window_field_url.html:2
+#: templates/base.html:45 templates/base.html.py:92 templates/welcome.html:7
+#: templates/welcome.html.py:8 templates/welcome.html:9
+#: templates/welcome.html.py:10 templates/ishtar/manage_basket.html:4
+#: templates/ishtar/blocks/window_field.html:1
+#: templates/ishtar/blocks/window_field_detail.html:1
+#: templates/ishtar/blocks/window_field_multiple.html:1
+#: templates/ishtar/blocks/window_field_url.html:1
msgid ":"
msgstr ""
-#: templates/base.html:69
+#: templates/base.html:70
msgid "Default selected items"
msgstr ""
-#: templates/base.html:89
+#: templates/base.html:90
msgid "Current items"
msgstr ""
#: templates/sheet_ope.html:4 templates/ishtar/sheet_organization.html:10
-#: templates/ishtar/sheet_person.html:10 templates/ishtar/sheet_toolbar.html:1
+#: templates/ishtar/sheet_toolbar.html:1
msgid "Export as:"
msgstr ""
#: templates/sheet_ope.html:4 templates/ishtar/sheet_organization.html:10
-#: templates/ishtar/sheet_person.html:10 templates/ishtar/sheet_toolbar.html:1
+#: templates/ishtar/sheet_toolbar.html:1
msgid "OpenOffice.org file"
msgstr ""
#: templates/sheet_ope.html:4 templates/ishtar/sheet_organization.html:10
-#: templates/ishtar/sheet_person.html:10 templates/ishtar/sheet_toolbar.html:1
+#: templates/ishtar/sheet_toolbar.html:1
msgid "PDF file"
msgstr ""
@@ -1561,7 +1575,7 @@ msgstr ""
msgid "Documentation"
msgstr ""
-#: templates/sheet_ope.html:102 templates/ishtar/sheet_person.html:91
+#: templates/sheet_ope.html:102 templates/ishtar/sheet_person.html:87
msgid "Documents"
msgstr ""
@@ -1585,7 +1599,56 @@ msgstr ""
msgid "No context record associated to this operation"
msgstr ""
+#: templates/welcome.html:4
+msgid ""
+"Welcome in Ishtar, open source software for management and inventory of "
+"archaeological data"
+msgstr ""
+
+#: templates/welcome.html:5
+msgid "Some useful links:"
+msgstr ""
+
+#: templates/welcome.html:7
+msgid "Presentation site and blog"
+msgstr ""
+
+#: templates/welcome.html:7
+msgid "stay tuned with Ishtar news!"
+msgstr ""
+
+#: templates/welcome.html:8
+msgid "Admin interface"
+msgstr ""
+
+#: templates/welcome.html:8
+msgid "for admin only."
+msgstr ""
+
+#: templates/welcome.html:9
+msgid "Forum"
+msgstr ""
+
+#: templates/welcome.html:9
+msgid ""
+"need help? find a new bug? a fantastic feature to propose? Here is the place "
+"to go."
+msgstr ""
+
+#: templates/welcome.html:10
+msgid "Source code"
+msgstr ""
+
+#: templates/welcome.html:10
+msgid "tickets"
+msgstr ""
+
+#: templates/welcome.html:10
+msgid "where the magic happens."
+msgstr ""
+
#: templates/window.html:38 templates/blocks/JQueryJqGrid.html:25
+#: templates/ishtar/manage_basket.html:9
msgid "Add"
msgstr ""
@@ -1622,7 +1685,7 @@ msgstr ""
msgid "full"
msgstr ""
-#: templates/blocks/JQueryJqGrid.html:95
+#: templates/blocks/JQueryJqGrid.html:96
#: templates/ishtar/blocks/window_tables/dynamic_documents.html:42
msgid "An error as occured during search. Check your query fields."
msgstr ""
@@ -1648,8 +1711,13 @@ msgstr ""
msgid "Help"
msgstr ""
+#: templates/ishtar/basket_list.html:6
+msgid "remove"
+msgstr ""
+
#: templates/ishtar/form.html:10 templates/ishtar/formset.html:8
#: templates/ishtar/import_list.html:58 templates/ishtar/merge.html:31
+#: templates/ishtar/simple_form.html:7
#: templates/ishtar/wizard/confirm_wizard.html:42
#: templates/ishtar/wizard/default_wizard.html:30
#: templates/ishtar/wizard/search.html:13
@@ -1698,6 +1766,14 @@ msgstr ""
msgid "Control file"
msgstr ""
+#: templates/ishtar/manage_basket.html:7
+msgid "Checking \"Select all\" only select the current page."
+msgstr ""
+
+#: templates/ishtar/manage_basket.html:10
+msgid "Basket content"
+msgstr ""
+
#: templates/ishtar/merge.html:7
msgid "Every operation on this form is irreversible"
msgstr ""
@@ -1729,6 +1805,7 @@ msgstr ""
#: templates/ishtar/organization_form.html:37
#: templates/ishtar/organization_person_form.html:32
#: templates/ishtar/person_form.html:43
+#: templates/ishtar/blocks/modify_toolbar.html:1
msgid "Modify"
msgstr ""
@@ -1788,49 +1865,49 @@ msgstr ""
msgid "No person in this organization"
msgstr ""
-#: templates/ishtar/sheet_person.html:25
+#: templates/ishtar/sheet_person.html:21
#: templates/ishtar/wizard/wizard_person.html:19
msgid "Phone type"
msgstr ""
-#: templates/ishtar/sheet_person.html:48
+#: templates/ishtar/sheet_person.html:44
#: templates/ishtar/wizard/wizard_person.html:42
msgid "Business address"
msgstr ""
-#: templates/ishtar/sheet_person.html:56
+#: templates/ishtar/sheet_person.html:52
#: templates/ishtar/wizard/wizard_person.html:51
msgid "Other address"
msgstr ""
-#: templates/ishtar/sheet_person.html:64
+#: templates/ishtar/sheet_person.html:60
msgid "Associated organization"
msgstr ""
-#: templates/ishtar/sheet_person.html:75
+#: templates/ishtar/sheet_person.html:71
msgid "Associated operations as scientist"
msgstr ""
-#: templates/ishtar/sheet_person.html:79
+#: templates/ishtar/sheet_person.html:75
msgid "Associated operations as responsible"
msgstr ""
-#: templates/ishtar/sheet_person.html:85
+#: templates/ishtar/sheet_person.html:81
msgid "Associated archaelogical files"
msgstr ""
-#: templates/ishtar/sheet_person.html:96
-#: templates/ishtar/sheet_person.html:104
+#: templates/ishtar/sheet_person.html:92
+#: templates/ishtar/sheet_person.html:100
#: templates/ishtar/blocks/window_tables/documents.html:9
#: templates/ishtar/blocks/window_tables/documents.html:17
msgid "Link"
msgstr ""
-#: templates/ishtar/sheet_person.html:108
+#: templates/ishtar/sheet_person.html:104
msgid "No document associated to this person"
msgstr ""
-#: templates/ishtar/blocks/window_field_url.html:3
+#: templates/ishtar/blocks/window_field_url.html:2
msgid "link"
msgstr ""
diff --git a/ishtar_common/migrations/0051_auto__add_field_ishtarsiteprofile_homepage.py b/ishtar_common/migrations/0051_auto__add_field_ishtarsiteprofile_homepage.py
new file mode 100644
index 000000000..7f8c65857
--- /dev/null
+++ b/ishtar_common/migrations/0051_auto__add_field_ishtarsiteprofile_homepage.py
@@ -0,0 +1,404 @@
+# -*- 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 'IshtarSiteProfile.homepage'
+ db.add_column('ishtar_common_ishtarsiteprofile', 'homepage',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'IshtarSiteProfile.homepage'
+ db.delete_column('ishtar_common_ishtarsiteprofile', 'homepage')
+
+
+ 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'}),
+ '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'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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.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'}),
+ 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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', [], {}),
+ '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']},
+ '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'}),
+ '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'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.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.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['ishtar_common'] \ No newline at end of file
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index f3974d04d..d8948d3e3 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -552,25 +552,27 @@ class ImageModel(models.Model):
filename = os.path.splitext(os.path.split(self.image.name)[-1])[0]
old_path = self.image.path
filename = "%s.jpg" % filename
- image = Image.open(self.image.file)
-
- # convert to RGB
- if image.mode not in ('L', 'RGB'):
- image = image.convert('RGB')
-
- # resize if necessary
- self.image.save(filename,
- self.create_thumb(image, self.IMAGE_MAX_SIZE),
- save=False)
-
- if old_path != self.image.path:
- os.remove(old_path)
-
- # save the thumbnail
- self.thumbnail.save(
- '_%s' % filename,
- self.create_thumb(image, self.THUMB_MAX_SIZE),
- save=False)
+ try:
+ image = Image.open(self.image.file)
+ # convert to RGB
+ if image.mode not in ('L', 'RGB'):
+ image = image.convert('RGB')
+
+ # resize if necessary
+ self.image.save(filename,
+ self.create_thumb(image, self.IMAGE_MAX_SIZE),
+ save=False)
+
+ if old_path != self.image.path:
+ os.remove(old_path)
+
+ # save the thumbnail
+ self.thumbnail.save(
+ '_%s' % filename,
+ self.create_thumb(image, self.THUMB_MAX_SIZE),
+ save=False)
+ except IOError:
+ pass
super(ImageModel, self).save(*args, **kwargs)
@@ -581,6 +583,8 @@ class HistoryError(Exception):
def __str__(self):
return repr(self.value)
+PRIVATE_FIELDS = ('id', 'history_modifier', 'order')
+
class BaseHistorizedItem(Imported):
IS_BASKET = False
@@ -816,6 +820,10 @@ class IshtarSiteProfile(models.Model, Cached):
warehouse = models.BooleanField(
_(u"Warehouses module"), default=False,
help_text=_(u"Need finds module"))
+ homepage = models.TextField(
+ _(u"Home page"), null=True, blank=True,
+ help_text=_(u"Homepage of Ishtar - if not defined a default homepage "
+ u"will appear. Use the markdown syntax."))
active = models.BooleanField(_(u"Current active"), default=False)
class Meta:
diff --git a/ishtar_common/static/js/grid.tbltogrid.js b/ishtar_common/static/js/grid.tbltogrid.js
new file mode 100644
index 000000000..addab1e48
--- /dev/null
+++ b/ishtar_common/static/js/grid.tbltogrid.js
@@ -0,0 +1,106 @@
+/*
+ Transform a table to a jqGrid.
+ Peter Romianowski <peter.romianowski@optivo.de>
+ If the first column of the table contains checkboxes or
+ radiobuttons then the jqGrid is made selectable.
+*/
+// Addition - selector can be a class or id
+function tableToGrid(selector, options) {
+jQuery(selector).each(function() {
+ if(this.grid) {return;} //Adedd from Tony Tomov
+ // This is a small "hack" to make the width of the jqGrid 100%
+ jQuery(this).width("99%");
+ var w = jQuery(this).width();
+
+ // Text whether we have single or multi select
+ var inputCheckbox = jQuery('tr td:first-child input[type=checkbox]:first', jQuery(this));
+ var inputRadio = jQuery('tr td:first-child input[type=radio]:first', jQuery(this));
+ var selectMultiple = inputCheckbox.length > 0;
+ var selectSingle = !selectMultiple && inputRadio.length > 0;
+ var selectable = selectMultiple || selectSingle;
+ //var inputName = inputCheckbox.attr("name") || inputRadio.attr("name");
+
+ // Build up the columnModel and the data
+ var colModel = [];
+ var colNames = [];
+ jQuery('th', jQuery(this)).each(function() {
+ if (colModel.length === 0 && selectable) {
+ colModel.push({
+ name: '__selection__',
+ index: '__selection__',
+ width: 0,
+ hidden: true
+ });
+ colNames.push('__selection__');
+ } else {
+ colModel.push({
+ name: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
+ index: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
+ width: jQuery(this).width() || 150
+ });
+ colNames.push(jQuery(this).html());
+ }
+ });
+ var data = [];
+ var rowIds = [];
+ var rowChecked = [];
+ jQuery('tbody > tr', jQuery(this)).each(function() {
+ var row = {};
+ var rowPos = 0;
+ jQuery('td', jQuery(this)).each(function() {
+ if (rowPos === 0 && selectable) {
+ var input = jQuery('input', jQuery(this));
+ var rowId = input.attr("value");
+ rowIds.push(rowId || data.length);
+ if (input.is(":checked")) {
+ rowChecked.push(rowId);
+ }
+ row[colModel[rowPos].name] = input.attr("value");
+ } else {
+ row[colModel[rowPos].name] = jQuery(this).html();
+ }
+ rowPos++;
+ });
+ if(rowPos >0) { data.push(row); }
+ });
+
+ // Clear the original HTML table
+ jQuery(this).empty();
+
+ // Mark it as jqGrid
+ jQuery(this).addClass("scroll");
+
+ jQuery(this).jqGrid(jQuery.extend({
+ datatype: "local",
+ width: w,
+ colNames: colNames,
+ colModel: colModel,
+ multiselect: selectMultiple
+ //inputName: inputName,
+ //inputValueCol: imputName != null ? "__selection__" : null
+ }, options || {}));
+
+ // Add data
+ var a;
+ for (a = 0; a < data.length; a++) {
+ var id = null;
+ if (rowIds.length > 0) {
+ id = rowIds[a];
+ if (id && id.replace) {
+ // We have to do this since the value of a checkbox
+ // or radio button can be anything
+ id = encodeURIComponent(id).replace(/[.\-%]/g, "_");
+ }
+ }
+ if (id === null) {
+ id = a + 1;
+ }
+ jQuery(this).jqGrid("addRowData",id, data[a]);
+ }
+
+ // Set the selection
+ for (a = 0; a < rowChecked.length; a++) {
+ jQuery(this).jqGrid("setSelection",rowChecked[a]);
+ }
+});
+};
diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css
index 1d47bcbd9..e74a6d205 100644
--- a/ishtar_common/static/media/style.css
+++ b/ishtar_common/static/media/style.css
@@ -45,7 +45,7 @@ a.add-button,
color:#000;
}
-#context_menu .basket{
+#context_menu option.basket{
color:#000;
font-weight: bold;
font-style: italic;
@@ -434,6 +434,11 @@ div#main_menu > ul > li{
}
*/
+div#welcome{
+ text-align:left;
+ font-size: 1.2em;
+}
+
div#content{
clear:both;
margin-top:190px ;
@@ -546,21 +551,20 @@ ul.form-flex {
margin: 0;
}
-
ul.form-flex li{
width: 395px;
}
@media screen and (min-width: 1051px) {
div.form,
- ul.form-flex {
+ ul.form-flex{
width: 800px;
}
}
@media screen and (min-width: 1400px) {
div.form,
- ul.form-flex {
+ ul.form-flex{
width: 1200px;
}
}
@@ -571,6 +575,10 @@ ul.form-flex label {
padding-left: 10px;
}
+#window ul.form-flex label {
+ width: 150px;
+}
+
.form table{
padding:0.2em;
margin-left:auto;
@@ -750,6 +758,10 @@ table.confirm tr.spacer td:last-child{
right:135px;
}
+a.photo{
+ padding: 0.5em;
+}
+
#global-vars textarea{
width:220px;
}
@@ -898,6 +910,22 @@ table.confirm tr.spacer td:last-child{
font-style:italic;
}
+#window table.simple td.item-list{
+ text-align:left;
+}
+
+table td.item-list span{
+ padding: 4px 4px;
+ background-color: #eee;
+ margin: 0.2em;
+ line-height: 26px;
+ border-radius: 4px;
+}
+
+#window table.simple td.item-list .display_details{
+ vertical-align: middle;
+}
+
#window .head{
text-align:center;
background-color:#f1f2f6;
@@ -946,6 +974,11 @@ table.confirm tr.spacer td:last-child{
width:465px;
}
+#window ul.form-flex span.value {
+ display: inline-table;
+ width: 230px;
+}
+
.strong{
font-weight:bold;
}
diff --git a/ishtar_common/static/media/style_basic.css b/ishtar_common/static/media/style_basic.css
index d624ae09c..1d92928dc 100644
--- a/ishtar_common/static/media/style_basic.css
+++ b/ishtar_common/static/media/style_basic.css
@@ -85,3 +85,7 @@ p{
width:100%;
border-bottom:1px solid #922;
}
+
+.display_details, .display_details_inline{
+ display: none;
+}
diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html
index 1bab3d647..8cd3c7793 100644
--- a/ishtar_common/templates/base.html
+++ b/ishtar_common/templates/base.html
@@ -17,6 +17,7 @@
<script language="javascript" type="text/javascript" src="{{STATIC_URL}}/js/prettyPhoto/js/jquery.prettyPhoto.js"></script>
<script language="javascript" type="text/javascript" src="{{STATIC_URL}}js/i18n/grid.locale-{{COUNTRY}}.js"></script>
<script language="javascript" type="text/javascript" src="{{STATIC_URL}}js/jquery.jqGrid.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{STATIC_URL}}js/grid.tbltogrid.js"></script>
<script language="javascript" type="text/javascript" src="{{STATIC_URL}}/js/ishtar.js"></script>
<link type="text/css" href="{{JQUERY_UI_URL}}jquery-ui.css" rel="stylesheet" />
<link rel="stylesheet" href="{{STATIC_URL}}/js/prettyPhoto/css/prettyPhoto.css" />
@@ -74,7 +75,7 @@
<td>
<select class='{{main_cls}}' id='current_{{model_name}}'>
<option class='normal' value=''>--</option>
- {% for val, label, selected, cls in items %}<option class='{{cls}}' value='{{val}}'{% if selected %} selected="selected"{%endif%}>{{label}}</option>
+ {% for val, label, selected, cls in items %}<option{% if cls %} class='{{cls}}'{% endif %} value='{{val}}'{% if selected %} selected="selected"{%endif%}>{{label}}</option>
{% endfor %}</select>
</td>{% with 'show-'|add:model_name as model_url%}
<td><a href='#' onclick='load_current_window("{% url model_url 0 %}", "{{model_name}}");' class='display_details'>{% trans "Details" %}</a></td>
diff --git a/ishtar_common/templates/index.html b/ishtar_common/templates/index.html
index c4c0b0f2a..2b6d7004e 100644
--- a/ishtar_common/templates/index.html
+++ b/ishtar_common/templates/index.html
@@ -1,2 +1,3 @@
{% extends "base.html" %}
{% load i18n %}
+{% block content %}<div id='welcome'>{% if homepage %}{{homepage|safe}}{% else %}{% include "welcome.html" %}{% endif %}</div>{% endblock %}
diff --git a/ishtar_common/templates/ishtar/blocks/window_field.html b/ishtar_common/templates/ishtar/blocks/window_field.html
index 14cf1c21e..969f32dbb 100644
--- a/ishtar_common/templates/ishtar/blocks/window_field.html
+++ b/ishtar_common/templates/ishtar/blocks/window_field.html
@@ -1,3 +1,3 @@
-{% load i18n %}
-{% if data %}<p><label>{% trans caption %}{% trans ":"%}</label>
-<span class='value'>{{pre_data|safe}}{{data|linebreaksbr}}{{post_data|safe}}</span></p>{% endif%}
+{% load i18n %}{% if data %}{% if li %}<li>{% else %}<p>{% endif %}<label>{% trans caption %}{% trans ":"%}</label>
+<span class='value'>{{pre_data|safe}}{{data|linebreaksbr}}{{post_data|safe}}</span>{% if li %}</li>{% else %}</p>{% endif %}
+{% endif %}
diff --git a/ishtar_common/templates/ishtar/blocks/window_field_detail.html b/ishtar_common/templates/ishtar/blocks/window_field_detail.html
new file mode 100644
index 000000000..2be9c5ec4
--- /dev/null
+++ b/ishtar_common/templates/ishtar/blocks/window_field_detail.html
@@ -0,0 +1,3 @@
+{% load i18n %}{% if item %}{% if li %}<li>{% else %}<p>{% endif %}<label>{% trans caption %}{% trans ":"%}</label>
+<span class='value'>{{item}}{{link}}</span>{% if li %}</li>{% else %}</p>{% endif %}
+{% endif %}
diff --git a/ishtar_common/templates/ishtar/blocks/window_field_multiple.html b/ishtar_common/templates/ishtar/blocks/window_field_multiple.html
index 30903b0d5..d1ee25c7b 100644
--- a/ishtar_common/templates/ishtar/blocks/window_field_multiple.html
+++ b/ishtar_common/templates/ishtar/blocks/window_field_multiple.html
@@ -1,8 +1,6 @@
-{% load i18n %}
-{% if data.count %}<p><label>{% trans caption %}{% trans ":"%}</label>
+{% load i18n %}{% if data.count %}{% if li %}<li>{% else %}<p>{% endif %}<label>{% trans caption %}{% trans ":"%}</label>
<span class='value'>{% for d in data.all %}
{% if forloop.counter0 %}, {% endif %}{{ d }}
{% endfor %}</span>
-</p>
+{% if li %}</li>{% else %}</p>{% endif %}
{% endif %}
-
diff --git a/ishtar_common/templates/ishtar/blocks/window_field_url.html b/ishtar_common/templates/ishtar/blocks/window_field_url.html
index b91f318b6..637366d1d 100644
--- a/ishtar_common/templates/ishtar/blocks/window_field_url.html
+++ b/ishtar_common/templates/ishtar/blocks/window_field_url.html
@@ -1,3 +1,3 @@
-{% load i18n %}
-{% if link %}<p><label>{% trans caption %}{% trans ":"%}</label>
-<span class='value'><a target="_blank" href='{{link|safe}}'>{% if link_name %}{{link_name}}{% else %}{% trans "link" %}{% endif %}</a></span></p>{% endif%}
+{% load i18n %}{% if link %}{% if li %}<li>{% else %}<p>{% endif %}<p><label>{% trans caption %}{% trans ":"%}</label>
+<span class='value'><a target="_blank" href='{{link|safe}}'>{% if link_name %}{{link_name}}{% else %}{% trans "link" %}{% endif %}</a></span>{% if li %}</li>{% else %}</p>{% endif %}
+{% endif%}
diff --git a/ishtar_common/templates/ishtar/sheet_toolbar.html b/ishtar_common/templates/ishtar/sheet_toolbar.html
index 7e2c1659a..a6736b6cc 100644
--- a/ishtar_common/templates/ishtar/sheet_toolbar.html
+++ b/ishtar_common/templates/ishtar/sheet_toolbar.html
@@ -1,2 +1,2 @@
-{% load i18n link_to_window %}<div class='tool'>{%trans "Export as:"%} <a href='{{item|link_to_odt}}'>{%trans "OpenOffice.org file"%}</a>, <a href='{{item|link_to_pdf}}'>{%trans "PDF file"%}</a></div>
+{% load i18n link_to_window %}<div class='tool'>{% trans "Export as:" %} <a href='{{item|link_to_odt}}'>{%trans "OpenOffice.org file"%}</a>, <a href='{{item|link_to_pdf}}'>{%trans "PDF file"%}</a></div>
{% modify_toolbar item "person_modification" %}
diff --git a/ishtar_common/templates/welcome.html b/ishtar_common/templates/welcome.html
new file mode 100644
index 000000000..42935d8f9
--- /dev/null
+++ b/ishtar_common/templates/welcome.html
@@ -0,0 +1,11 @@
+{% load i18n %}
+{% load url from future %}
+
+<h2>{% trans "Welcome in Ishtar, open source software for management and inventory of archaeological data" %}</h2>
+<p>{% trans "Some useful links:" %}</p>
+<ul>
+ <li><a href='https://ishtar-archeo.net' target="_blank">{% trans "Presentation site and blog" %}</a>{% trans ":"%} {% trans "stay tuned with Ishtar news!" %}</li>
+ <li><a href='{% url 'admin:index' %}' target="_blank">{% trans "Admin interface" %}</a>{% trans ":"%} {% trans "for admin only." %}</li>
+ <li><a href="https://forum.ishtar-archeo.net/" target="_blank">{% trans "Forum" %}</a>{% trans ":"%} {% trans "need help? find a new bug? a fantastic feature to propose? Here is the place to go." %}</li>
+ <li><a href="https://gitlab.com/ishtar/ishtar" target="_blank">{% trans "Source code" %}</a> &ndash; <a href="https://tickets.iggdrasil.net/projects/ishtar" target="_blank">{% trans "tickets" %}</a>{% trans ":"%} {% trans "where the magic happens." %}</li>
+</ul>
diff --git a/ishtar_common/templatetags/link_to_window.py b/ishtar_common/templatetags/link_to_window.py
index 5ff928bb1..009a089d2 100644
--- a/ishtar_common/templatetags/link_to_window.py
+++ b/ishtar_common/templatetags/link_to_window.py
@@ -3,6 +3,7 @@
from django.core.urlresolvers import reverse
from django.template import Library
+from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _
register = Library()
@@ -10,10 +11,11 @@ register = Library()
@register.filter
def link_to_window(item):
- return u' <a class="display_details" href="#" '\
- 'onclick="load_window(\'{}\')">{}</a>'.format(
+ return mark_safe(
+ u' <a class="display_details" href="#" '
+ u'onclick="load_window(\'{}\')">{}</a>'.format(
reverse(item.SHOW_URL, args=[item.pk, '']),
- _("Details"))
+ _("Details")))
@register.filter
diff --git a/ishtar_common/templatetags/window_field.py b/ishtar_common/templatetags/window_field.py
index 34071f60f..9ce2cf6b6 100644
--- a/ishtar_common/templatetags/window_field.py
+++ b/ishtar_common/templatetags/window_field.py
@@ -1,26 +1,53 @@
from django import template
from django.utils.translation import ugettext_lazy as _
+from ishtar_common.templatetags.link_to_window import link_to_window
register = template.Library()
@register.inclusion_tag('ishtar/blocks/window_field.html')
-def field(caption, data, pre_data='', post_data=''):
+def field(caption, data, pre_data='', post_data='', li=False):
if data in (True, False):
data = _(unicode(data))
return {'caption': caption, 'data': data, "pre_data": pre_data,
- 'post_data': post_data}
+ 'post_data': post_data, 'li': li}
+
+
+@register.inclusion_tag('ishtar/blocks/window_field.html')
+def field_li(caption, data, pre_data='', post_data=''):
+ return field(caption, data, pre_data, post_data, li=True)
@register.inclusion_tag('ishtar/blocks/window_field_url.html')
-def field_url(caption, link, link_name=''):
+def field_url(caption, link, link_name='', li=False):
if not link:
return u''
if not link.startswith('http://'):
link = 'http://' + link
- return {'caption': caption, 'link': link, "link_name": link_name}
+ return {'caption': caption, 'link': link, "link_name": link_name, 'li': li}
+
+
+@register.inclusion_tag('ishtar/blocks/window_field_url.html')
+def field_li_url(caption, link, link_name=''):
+ return field_url(caption, link, link_name, li=True)
@register.inclusion_tag('ishtar/blocks/window_field_multiple.html')
-def field_multiple(caption, data):
- return {'caption': caption, 'data': data}
+def field_multiple(caption, data, li=False):
+ return {'caption': caption, 'data': data, 'li': li}
+
+
+@register.inclusion_tag('ishtar/blocks/window_field_multiple.html')
+def field_li_multiple(caption, data):
+ return field_multiple(caption, data, li=True)
+
+
+@register.inclusion_tag('ishtar/blocks/window_field_detail.html')
+def field_detail(caption, item, li=False):
+ return {'caption': caption, 'item': item, 'link': link_to_window(item),
+ 'li': li}
+
+
+@register.inclusion_tag('ishtar/blocks/window_field_detail.html')
+def field_li_detail(caption, item):
+ return field_detail(caption, item, li=True)
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 59cfe6321..d508444a4 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -24,6 +24,7 @@ import cStringIO as StringIO
import datetime
import ho.pisa as pisa
import json
+from markdown import markdown
import optparse
import re
from tempfile import NamedTemporaryFile
@@ -61,7 +62,8 @@ from archaeological_files.forms import DashboardForm as DashboardFormFile
from ishtar_common.forms import FinalForm, FinalDeleteForm
from ishtar_common import forms_common as forms
from ishtar_common import wizards
-from ishtar_common.models import HistoryError
+from ishtar_common.models import HistoryError, PRIVATE_FIELDS, \
+ get_current_profile
import models
@@ -74,6 +76,9 @@ def index(request):
Main page
"""
dct = {}
+ profile = get_current_profile()
+ if hasattr(profile, 'homepage') and profile.homepage:
+ dct['homepage'] = markdown(profile.homepage)
try:
return render_to_response('index.html', dct,
context_instance=RequestContext(request))
@@ -325,7 +330,6 @@ def format_val(val):
HIERARCHIC_LEVELS = 5
HIERARCHIC_FIELDS = ['periods', 'period', 'unit', 'material_types',
'material_type', 'conservatory_state']
-PRIVATE_FIELDS = ('id', 'history_modifier', 'order')
def get_item(model, func_name, default_name, extra_request_keys=[],