PyInventory 0.19.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. PyInventory-0.19.0.dist-info/AUTHORS +14 -0
  2. PyInventory-0.19.0.dist-info/LICENSE +674 -0
  3. PyInventory-0.19.0.dist-info/METADATA +347 -0
  4. PyInventory-0.19.0.dist-info/RECORD +101 -0
  5. PyInventory-0.19.0.dist-info/WHEEL +5 -0
  6. PyInventory-0.19.0.dist-info/entry_points.txt +2 -0
  7. PyInventory-0.19.0.dist-info/top_level.txt +2 -0
  8. inventory/__init__.py +7 -0
  9. inventory/admin/__init__.py +3 -0
  10. inventory/admin/base.py +104 -0
  11. inventory/admin/item.py +169 -0
  12. inventory/admin/location.py +78 -0
  13. inventory/admin/memo.py +76 -0
  14. inventory/admin/tagulous_fix.py +45 -0
  15. inventory/apps.py +18 -0
  16. inventory/ckeditor_upload.py +15 -0
  17. inventory/context_processors.py +5 -0
  18. inventory/forms.py +36 -0
  19. inventory/locale/ca/LC_MESSAGES/django.mo +0 -0
  20. inventory/locale/ca/LC_MESSAGES/django.po +297 -0
  21. inventory/locale/de/LC_MESSAGES/django.mo +0 -0
  22. inventory/locale/de/LC_MESSAGES/django.po +294 -0
  23. inventory/locale/en/LC_MESSAGES/django.mo +0 -0
  24. inventory/locale/en/LC_MESSAGES/django.po +294 -0
  25. inventory/locale/es/LC_MESSAGES/django.mo +0 -0
  26. inventory/locale/es/LC_MESSAGES/django.po +297 -0
  27. inventory/management/__init__.py +0 -0
  28. inventory/management/commands/__init__.py +0 -0
  29. inventory/management/commands/seed_data.py +135 -0
  30. inventory/management/commands/tree.py +62 -0
  31. inventory/middlewares.py +21 -0
  32. inventory/migrations/0001_initial.py +596 -0
  33. inventory/migrations/0002_auto_20201017_2211.py +87 -0
  34. inventory/migrations/0003_auto_20201024_1830.py +23 -0
  35. inventory/migrations/0004_item_user_images.py +129 -0
  36. inventory/migrations/0005_serve_uploads_by_django_tools.py +77 -0
  37. inventory/migrations/0006_refactor_image_model.py +46 -0
  38. inventory/migrations/0007_add_file_attachment.py +128 -0
  39. inventory/migrations/0008_last_check_datetime.py +23 -0
  40. inventory/migrations/0009_add_memo.py +517 -0
  41. inventory/migrations/0010_version_protect_models.py +37 -0
  42. inventory/migrations/0011_parent_tree1.py +97 -0
  43. inventory/migrations/0012_parent_tree2.py +20 -0
  44. inventory/migrations/0013_alter_itemmodel_location.py +26 -0
  45. inventory/migrations/__init__.py +0 -0
  46. inventory/models/__init__.py +3 -0
  47. inventory/models/base.py +239 -0
  48. inventory/models/item.py +228 -0
  49. inventory/models/links.py +104 -0
  50. inventory/models/location.py +24 -0
  51. inventory/models/memo.py +109 -0
  52. inventory/parent_tree.py +71 -0
  53. inventory/permissions.py +60 -0
  54. inventory/request_dict.py +16 -0
  55. inventory/signals.py +15 -0
  56. inventory/string_utils.py +15 -0
  57. inventory/templates/admin/item/related_items.html +18 -0
  58. inventory/templates/admin/location/items.html +18 -0
  59. inventory/tests/__init__.py +0 -0
  60. inventory/tests/fixtures/__init__.py +0 -0
  61. inventory/tests/fixtures/users.py +11 -0
  62. inventory/tests/test_admin_location.py +34 -0
  63. inventory/tests/test_admin_location_empty_change_list_1.snapshot.html +84 -0
  64. inventory/tests/test_item_images.py +76 -0
  65. inventory/tests/test_link_model.py +72 -0
  66. inventory/tests/test_management_command_seed_data.py +49 -0
  67. inventory/tests/test_management_command_tree.py +27 -0
  68. inventory/tests/test_parent_tree.py +40 -0
  69. inventory/tests/test_parent_tree_model.py +139 -0
  70. inventory_project/__init__.py +12 -0
  71. inventory_project/__main__.py +17 -0
  72. inventory_project/manage.py +41 -0
  73. inventory_project/middlewares.py +23 -0
  74. inventory_project/publish.py +21 -0
  75. inventory_project/settings/__init__.py +0 -0
  76. inventory_project/settings/local.py +74 -0
  77. inventory_project/settings/prod.py +393 -0
  78. inventory_project/settings/tests.py +45 -0
  79. inventory_project/templates/admin/base_site.html +22 -0
  80. inventory_project/templates/admin/login.html +32 -0
  81. inventory_project/tests/__init__.py +0 -0
  82. inventory_project/tests/fixtures.py +40 -0
  83. inventory_project/tests/mocks.py +15 -0
  84. inventory_project/tests/playwright_utils.py +22 -0
  85. inventory_project/tests/test_admin.py +15 -0
  86. inventory_project/tests/test_admin_item.py +240 -0
  87. inventory_project/tests/test_admin_item_auto_group_items_1.snapshot.html +349 -0
  88. inventory_project/tests/test_admin_item_auto_group_items_2.snapshot.html +232 -0
  89. inventory_project/tests/test_admin_item_login_1.snapshot.html +40 -0
  90. inventory_project/tests/test_admin_item_normal_user_create_minimal_item_1.snapshot.html +637 -0
  91. inventory_project/tests/test_admin_item_normal_user_create_minimal_item_2.snapshot.html +930 -0
  92. inventory_project/tests/test_admin_memo.py +153 -0
  93. inventory_project/tests/test_admin_memo_normal_user_create_minimal_item_1.snapshot.html +365 -0
  94. inventory_project/tests/test_command_shell_help_django4.2.3.snapshot.txt +60 -0
  95. inventory_project/tests/test_inventory_commands.py +26 -0
  96. inventory_project/tests/test_migrations.py +22 -0
  97. inventory_project/tests/test_models_item.py +24 -0
  98. inventory_project/tests/test_playwright_admin.py +157 -0
  99. inventory_project/tests/test_project_setup.py +102 -0
  100. inventory_project/urls.py +21 -0
  101. inventory_project/wsgi.py +9 -0
@@ -0,0 +1,637 @@
1
+ <div class="colM" id="content">
2
+ <h1>
3
+ Add Item
4
+ </h1>
5
+ <div id="content-main">
6
+ <form enctype="multipart/form-data" id="itemmodel_form" method="post" novalidate="">
7
+ MockedCsrfTokenNode
8
+ <div>
9
+ <fieldset class="module aligned collapse">
10
+ <h2>
11
+ Internals
12
+ </h2>
13
+ <div class="form-row field-id field-version">
14
+ <div class="flex-container form-multiline">
15
+ <div>
16
+ <div class="flex-container fieldBox field-id">
17
+ <label>
18
+ ID:
19
+ </label>
20
+ <div class="readonly">
21
+ -
22
+ </div>
23
+ </div>
24
+ <div class="help">
25
+ <div>
26
+ ID
27
+ </div>
28
+ </div>
29
+ </div>
30
+ <div>
31
+ <div class="flex-container fieldBox field-version">
32
+ <label class="required inline" for="id_version">
33
+ Version:
34
+ </label>
35
+ <input id="id_version" name="version" required="" type="hidden" value="0"/>
36
+ 0
37
+ </div>
38
+ <div class="help" id="id_version_helptext">
39
+ <div>
40
+ Internal version number of this entry. Used to protect the overwriting of an older entry.
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ <div class="form-row field-user">
47
+ <div>
48
+ <div class="flex-container">
49
+ <label>
50
+ User:
51
+ </label>
52
+ <div class="readonly">
53
+ -
54
+ </div>
55
+ </div>
56
+ <div class="help">
57
+ <div>
58
+ The user who is the owner of this entry and can manage it (will be set automatically)
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </fieldset>
64
+ <fieldset class="module aligned collapse">
65
+ <h2>
66
+ Meta
67
+ </h2>
68
+ <div class="form-row field-create_dt">
69
+ <div>
70
+ <div class="flex-container">
71
+ <label>
72
+ Create date:
73
+ </label>
74
+ <div class="readonly">
75
+ -
76
+ </div>
77
+ </div>
78
+ <div class="help">
79
+ <div>
80
+ (will be set automatically)
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ <div class="form-row field-update_dt">
86
+ <div>
87
+ <div class="flex-container">
88
+ <label>
89
+ Last update:
90
+ </label>
91
+ <div class="readonly">
92
+ -
93
+ </div>
94
+ </div>
95
+ <div class="help">
96
+ <div>
97
+ (will be set automatically)
98
+ </div>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ </fieldset>
103
+ <fieldset class="module aligned">
104
+ <h2>
105
+ Basic
106
+ </h2>
107
+ <div class="form-row field-kind">
108
+ <div>
109
+ <div class="flex-container">
110
+ <label class="required" for="id_kind">
111
+ Kind:
112
+ </label>
113
+ <div class="related-widget-wrapper" data-model-ref="Item Kind">
114
+ <input autocomplete="off" data-tag-list="[]" data-tag-options='{"case_sensitive": false, "force_lowercase": false, "max_count": 3, "space_delimiter": false, "required": true}' data-tagulous="true" data-theme="admin-autocomplete" id="id_kind" name="kind" required="" type="text"/>
115
+ </div>
116
+ </div>
117
+ <div class="help" id="id_kind_helptext">
118
+ <div>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ <div class="form-row field-producer field-name">
124
+ <div class="flex-container form-multiline">
125
+ <div>
126
+ <div class="flex-container fieldBox field-producer">
127
+ <label for="id_producer">
128
+ Producer:
129
+ </label>
130
+ <div class="related-widget-wrapper" data-model-ref="Item Producer">
131
+ <input autocomplete="off" data-tag-list="[]" data-tag-options='{"case_sensitive": false, "force_lowercase": false, "max_count": 1, "space_delimiter": false, "required": false}' data-tagulous="true" data-theme="admin-autocomplete" id="id_producer" name="producer" type="text"/>
132
+ </div>
133
+ </div>
134
+ <div class="help" id="id_producer_helptext">
135
+ <div>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ <div>
140
+ <div class="flex-container fieldBox field-name">
141
+ <label class="required inline" for="id_name">
142
+ Name:
143
+ </label>
144
+ <input class="vTextField" id="id_name" maxlength="255" name="name" required="" type="text"/>
145
+ </div>
146
+ <div class="help" id="id_name_helptext">
147
+ <div>
148
+ Name
149
+ </div>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ <div class="form-row field-description">
155
+ <div>
156
+ <div class="flex-container">
157
+ <label for="id_description">
158
+ Description:
159
+ </label>
160
+ <div class="django-ckeditor-widget" data-field-id="id_description" style="display: inline-block;">
161
+ <textarea cols="40" data-config='{"skin": "moono-lisa", "toolbar_Basic": [["Source", "-", "Bold", "Italic"]], "toolbar_Full": [["Styles", "Format", "Bold", "Italic", "Underline", "Strike", "SpellChecker", "Undo", "Redo"], ["Link", "Unlink", "Anchor"], ["Image", "Flash", "Table", "HorizontalRule"], ["TextColor", "BGColor"], ["Smiley", "SpecialChar"], ["Source"]], "toolbar": "PyInventoryToolbarConfig", "height": "25em", "width": "100%", "filebrowserWindowWidth": 940, "filebrowserWindowHeight": 725, "removeButtons": "Language,Cut,Copy,Paste,Undo,Redo,Anchor", "removePlugins": ["a11yhelp", "adobeair", "ajax", "autoembed", "autolink", "bbcode", "bidi", "clipboard", "codesnippet", "codesnippetgeshi", "contextmenu", "copyformatting", "devtools", "dialog", "dialogadvtab", "div", "divarea", "docprops", "embed", "embedbase", "embedsemantic", "enterkey", "exportpdf", "find", "flash", "forms", "htmlwriter", "iframe", "iframedialog", "language", "magicline", "mathjax", "newpage", "notification", "notificationaggregator", "pagebreak", "pastefromgdocs", "pastefromword", "pastetext", "pastetools", "placeholder", "preview", "print", "save", "scayt", "selectall", "sharedspace", "smiley", "sourcedialog", "specialchar", "stylescombo", "stylesheetparser", "tab", "templates", "uicolor", "widget", "wsc", "xml"], "toolbar_PyInventoryToolbarConfig": [{"name": "basicstyles", "items": ["Bold", "Italic", "Underline", "Strike", "-", "RemoveFormat"]}, {"name": "paragraph", "items": ["NumberedList", "BulletedList", "-", "Outdent", "Indent", "-", "Blockquote", "-", "JustifyLeft", "JustifyCenter", "JustifyRight", "JustifyBlock"]}, {"name": "links", "items": ["Link", "Unlink", "Anchor"]}, {"name": "insert", "items": ["Image", "Table", "HorizontalRule"]}, "/", {"name": "styles", "items": ["Styles", "Format", "Font", "FontSize"]}, {"name": "colors", "items": ["TextColor", "BGColor"]}, {"name": "tools", "items": ["Maximize", "ShowBlocks", "Source"]}, {"name": "about", "items": ["About"]}], "filebrowserUploadUrl": "/ckeditor/upload/", "filebrowserBrowseUrl": "/ckeditor/browse/", "language": "en"}' data-external-plugin-resources="[]" data-id="id_description" data-processed="0" data-type="ckeditortype" id="id_description" name="description" rows="10"></textarea>
162
+ </div>
163
+ </div>
164
+ <div class="help" id="id_description_helptext">
165
+ <div>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ </div>
170
+ <div class="form-row field-tags">
171
+ <div>
172
+ <div class="flex-container">
173
+ <label for="id_tags">
174
+ Tags:
175
+ </label>
176
+ <div class="related-widget-wrapper" data-model-ref="Item Tags">
177
+ <input autocomplete="off" data-tag-list="[]" data-tag-options='{"case_sensitive": false, "force_lowercase": false, "max_count": 10, "space_delimiter": false, "required": false}' data-tagulous="true" data-theme="admin-autocomplete" id="id_tags" name="tags" type="text"/>
178
+ </div>
179
+ </div>
180
+ <div class="help" id="id_tags_helptext">
181
+ <div>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </div>
186
+ <div class="form-row field-fcc_id">
187
+ <div>
188
+ <div class="flex-container">
189
+ <label for="id_fcc_id">
190
+ FCC ID:
191
+ </label>
192
+ <input class="vTextField" id="id_fcc_id" maxlength="20" name="fcc_id" type="text"/>
193
+ </div>
194
+ <div class="help" id="id_fcc_id_helptext">
195
+ <div>
196
+ Unique number from the FCC
197
+ </div>
198
+ </div>
199
+ </div>
200
+ </div>
201
+ <div class="form-row field-parent">
202
+ <div>
203
+ <div class="flex-container">
204
+ <label for="id_parent">
205
+ Parent:
206
+ </label>
207
+ <div class="related-widget-wrapper" data-model-ref="Item">
208
+ <select class="admin-autocomplete" data-ajax--cache="true" data-ajax--delay="250" data-ajax--type="GET" data-ajax--url="/admin/autocomplete/" data-allow-clear="true" data-app-label="inventory" data-field-name="parent" data-model-name="itemmodel" data-placeholder="" data-theme="admin-autocomplete" id="id_parent" lang="en" name="parent">
209
+ <option value="">
210
+ </option>
211
+ </select>
212
+ <a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/itemmodel/__fk__/change/?_to_field=id&amp;_popup=1" data-popup="yes" id="change_id_parent" title="Change selected Item">
213
+ <img alt="Change" src="/static/admin/img/icon-changelink.svg"/>
214
+ </a>
215
+ <a class="related-widget-wrapper-link add-related" data-popup="yes" href="/admin/inventory/itemmodel/add/?_to_field=id&amp;_popup=1" id="add_id_parent" title="Add another Item">
216
+ <img alt="Add" src="/static/admin/img/icon-addlink.svg"/>
217
+ </a>
218
+ <a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/itemmodel/__fk__/delete/?_to_field=id&amp;_popup=1" data-popup="yes" id="delete_id_parent" title="Delete selected Item">
219
+ <img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/>
220
+ </a>
221
+ <a class="related-widget-wrapper-link view-related" data-href-template="/admin/inventory/itemmodel/__fk__/change/?_to_field=id" id="view_id_parent" title="View selected Item">
222
+ <img alt="View" src="/static/admin/img/icon-viewlink.svg"/>
223
+ </a>
224
+ </div>
225
+ </div>
226
+ <div class="help" id="id_parent_helptext">
227
+ <div>
228
+ Locations can be nested. Example: The box 12 in cupboard 3
229
+ </div>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ <div class="form-row field-location">
234
+ <div>
235
+ <div class="flex-container">
236
+ <label for="id_location">
237
+ Location:
238
+ </label>
239
+ <div class="related-widget-wrapper" data-model-ref="Location">
240
+ <select class="admin-autocomplete" data-ajax--cache="true" data-ajax--delay="250" data-ajax--type="GET" data-ajax--url="/admin/autocomplete/" data-allow-clear="true" data-app-label="inventory" data-field-name="location" data-model-name="itemmodel" data-placeholder="" data-theme="admin-autocomplete" id="id_location" lang="en" name="location">
241
+ <option value="">
242
+ </option>
243
+ </select>
244
+ <a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/locationmodel/__fk__/change/?_to_field=id&amp;_popup=1" data-popup="yes" id="change_id_location" title="Change selected Location">
245
+ <img alt="Change" src="/static/admin/img/icon-changelink.svg"/>
246
+ </a>
247
+ <a class="related-widget-wrapper-link add-related" data-popup="yes" href="/admin/inventory/locationmodel/add/?_to_field=id&amp;_popup=1" id="add_id_location" title="Add another Location">
248
+ <img alt="Add" src="/static/admin/img/icon-addlink.svg"/>
249
+ </a>
250
+ <a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/locationmodel/__fk__/delete/?_to_field=id&amp;_popup=1" data-popup="yes" id="delete_id_location" title="Delete selected Location">
251
+ <img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/>
252
+ </a>
253
+ <a class="related-widget-wrapper-link view-related" data-href-template="/admin/inventory/locationmodel/__fk__/change/?_to_field=id" id="view_id_location" title="View selected Location">
254
+ <img alt="View" src="/static/admin/img/icon-viewlink.svg"/>
255
+ </a>
256
+ </div>
257
+ </div>
258
+ <div class="help" id="id_location_helptext">
259
+ <div>
260
+ </div>
261
+ </div>
262
+ </div>
263
+ </div>
264
+ </fieldset>
265
+ <fieldset class="module aligned collapse">
266
+ <h2>
267
+ Related items
268
+ </h2>
269
+ <div class="form-row field-related_items">
270
+ <div>
271
+ <div class="flex-container">
272
+ <label>
273
+ Related items:
274
+ </label>
275
+ <div class="readonly">
276
+ -
277
+ </div>
278
+ </div>
279
+ </div>
280
+ </div>
281
+ </fieldset>
282
+ <fieldset class="module aligned collapse">
283
+ <h2>
284
+ Lent
285
+ </h2>
286
+ <div class="form-row field-lent_to">
287
+ <div>
288
+ <div class="flex-container">
289
+ <label for="id_lent_to">
290
+ Lent to:
291
+ </label>
292
+ <input class="vTextField" id="id_lent_to" maxlength="64" name="lent_to" type="text"/>
293
+ </div>
294
+ <div class="help" id="id_lent_to_helptext">
295
+ <div>
296
+ </div>
297
+ </div>
298
+ </div>
299
+ </div>
300
+ <div class="form-row field-lent_from_date field-lent_until_date">
301
+ <div class="flex-container form-multiline">
302
+ <div>
303
+ <div class="flex-container fieldBox field-lent_from_date">
304
+ <label for="id_lent_from_date">
305
+ Lent from date:
306
+ </label>
307
+ <p class="date">
308
+ <input class="vDateField" id="id_lent_from_date" name="lent_from_date" size="10" type="text"/>
309
+ </p>
310
+ </div>
311
+ <div class="help" id="id_lent_from_date_helptext">
312
+ <div>
313
+ </div>
314
+ </div>
315
+ </div>
316
+ <div>
317
+ <div class="flex-container fieldBox field-lent_until_date">
318
+ <label class="inline" for="id_lent_until_date">
319
+ Lent until date:
320
+ </label>
321
+ <p class="date">
322
+ <input class="vDateField" id="id_lent_until_date" name="lent_until_date" size="10" type="text"/>
323
+ </p>
324
+ </div>
325
+ <div class="help" id="id_lent_until_date_helptext">
326
+ <div>
327
+ </div>
328
+ </div>
329
+ </div>
330
+ </div>
331
+ </div>
332
+ </fieldset>
333
+ <fieldset class="module aligned collapse">
334
+ <h2>
335
+ Received
336
+ </h2>
337
+ <div class="form-row field-received_from field-received_date field-received_price">
338
+ <div class="flex-container form-multiline">
339
+ <div>
340
+ <div class="flex-container fieldBox field-received_from">
341
+ <label for="id_received_from">
342
+ Received from:
343
+ </label>
344
+ <input class="vTextField" id="id_received_from" maxlength="64" name="received_from" type="text"/>
345
+ </div>
346
+ <div class="help" id="id_received_from_helptext">
347
+ <div>
348
+ </div>
349
+ </div>
350
+ </div>
351
+ <div>
352
+ <div class="flex-container fieldBox field-received_date">
353
+ <label class="inline" for="id_received_date">
354
+ Received date:
355
+ </label>
356
+ <p class="date">
357
+ <input class="vDateField" id="id_received_date" name="received_date" size="10" type="text"/>
358
+ </p>
359
+ </div>
360
+ <div class="help" id="id_received_date_helptext">
361
+ <div>
362
+ </div>
363
+ </div>
364
+ </div>
365
+ <div>
366
+ <div class="flex-container fieldBox field-received_price">
367
+ <label class="inline" for="id_received_price">
368
+ Received price:
369
+ </label>
370
+ <input id="id_received_price" name="received_price" step="0.01" type="number"/>
371
+ </div>
372
+ <div class="help" id="id_received_price_helptext">
373
+ <div>
374
+ </div>
375
+ </div>
376
+ </div>
377
+ </div>
378
+ </div>
379
+ </fieldset>
380
+ <fieldset class="module aligned collapse">
381
+ <h2>
382
+ Handed over
383
+ </h2>
384
+ <div class="form-row field-handed_over_to field-handed_over_date field-handed_over_price">
385
+ <div class="flex-container form-multiline">
386
+ <div>
387
+ <div class="flex-container fieldBox field-handed_over_to">
388
+ <label for="id_handed_over_to">
389
+ Handed over to:
390
+ </label>
391
+ <input class="vTextField" id="id_handed_over_to" maxlength="64" name="handed_over_to" type="text"/>
392
+ </div>
393
+ <div class="help" id="id_handed_over_to_helptext">
394
+ <div>
395
+ </div>
396
+ </div>
397
+ </div>
398
+ <div>
399
+ <div class="flex-container fieldBox field-handed_over_date">
400
+ <label class="inline" for="id_handed_over_date">
401
+ Handed over date:
402
+ </label>
403
+ <p class="date">
404
+ <input class="vDateField" id="id_handed_over_date" name="handed_over_date" size="10" type="text"/>
405
+ </p>
406
+ </div>
407
+ <div class="help" id="id_handed_over_date_helptext">
408
+ <div>
409
+ </div>
410
+ </div>
411
+ </div>
412
+ <div>
413
+ <div class="flex-container fieldBox field-handed_over_price">
414
+ <label class="inline" for="id_handed_over_price">
415
+ Handed over price:
416
+ </label>
417
+ <input id="id_handed_over_price" name="handed_over_price" step="0.01" type="number"/>
418
+ </div>
419
+ <div class="help" id="id_handed_over_price_helptext">
420
+ <div>
421
+ </div>
422
+ </div>
423
+ </div>
424
+ </div>
425
+ </div>
426
+ </fieldset>
427
+ <div class="js-inline-admin-formset inline-group" data-inline-formset='{"name": "#itemimagemodel_set", "options": {"prefix": "itemimagemodel_set", "addText": "Add another Image", "deleteText": "Remove"}}' data-inline-type="tabular" id="itemimagemodel_set-group">
428
+ <div class="tabular inline-related">
429
+ <input id="id_itemimagemodel_set-TOTAL_FORMS" name="itemimagemodel_set-TOTAL_FORMS" type="hidden" value="0"/>
430
+ <input id="id_itemimagemodel_set-INITIAL_FORMS" name="itemimagemodel_set-INITIAL_FORMS" type="hidden" value="0"/>
431
+ <input id="id_itemimagemodel_set-MIN_NUM_FORMS" name="itemimagemodel_set-MIN_NUM_FORMS" type="hidden" value="0"/>
432
+ <input id="id_itemimagemodel_set-MAX_NUM_FORMS" name="itemimagemodel_set-MAX_NUM_FORMS" type="hidden" value="1000"/>
433
+ <fieldset class="module sortable">
434
+ <h2>
435
+ Images
436
+ </h2>
437
+ <table>
438
+ <thead>
439
+ <tr>
440
+ <th class="original">
441
+ </th>
442
+ <th class="column-position hidden">
443
+ Position
444
+ </th>
445
+ <th class="column-preview">
446
+ Preview
447
+ </th>
448
+ <th class="column-image required">
449
+ Image
450
+ <img alt="( )" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title=" " width="10"/>
451
+ </th>
452
+ <th class="column-name">
453
+ Name
454
+ <img alt="(BaseItemAttachmentModel.name.help_text)" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title="BaseItemAttachmentModel.name.help_text" width="10"/>
455
+ </th>
456
+ <th class="column-tags">
457
+ Tags
458
+ <img alt="( )" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title=" " width="10"/>
459
+ </th>
460
+ <th>
461
+ Delete?
462
+ </th>
463
+ </tr>
464
+ </thead>
465
+ <tbody>
466
+ <tr class="form-row empty-form" id="itemimagemodel_set-empty">
467
+ <td class="original">
468
+ <input id="id_itemimagemodel_set-__prefix__-id" name="itemimagemodel_set-__prefix__-id" type="hidden"/>
469
+ <input id="id_itemimagemodel_set-__prefix__-item" name="itemimagemodel_set-__prefix__-item" type="hidden"/>
470
+ </td>
471
+ <td class="field-position hidden">
472
+ <input class="_reorder_" id="id_itemimagemodel_set-__prefix__-position" name="itemimagemodel_set-__prefix__-position" type="hidden" value="0"/>
473
+ </td>
474
+ <td class="field-preview">
475
+ <p>
476
+ -
477
+ </p>
478
+ </td>
479
+ <td class="field-image">
480
+ <input accept="image/*" id="id_itemimagemodel_set-__prefix__-image" name="itemimagemodel_set-__prefix__-image" type="file"/>
481
+ </td>
482
+ <td class="field-name">
483
+ <input class="vTextField" id="id_itemimagemodel_set-__prefix__-name" maxlength="255" name="itemimagemodel_set-__prefix__-name" type="text"/>
484
+ </td>
485
+ <td class="field-tags">
486
+ <div class="related-widget-wrapper" data-model-ref="Image Tags">
487
+ <input autocomplete="off" data-tag-list="[]" data-tag-options='{"case_sensitive": false, "force_lowercase": false, "max_count": 10, "space_delimiter": false, "required": false}' data-tagulous="true" data-theme="admin-autocomplete" id="id_itemimagemodel_set-__prefix__-tags" name="itemimagemodel_set-__prefix__-tags" type="text"/>
488
+ </div>
489
+ </td>
490
+ <td class="delete">
491
+ </td>
492
+ </tr>
493
+ </tbody>
494
+ </table>
495
+ </fieldset>
496
+ </div>
497
+ </div>
498
+ <div class="js-inline-admin-formset inline-group" data-inline-formset='{"name": "#itemfilemodel_set", "options": {"prefix": "itemfilemodel_set", "addText": "Add another File", "deleteText": "Remove"}}' data-inline-type="tabular" id="itemfilemodel_set-group">
499
+ <div class="tabular inline-related">
500
+ <input id="id_itemfilemodel_set-TOTAL_FORMS" name="itemfilemodel_set-TOTAL_FORMS" type="hidden" value="0"/>
501
+ <input id="id_itemfilemodel_set-INITIAL_FORMS" name="itemfilemodel_set-INITIAL_FORMS" type="hidden" value="0"/>
502
+ <input id="id_itemfilemodel_set-MIN_NUM_FORMS" name="itemfilemodel_set-MIN_NUM_FORMS" type="hidden" value="0"/>
503
+ <input id="id_itemfilemodel_set-MAX_NUM_FORMS" name="itemfilemodel_set-MAX_NUM_FORMS" type="hidden" value="1000"/>
504
+ <fieldset class="module sortable">
505
+ <h2>
506
+ Files
507
+ </h2>
508
+ <table>
509
+ <thead>
510
+ <tr>
511
+ <th class="original">
512
+ </th>
513
+ <th class="column-position hidden">
514
+ Position
515
+ </th>
516
+ <th class="column-file required">
517
+ File
518
+ <img alt="( )" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title=" " width="10"/>
519
+ </th>
520
+ <th class="column-name">
521
+ Name
522
+ <img alt="(BaseItemAttachmentModel.name.help_text)" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title="BaseItemAttachmentModel.name.help_text" width="10"/>
523
+ </th>
524
+ <th class="column-tags">
525
+ Tags
526
+ <img alt="( )" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title=" " width="10"/>
527
+ </th>
528
+ <th>
529
+ Delete?
530
+ </th>
531
+ </tr>
532
+ </thead>
533
+ <tbody>
534
+ <tr class="form-row empty-form" id="itemfilemodel_set-empty">
535
+ <td class="original">
536
+ <input id="id_itemfilemodel_set-__prefix__-id" name="itemfilemodel_set-__prefix__-id" type="hidden"/>
537
+ <input id="id_itemfilemodel_set-__prefix__-item" name="itemfilemodel_set-__prefix__-item" type="hidden"/>
538
+ </td>
539
+ <td class="field-position hidden">
540
+ <input class="_reorder_" id="id_itemfilemodel_set-__prefix__-position" name="itemfilemodel_set-__prefix__-position" type="hidden" value="0"/>
541
+ </td>
542
+ <td class="field-file">
543
+ <input id="id_itemfilemodel_set-__prefix__-file" name="itemfilemodel_set-__prefix__-file" type="file"/>
544
+ </td>
545
+ <td class="field-name">
546
+ <input class="vTextField" id="id_itemfilemodel_set-__prefix__-name" maxlength="255" name="itemfilemodel_set-__prefix__-name" type="text"/>
547
+ </td>
548
+ <td class="field-tags">
549
+ <div class="related-widget-wrapper" data-model-ref="File Tags">
550
+ <input autocomplete="off" data-tag-list="[]" data-tag-options='{"case_sensitive": false, "force_lowercase": false, "max_count": 10, "space_delimiter": false, "required": false}' data-tagulous="true" data-theme="admin-autocomplete" id="id_itemfilemodel_set-__prefix__-tags" name="itemfilemodel_set-__prefix__-tags" type="text"/>
551
+ </div>
552
+ </td>
553
+ <td class="delete">
554
+ </td>
555
+ </tr>
556
+ </tbody>
557
+ </table>
558
+ </fieldset>
559
+ </div>
560
+ </div>
561
+ <div class="js-inline-admin-formset inline-group" data-inline-formset='{"name": "#itemlinkmodel_set", "options": {"prefix": "itemlinkmodel_set", "addText": "Add another Link", "deleteText": "Remove"}}' data-inline-type="tabular" id="itemlinkmodel_set-group">
562
+ <div class="tabular inline-related last-related">
563
+ <input id="id_itemlinkmodel_set-TOTAL_FORMS" name="itemlinkmodel_set-TOTAL_FORMS" type="hidden" value="0"/>
564
+ <input id="id_itemlinkmodel_set-INITIAL_FORMS" name="itemlinkmodel_set-INITIAL_FORMS" type="hidden" value="0"/>
565
+ <input id="id_itemlinkmodel_set-MIN_NUM_FORMS" name="itemlinkmodel_set-MIN_NUM_FORMS" type="hidden" value="0"/>
566
+ <input id="id_itemlinkmodel_set-MAX_NUM_FORMS" name="itemlinkmodel_set-MAX_NUM_FORMS" type="hidden" value="1000"/>
567
+ <fieldset class="module sortable">
568
+ <h2>
569
+ Links
570
+ </h2>
571
+ <table>
572
+ <thead>
573
+ <tr>
574
+ <th class="original">
575
+ </th>
576
+ <th class="column-tags">
577
+ Tags
578
+ <img alt="( )" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title=" " width="10"/>
579
+ </th>
580
+ <th class="column-name">
581
+ Name
582
+ <img alt="( )" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title=" " width="10"/>
583
+ </th>
584
+ <th class="column-url required">
585
+ URL
586
+ <img alt="( )" class="help help-tooltip" height="10" src="/static/admin/img/icon-unknown.svg" title=" " width="10"/>
587
+ </th>
588
+ <th class="column-position hidden">
589
+ Position
590
+ </th>
591
+ <th>
592
+ Delete?
593
+ </th>
594
+ </tr>
595
+ </thead>
596
+ <tbody>
597
+ <tr class="form-row empty-form" id="itemlinkmodel_set-empty">
598
+ <td class="original">
599
+ <input id="id_itemlinkmodel_set-__prefix__-id" name="itemlinkmodel_set-__prefix__-id" type="hidden"/>
600
+ <input id="id_itemlinkmodel_set-__prefix__-item" name="itemlinkmodel_set-__prefix__-item" type="hidden"/>
601
+ </td>
602
+ <td class="field-tags">
603
+ <div class="related-widget-wrapper" data-model-ref="Link Tags">
604
+ <input autocomplete="off" data-tag-list="[]" data-tag-options='{"case_sensitive": false, "force_lowercase": false, "max_count": 10, "space_delimiter": false, "required": false}' data-tagulous="true" data-theme="admin-autocomplete" id="id_itemlinkmodel_set-__prefix__-tags" name="itemlinkmodel_set-__prefix__-tags" type="text"/>
605
+ </div>
606
+ </td>
607
+ <td class="field-name">
608
+ <input class="vTextField" id="id_itemlinkmodel_set-__prefix__-name" maxlength="255" name="itemlinkmodel_set-__prefix__-name" type="text"/>
609
+ </td>
610
+ <td class="field-url">
611
+ <input class="vURLField" id="id_itemlinkmodel_set-__prefix__-url" maxlength="200" name="itemlinkmodel_set-__prefix__-url" type="url"/>
612
+ </td>
613
+ <td class="field-position hidden">
614
+ <input class="_reorder_" id="id_itemlinkmodel_set-__prefix__-position" name="itemlinkmodel_set-__prefix__-position" type="hidden" value="0"/>
615
+ </td>
616
+ <td class="delete">
617
+ </td>
618
+ </tr>
619
+ </tbody>
620
+ </table>
621
+ </fieldset>
622
+ </div>
623
+ </div>
624
+ <div class="submit-row">
625
+ <input class="default" name="_save" type="submit" value="Save"/>
626
+ <input name="_addanother" type="submit" value="Save and add another"/>
627
+ <input name="_continue" type="submit" value="Save and continue editing"/>
628
+ </div>
629
+ <script async="" data-model-name="itemmodel" id="django-admin-form-add-constants" src="/static/admin/js/change_form.js">
630
+ </script>
631
+ <script data-prepopulated-fields="[]" id="django-admin-prepopulated-fields-constants" src="/static/admin/js/prepopulate_init.js">
632
+ </script>
633
+ </div>
634
+ </form>
635
+ </div>
636
+ <br class="clear"/>
637
+ </div>