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,517 @@
1
+ # Generated by Django 3.1.13 on 2021-10-09 17:38
2
+
3
+ import uuid
4
+
5
+ import ckeditor_uploader.fields
6
+ import django.db.models.deletion
7
+ import django_tools.serve_media_app.models
8
+ import tagulous.models.fields
9
+ import tagulous.models.models
10
+ from django.conf import settings
11
+ from django.db import migrations, models
12
+
13
+
14
+ class Migration(migrations.Migration):
15
+ dependencies = [
16
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
17
+ ('inventory', '0008_last_check_datetime'),
18
+ ]
19
+
20
+ operations = [
21
+ migrations.CreateModel(
22
+ name='Tagulous_MemoModel_tags',
23
+ fields=[
24
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
25
+ ('name', models.CharField(max_length=255, unique=True)),
26
+ ('slug', models.SlugField()),
27
+ (
28
+ 'count',
29
+ models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use'),
30
+ ),
31
+ (
32
+ 'protected',
33
+ models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0'),
34
+ ),
35
+ ],
36
+ options={
37
+ 'ordering': ('name',),
38
+ 'abstract': False,
39
+ 'unique_together': {('slug',)},
40
+ },
41
+ bases=(tagulous.models.models.BaseTagModel, models.Model),
42
+ ),
43
+ migrations.CreateModel(
44
+ name='Tagulous_MemoLinkModel_tags',
45
+ fields=[
46
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
47
+ ('name', models.CharField(max_length=255, unique=True)),
48
+ ('slug', models.SlugField()),
49
+ (
50
+ 'count',
51
+ models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use'),
52
+ ),
53
+ (
54
+ 'protected',
55
+ models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0'),
56
+ ),
57
+ ],
58
+ options={
59
+ 'ordering': ('name',),
60
+ 'abstract': False,
61
+ 'unique_together': {('slug',)},
62
+ },
63
+ bases=(tagulous.models.models.BaseTagModel, models.Model),
64
+ ),
65
+ migrations.CreateModel(
66
+ name='Tagulous_MemoImageModel_tags',
67
+ fields=[
68
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
69
+ ('name', models.CharField(max_length=255, unique=True)),
70
+ ('slug', models.SlugField()),
71
+ (
72
+ 'count',
73
+ models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use'),
74
+ ),
75
+ (
76
+ 'protected',
77
+ models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0'),
78
+ ),
79
+ ],
80
+ options={
81
+ 'ordering': ('name',),
82
+ 'abstract': False,
83
+ 'unique_together': {('slug',)},
84
+ },
85
+ bases=(tagulous.models.models.BaseTagModel, models.Model),
86
+ ),
87
+ migrations.CreateModel(
88
+ name='Tagulous_MemoFileModel_tags',
89
+ fields=[
90
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
91
+ ('name', models.CharField(max_length=255, unique=True)),
92
+ ('slug', models.SlugField()),
93
+ (
94
+ 'count',
95
+ models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use'),
96
+ ),
97
+ (
98
+ 'protected',
99
+ models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0'),
100
+ ),
101
+ ],
102
+ options={
103
+ 'ordering': ('name',),
104
+ 'abstract': False,
105
+ 'unique_together': {('slug',)},
106
+ },
107
+ bases=(tagulous.models.models.BaseTagModel, models.Model),
108
+ ),
109
+ migrations.CreateModel(
110
+ name='Tagulous_BaseMemoAttachmentModel_tags',
111
+ fields=[
112
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
113
+ ('name', models.CharField(max_length=255, unique=True)),
114
+ ('slug', models.SlugField()),
115
+ (
116
+ 'count',
117
+ models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use'),
118
+ ),
119
+ (
120
+ 'protected',
121
+ models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0'),
122
+ ),
123
+ ],
124
+ options={
125
+ 'ordering': ('name',),
126
+ 'abstract': False,
127
+ 'unique_together': {('slug',)},
128
+ },
129
+ bases=(tagulous.models.models.BaseTagModel, models.Model),
130
+ ),
131
+ migrations.CreateModel(
132
+ name='Tagulous_BaseAttachmentModel_tags',
133
+ fields=[
134
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
135
+ ('name', models.CharField(max_length=255, unique=True)),
136
+ ('slug', models.SlugField()),
137
+ (
138
+ 'count',
139
+ models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use'),
140
+ ),
141
+ (
142
+ 'protected',
143
+ models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0'),
144
+ ),
145
+ ],
146
+ options={
147
+ 'ordering': ('name',),
148
+ 'abstract': False,
149
+ 'unique_together': {('slug',)},
150
+ },
151
+ bases=(tagulous.models.models.BaseTagModel, models.Model),
152
+ ),
153
+ migrations.CreateModel(
154
+ name='MemoModel',
155
+ fields=[
156
+ (
157
+ 'create_dt',
158
+ models.DateTimeField(
159
+ blank=True,
160
+ editable=False,
161
+ help_text='ModelTimetrackingMixin.create_dt.help_text',
162
+ null=True,
163
+ verbose_name='ModelTimetrackingMixin.create_dt.verbose_name',
164
+ ),
165
+ ),
166
+ (
167
+ 'update_dt',
168
+ models.DateTimeField(
169
+ blank=True,
170
+ editable=False,
171
+ help_text='ModelTimetrackingMixin.update_dt.help_text',
172
+ null=True,
173
+ verbose_name='ModelTimetrackingMixin.update_dt.verbose_name',
174
+ ),
175
+ ),
176
+ (
177
+ 'id',
178
+ models.UUIDField(
179
+ default=uuid.uuid4,
180
+ editable=False,
181
+ help_text='BaseModel.id.help_text',
182
+ primary_key=True,
183
+ serialize=False,
184
+ verbose_name='BaseModel.id.verbose_name',
185
+ ),
186
+ ),
187
+ (
188
+ 'name',
189
+ models.CharField(
190
+ help_text='BaseModel.name.help_text',
191
+ max_length=255,
192
+ verbose_name='BaseModel.name.verbose_name',
193
+ ),
194
+ ),
195
+ (
196
+ 'memo',
197
+ ckeditor_uploader.fields.RichTextUploadingField(
198
+ blank=True,
199
+ help_text='MemoModel.description.help_text',
200
+ null=True,
201
+ verbose_name='MemoModel.description.verbose_name',
202
+ ),
203
+ ),
204
+ (
205
+ 'tags',
206
+ tagulous.models.fields.TagField(
207
+ _set_tag_meta=True,
208
+ blank=True,
209
+ case_sensitive=False,
210
+ force_lowercase=False,
211
+ help_text='BaseModel.tags.help_text',
212
+ max_count=10,
213
+ space_delimiter=False,
214
+ to='inventory.Tagulous_MemoModel_tags',
215
+ verbose_name='BaseModel.tags.verbose_name',
216
+ ),
217
+ ),
218
+ (
219
+ 'user',
220
+ models.ForeignKey(
221
+ editable=False,
222
+ help_text='BaseModel.user.help_text',
223
+ on_delete=django.db.models.deletion.CASCADE,
224
+ related_name='+',
225
+ to=settings.AUTH_USER_MODEL,
226
+ verbose_name='BaseModel.user.verbose_name',
227
+ ),
228
+ ),
229
+ ],
230
+ options={
231
+ 'verbose_name': 'MemoModel.verbose_name',
232
+ 'verbose_name_plural': 'MemoModel.verbose_name_plural',
233
+ },
234
+ ),
235
+ migrations.CreateModel(
236
+ name='MemoLinkModel',
237
+ fields=[
238
+ (
239
+ 'create_dt',
240
+ models.DateTimeField(
241
+ blank=True,
242
+ editable=False,
243
+ help_text='ModelTimetrackingMixin.create_dt.help_text',
244
+ null=True,
245
+ verbose_name='ModelTimetrackingMixin.create_dt.verbose_name',
246
+ ),
247
+ ),
248
+ (
249
+ 'update_dt',
250
+ models.DateTimeField(
251
+ blank=True,
252
+ editable=False,
253
+ help_text='ModelTimetrackingMixin.update_dt.help_text',
254
+ null=True,
255
+ verbose_name='ModelTimetrackingMixin.update_dt.verbose_name',
256
+ ),
257
+ ),
258
+ (
259
+ 'id',
260
+ models.UUIDField(
261
+ default=uuid.uuid4,
262
+ editable=False,
263
+ help_text='BaseModel.id.help_text',
264
+ primary_key=True,
265
+ serialize=False,
266
+ verbose_name='BaseModel.id.verbose_name',
267
+ ),
268
+ ),
269
+ (
270
+ 'name',
271
+ models.CharField(
272
+ blank=True,
273
+ help_text='BaseLink.name.help_text',
274
+ max_length=255,
275
+ null=True,
276
+ verbose_name='BaseLink.name.verbose_name',
277
+ ),
278
+ ),
279
+ ('url', models.URLField(help_text='Link.url.help_text', verbose_name='Link.url.verbose_name')),
280
+ (
281
+ 'last_check',
282
+ models.DateTimeField(
283
+ blank=True,
284
+ editable=False,
285
+ help_text='Link.url.help_text',
286
+ null=True,
287
+ verbose_name='Link.url.verbose_name',
288
+ ),
289
+ ),
290
+ (
291
+ 'status_code',
292
+ models.PositiveSmallIntegerField(
293
+ blank=True,
294
+ editable=False,
295
+ help_text='Link.status_code.help_text',
296
+ null=True,
297
+ verbose_name='Link.status_code.verbose_name',
298
+ ),
299
+ ),
300
+ (
301
+ 'page_title',
302
+ models.CharField(
303
+ blank=True,
304
+ editable=False,
305
+ help_text='Link.page_title.help_text',
306
+ max_length=255,
307
+ null=True,
308
+ verbose_name='Link.page_title.verbose_name',
309
+ ),
310
+ ),
311
+ ('position', models.PositiveSmallIntegerField(default=0)),
312
+ ('memo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventory.memomodel')),
313
+ (
314
+ 'tags',
315
+ tagulous.models.fields.TagField(
316
+ _set_tag_meta=True,
317
+ blank=True,
318
+ case_sensitive=False,
319
+ force_lowercase=False,
320
+ help_text='BaseModel.tags.help_text',
321
+ max_count=10,
322
+ space_delimiter=False,
323
+ to='inventory.Tagulous_MemoLinkModel_tags',
324
+ verbose_name='BaseModel.tags.verbose_name',
325
+ ),
326
+ ),
327
+ (
328
+ 'user',
329
+ models.ForeignKey(
330
+ editable=False,
331
+ help_text='BaseModel.user.help_text',
332
+ on_delete=django.db.models.deletion.CASCADE,
333
+ related_name='+',
334
+ to=settings.AUTH_USER_MODEL,
335
+ verbose_name='BaseModel.user.verbose_name',
336
+ ),
337
+ ),
338
+ ],
339
+ options={
340
+ 'verbose_name': 'MemoLinkModel.verbose_name',
341
+ 'verbose_name_plural': 'MemoLinkModel.verbose_name_plural',
342
+ 'ordering': ('position',),
343
+ },
344
+ ),
345
+ migrations.CreateModel(
346
+ name='MemoImageModel',
347
+ fields=[
348
+ (
349
+ 'create_dt',
350
+ models.DateTimeField(
351
+ blank=True,
352
+ editable=False,
353
+ help_text='ModelTimetrackingMixin.create_dt.help_text',
354
+ null=True,
355
+ verbose_name='ModelTimetrackingMixin.create_dt.verbose_name',
356
+ ),
357
+ ),
358
+ (
359
+ 'update_dt',
360
+ models.DateTimeField(
361
+ blank=True,
362
+ editable=False,
363
+ help_text='ModelTimetrackingMixin.update_dt.help_text',
364
+ null=True,
365
+ verbose_name='ModelTimetrackingMixin.update_dt.verbose_name',
366
+ ),
367
+ ),
368
+ (
369
+ 'id',
370
+ models.UUIDField(
371
+ default=uuid.uuid4,
372
+ editable=False,
373
+ help_text='BaseModel.id.help_text',
374
+ primary_key=True,
375
+ serialize=False,
376
+ verbose_name='BaseModel.id.verbose_name',
377
+ ),
378
+ ),
379
+ (
380
+ 'name',
381
+ models.CharField(
382
+ blank=True,
383
+ help_text='BaseItemAttachmentModel.name.help_text',
384
+ max_length=255,
385
+ null=True,
386
+ verbose_name='BaseItemAttachmentModel.name.verbose_name',
387
+ ),
388
+ ),
389
+ ('position', models.PositiveSmallIntegerField(default=0)),
390
+ (
391
+ 'image',
392
+ models.ImageField(
393
+ help_text='MemoImageModel.image.help_text',
394
+ upload_to=django_tools.serve_media_app.models.user_directory_path,
395
+ verbose_name='MemoImageModel.image.verbose_name',
396
+ ),
397
+ ),
398
+ ('memo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventory.memomodel')),
399
+ (
400
+ 'tags',
401
+ tagulous.models.fields.TagField(
402
+ _set_tag_meta=True,
403
+ blank=True,
404
+ case_sensitive=False,
405
+ force_lowercase=False,
406
+ help_text='BaseModel.tags.help_text',
407
+ max_count=10,
408
+ space_delimiter=False,
409
+ to='inventory.Tagulous_MemoImageModel_tags',
410
+ verbose_name='BaseModel.tags.verbose_name',
411
+ ),
412
+ ),
413
+ (
414
+ 'user',
415
+ models.ForeignKey(
416
+ editable=False,
417
+ help_text='BaseModel.user.help_text',
418
+ on_delete=django.db.models.deletion.CASCADE,
419
+ related_name='+',
420
+ to=settings.AUTH_USER_MODEL,
421
+ verbose_name='BaseModel.user.verbose_name',
422
+ ),
423
+ ),
424
+ ],
425
+ options={
426
+ 'verbose_name': 'MemoImageModel.verbose_name',
427
+ 'verbose_name_plural': 'MemoImageModel.verbose_name_plural',
428
+ 'ordering': ('position',),
429
+ },
430
+ ),
431
+ migrations.CreateModel(
432
+ name='MemoFileModel',
433
+ fields=[
434
+ (
435
+ 'create_dt',
436
+ models.DateTimeField(
437
+ blank=True,
438
+ editable=False,
439
+ help_text='ModelTimetrackingMixin.create_dt.help_text',
440
+ null=True,
441
+ verbose_name='ModelTimetrackingMixin.create_dt.verbose_name',
442
+ ),
443
+ ),
444
+ (
445
+ 'update_dt',
446
+ models.DateTimeField(
447
+ blank=True,
448
+ editable=False,
449
+ help_text='ModelTimetrackingMixin.update_dt.help_text',
450
+ null=True,
451
+ verbose_name='ModelTimetrackingMixin.update_dt.verbose_name',
452
+ ),
453
+ ),
454
+ (
455
+ 'id',
456
+ models.UUIDField(
457
+ default=uuid.uuid4,
458
+ editable=False,
459
+ help_text='BaseModel.id.help_text',
460
+ primary_key=True,
461
+ serialize=False,
462
+ verbose_name='BaseModel.id.verbose_name',
463
+ ),
464
+ ),
465
+ (
466
+ 'name',
467
+ models.CharField(
468
+ blank=True,
469
+ help_text='BaseItemAttachmentModel.name.help_text',
470
+ max_length=255,
471
+ null=True,
472
+ verbose_name='BaseItemAttachmentModel.name.verbose_name',
473
+ ),
474
+ ),
475
+ ('position', models.PositiveSmallIntegerField(default=0)),
476
+ (
477
+ 'file',
478
+ models.FileField(
479
+ help_text='MemoFileModel.file.help_text',
480
+ upload_to=django_tools.serve_media_app.models.user_directory_path,
481
+ verbose_name='MemoFileModel.file.verbose_name',
482
+ ),
483
+ ),
484
+ ('memo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='inventory.memomodel')),
485
+ (
486
+ 'tags',
487
+ tagulous.models.fields.TagField(
488
+ _set_tag_meta=True,
489
+ blank=True,
490
+ case_sensitive=False,
491
+ force_lowercase=False,
492
+ help_text='BaseModel.tags.help_text',
493
+ max_count=10,
494
+ space_delimiter=False,
495
+ to='inventory.Tagulous_MemoFileModel_tags',
496
+ verbose_name='BaseModel.tags.verbose_name',
497
+ ),
498
+ ),
499
+ (
500
+ 'user',
501
+ models.ForeignKey(
502
+ editable=False,
503
+ help_text='BaseModel.user.help_text',
504
+ on_delete=django.db.models.deletion.CASCADE,
505
+ related_name='+',
506
+ to=settings.AUTH_USER_MODEL,
507
+ verbose_name='BaseModel.user.verbose_name',
508
+ ),
509
+ ),
510
+ ],
511
+ options={
512
+ 'verbose_name': 'MemoFileModel.verbose_name',
513
+ 'verbose_name_plural': 'MemoFileModel.verbose_name_plural',
514
+ 'ordering': ('position',),
515
+ },
516
+ ),
517
+ ]
@@ -0,0 +1,37 @@
1
+ # Generated by Django 3.1.13 on 2021-11-22 17:47
2
+
3
+ import django_tools.model_version_protect.models
4
+ from django.db import migrations
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+ dependencies = [
9
+ ('inventory', '0009_add_memo'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name='itemmodel',
15
+ name='version',
16
+ field=django_tools.model_version_protect.models.VersionModelField(
17
+ default=0,
18
+ help_text='Internal version number of this entry. Used to protect the overwriting of an older entry.',
19
+ ),
20
+ ),
21
+ migrations.AddField(
22
+ model_name='locationmodel',
23
+ name='version',
24
+ field=django_tools.model_version_protect.models.VersionModelField(
25
+ default=0,
26
+ help_text='Internal version number of this entry. Used to protect the overwriting of an older entry.',
27
+ ),
28
+ ),
29
+ migrations.AddField(
30
+ model_name='memomodel',
31
+ name='version',
32
+ field=django_tools.model_version_protect.models.VersionModelField(
33
+ default=0,
34
+ help_text='Internal version number of this entry. Used to protect the overwriting of an older entry.',
35
+ ),
36
+ ),
37
+ ]
@@ -0,0 +1,97 @@
1
+ # Generated by Django 3.2.14 on 2022-07-21 18:36
2
+
3
+ import django.db.models.deletion
4
+ import tagulous.models.models
5
+ from django.db import migrations, models
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+ dependencies = [
10
+ ('inventory', '0010_version_protect_models'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AddField(
15
+ model_name='itemmodel',
16
+ name='level',
17
+ field=models.PositiveSmallIntegerField(blank=True, editable=False, null=True),
18
+ ),
19
+ migrations.AddField(
20
+ model_name='itemmodel',
21
+ name='path',
22
+ field=models.JSONField(blank=True, editable=False, null=True),
23
+ ),
24
+ migrations.AddField(
25
+ model_name='itemmodel',
26
+ name='path_str',
27
+ field=models.TextField(blank=True, editable=False, null=True),
28
+ ),
29
+ migrations.AddField(
30
+ model_name='locationmodel',
31
+ name='level',
32
+ field=models.PositiveSmallIntegerField(blank=True, editable=False, null=True),
33
+ ),
34
+ migrations.AddField(
35
+ model_name='locationmodel',
36
+ name='path',
37
+ field=models.JSONField(blank=True, editable=False, null=True),
38
+ ),
39
+ migrations.AddField(
40
+ model_name='locationmodel',
41
+ name='path_str',
42
+ field=models.TextField(blank=True, editable=False, null=True),
43
+ ),
44
+ migrations.AlterField(
45
+ model_name='itemmodel',
46
+ name='parent',
47
+ field=models.ForeignKey(
48
+ blank=True,
49
+ help_text='LocationModel.parent.help_text',
50
+ null=True,
51
+ on_delete=django.db.models.deletion.SET_NULL,
52
+ to='inventory.itemmodel',
53
+ verbose_name='LocationModel.parent.verbose_name',
54
+ ),
55
+ ),
56
+ migrations.CreateModel(
57
+ name='Tagulous_BaseParentTreeModel_tags',
58
+ fields=[
59
+ (
60
+ 'id',
61
+ models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
62
+ ),
63
+ ('name', models.CharField(max_length=255, unique=True)),
64
+ ('slug', models.SlugField()),
65
+ (
66
+ 'count',
67
+ models.IntegerField(default=0, help_text='Internal counter of how many times this tag is in use'),
68
+ ),
69
+ (
70
+ 'protected',
71
+ models.BooleanField(default=False, help_text='Will not be deleted when the count reaches 0'),
72
+ ),
73
+ ],
74
+ options={
75
+ 'ordering': ('name',),
76
+ 'abstract': False,
77
+ 'unique_together': {('slug',)},
78
+ },
79
+ bases=(tagulous.models.models.BaseTagModel, models.Model),
80
+ ),
81
+ migrations.AlterModelOptions(
82
+ name='itemmodel',
83
+ options={
84
+ 'ordering': ('path_str',),
85
+ 'verbose_name': 'ItemModel.verbose_name',
86
+ 'verbose_name_plural': 'ItemModel.verbose_name_plural',
87
+ },
88
+ ),
89
+ migrations.AlterModelOptions(
90
+ name='locationmodel',
91
+ options={
92
+ 'ordering': ('path_str',),
93
+ 'verbose_name': 'LocationModel.verbose_name',
94
+ 'verbose_name_plural': 'LocationModel.verbose_name_plural',
95
+ },
96
+ ),
97
+ ]
@@ -0,0 +1,20 @@
1
+ # Generated by Django 3.2.14 on 2022-07-21 18:36
2
+ from django.core import management
3
+ from django.db import migrations
4
+
5
+ from inventory.management.commands import tree
6
+
7
+
8
+ def forward_code(apps, schema_editor):
9
+ management.call_command(tree.Command(), model_name='itemmodel')
10
+ management.call_command(tree.Command(), model_name='locationmodel')
11
+
12
+
13
+ class Migration(migrations.Migration):
14
+ dependencies = [
15
+ ('inventory', '0011_parent_tree1'),
16
+ ]
17
+
18
+ operations = [
19
+ migrations.RunPython(forward_code, reverse_code=migrations.RunPython.noop),
20
+ ]