PyInventory 0.19.3__tar.gz → 0.20.1__tar.gz

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 (124) hide show
  1. {PyInventory-0.19.3 → pyinventory-0.20.1}/.editorconfig +4 -1
  2. {PyInventory-0.19.3 → pyinventory-0.20.1}/.flake8 +1 -1
  3. {PyInventory-0.19.3 → pyinventory-0.20.1}/.github/workflows/tests.yml +9 -10
  4. {PyInventory-0.19.3 → pyinventory-0.20.1}/.gitignore +2 -0
  5. pyinventory-0.20.1/.pre-commit-config.yaml +12 -0
  6. pyinventory-0.20.1/.pre-commit-hooks.yaml +13 -0
  7. {PyInventory-0.19.3 → pyinventory-0.20.1}/PKG-INFO +27 -11
  8. {PyInventory-0.19.3 → pyinventory-0.20.1}/PyInventory.egg-info/PKG-INFO +27 -11
  9. {PyInventory-0.19.3 → pyinventory-0.20.1}/PyInventory.egg-info/SOURCES.txt +6 -1
  10. {PyInventory-0.19.3 → pyinventory-0.20.1}/PyInventory.egg-info/requires.txt +10 -6
  11. {PyInventory-0.19.3 → pyinventory-0.20.1}/README.md +15 -3
  12. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/__init__.py +2 -2
  13. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0001_initial.py +3 -3
  14. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0003_auto_20201024_1830.py +3 -2
  15. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0009_add_memo.py +2 -2
  16. pyinventory-0.20.1/inventory/migrations/0014_alter_itemmodel_description_and_more.py +44 -0
  17. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/models/item.py +2 -3
  18. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/models/location.py +2 -3
  19. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/models/memo.py +3 -4
  20. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/test_admin_location_empty_change_list_1.snapshot.html +11 -4
  21. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/test_management_command_tree.py +5 -5
  22. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/settings/local.py +0 -3
  23. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/settings/prod.py +31 -161
  24. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/settings/tests.py +2 -0
  25. pyinventory-0.20.1/inventory_project/tests/__init__.py +31 -0
  26. pyinventory-0.20.1/inventory_project/tests/test_admin.py +62 -0
  27. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_admin_item_auto_group_items_1.snapshot.html +30 -11
  28. pyinventory-0.20.1/inventory_project/tests/test_admin_item_normal_user_create_minimal_item_1.snapshot.html +659 -0
  29. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_admin_item_normal_user_create_minimal_item_2.snapshot.html +322 -301
  30. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_admin_memo_normal_user_create_minimal_item_1.snapshot.html +101 -95
  31. pyinventory-0.20.1/inventory_project/tests/test_admin_superuser_admin_index_1.snapshot.html +124 -0
  32. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_inventory_commands.py +1 -5
  33. PyInventory-0.19.3/inventory_project/tests/test_inventory_commands_help_django4.2.snapshot.txt → pyinventory-0.20.1/inventory_project/tests/test_inventory_commands_help_1.snapshot.txt +3 -7
  34. pyinventory-0.20.1/inventory_project/tests/test_models_item.py +23 -0
  35. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_project_setup.py +2 -1
  36. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/urls.py +1 -1
  37. {PyInventory-0.19.3 → pyinventory-0.20.1}/manage.py +27 -9
  38. {PyInventory-0.19.3 → pyinventory-0.20.1}/pyproject.toml +40 -20
  39. pyinventory-0.20.1/requirements.dev.txt +1490 -0
  40. pyinventory-0.20.1/requirements.txt +340 -0
  41. PyInventory-0.19.3/inventory_project/tests/test_admin.py +0 -15
  42. PyInventory-0.19.3/inventory_project/tests/test_admin_item_normal_user_create_minimal_item_1.snapshot.html +0 -637
  43. PyInventory-0.19.3/inventory_project/tests/test_models_item.py +0 -24
  44. PyInventory-0.19.3/requirements.dev.txt +0 -1202
  45. PyInventory-0.19.3/requirements.txt +0 -381
  46. {PyInventory-0.19.3 → pyinventory-0.20.1}/.travis.yml +0 -0
  47. {PyInventory-0.19.3 → pyinventory-0.20.1}/AUTHORS +0 -0
  48. {PyInventory-0.19.3 → pyinventory-0.20.1}/LICENSE +0 -0
  49. {PyInventory-0.19.3 → pyinventory-0.20.1}/PyInventory.egg-info/dependency_links.txt +0 -0
  50. {PyInventory-0.19.3 → pyinventory-0.20.1}/PyInventory.egg-info/entry_points.txt +0 -0
  51. {PyInventory-0.19.3 → pyinventory-0.20.1}/PyInventory.egg-info/top_level.txt +0 -0
  52. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/admin/__init__.py +0 -0
  53. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/admin/base.py +0 -0
  54. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/admin/item.py +0 -0
  55. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/admin/location.py +0 -0
  56. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/admin/memo.py +0 -0
  57. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/admin/tagulous_fix.py +0 -0
  58. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/apps.py +0 -0
  59. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/ckeditor_upload.py +0 -0
  60. /PyInventory-0.19.3/inventory/management/__init__.py → /pyinventory-0.20.1/inventory/constants.py +0 -0
  61. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/context_processors.py +0 -0
  62. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/forms.py +0 -0
  63. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/locale/ca/LC_MESSAGES/django.mo +0 -0
  64. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/locale/ca/LC_MESSAGES/django.po +0 -0
  65. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/locale/de/LC_MESSAGES/django.mo +0 -0
  66. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/locale/de/LC_MESSAGES/django.po +0 -0
  67. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/locale/en/LC_MESSAGES/django.mo +0 -0
  68. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/locale/en/LC_MESSAGES/django.po +0 -0
  69. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/locale/es/LC_MESSAGES/django.mo +0 -0
  70. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/locale/es/LC_MESSAGES/django.po +0 -0
  71. {PyInventory-0.19.3/inventory/management/commands → pyinventory-0.20.1/inventory/management}/__init__.py +0 -0
  72. {PyInventory-0.19.3/inventory/migrations → pyinventory-0.20.1/inventory/management/commands}/__init__.py +0 -0
  73. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/management/commands/seed_data.py +0 -0
  74. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/management/commands/tree.py +0 -0
  75. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/middlewares.py +0 -0
  76. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0002_auto_20201017_2211.py +0 -0
  77. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0004_item_user_images.py +0 -0
  78. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0005_serve_uploads_by_django_tools.py +0 -0
  79. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0006_refactor_image_model.py +0 -0
  80. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0007_add_file_attachment.py +0 -0
  81. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0008_last_check_datetime.py +0 -0
  82. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0010_version_protect_models.py +0 -0
  83. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0011_parent_tree1.py +0 -0
  84. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0012_parent_tree2.py +0 -0
  85. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/migrations/0013_alter_itemmodel_location.py +0 -0
  86. {PyInventory-0.19.3/inventory/tests → pyinventory-0.20.1/inventory/migrations}/__init__.py +0 -0
  87. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/models/__init__.py +0 -0
  88. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/models/base.py +0 -0
  89. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/models/links.py +0 -0
  90. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/parent_tree.py +0 -0
  91. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/permissions.py +0 -0
  92. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/request_dict.py +0 -0
  93. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/signals.py +0 -0
  94. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/string_utils.py +0 -0
  95. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/templates/admin/item/related_items.html +0 -0
  96. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/templates/admin/location/items.html +0 -0
  97. {PyInventory-0.19.3/inventory/tests/fixtures → pyinventory-0.20.1/inventory/tests}/__init__.py +0 -0
  98. {PyInventory-0.19.3/inventory_project/settings → pyinventory-0.20.1/inventory/tests/fixtures}/__init__.py +0 -0
  99. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/fixtures/users.py +0 -0
  100. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/test_admin_location.py +0 -0
  101. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/test_item_images.py +0 -0
  102. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/test_link_model.py +0 -0
  103. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/test_management_command_seed_data.py +0 -0
  104. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/test_parent_tree.py +0 -0
  105. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory/tests/test_parent_tree_model.py +0 -0
  106. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/__init__.py +0 -0
  107. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/__main__.py +0 -0
  108. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/manage.py +0 -0
  109. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/middlewares.py +0 -0
  110. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/publish.py +0 -0
  111. {PyInventory-0.19.3/inventory_project/tests → pyinventory-0.20.1/inventory_project/settings}/__init__.py +0 -0
  112. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/templates/admin/base_site.html +0 -0
  113. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/templates/admin/login.html +0 -0
  114. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/fixtures.py +0 -0
  115. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/mocks.py +0 -0
  116. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/playwright_utils.py +0 -0
  117. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_admin_item.py +0 -0
  118. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_admin_item_login_1.snapshot.html +0 -0
  119. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_admin_memo.py +0 -0
  120. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_migrations.py +0 -0
  121. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_playwright_admin.py +0 -0
  122. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/tests/test_readme_history.py +0 -0
  123. {PyInventory-0.19.3 → pyinventory-0.20.1}/inventory_project/wsgi.py +0 -0
  124. {PyInventory-0.19.3 → pyinventory-0.20.1}/setup.cfg +0 -0
@@ -9,6 +9,9 @@ charset = utf-8
9
9
  trim_trailing_whitespace = true
10
10
  insert_final_newline = true
11
11
 
12
+ [*.{html,css,js}]
13
+ insert_final_newline = false
14
+
12
15
  [*.py]
13
16
  max_line_length = 119
14
17
 
@@ -16,5 +19,5 @@ max_line_length = 119
16
19
  indent_style = tab
17
20
  insert_final_newline = false
18
21
 
19
- [*.yml]
22
+ [{*.yaml,*.yml}]
20
23
  indent_size = 2
@@ -2,6 +2,6 @@
2
2
  # Move to pyproject.toml after: https://github.com/PyCQA/flake8/issues/234
3
3
  #
4
4
  [flake8]
5
- exclude = .*, dist, htmlcov, */migrations/*, volumes
5
+ exclude = .*, dist, htmlcov, */migrations/*
6
6
  #ignore = E402
7
7
  max-line-length = 119
@@ -17,10 +17,7 @@ jobs:
17
17
  strategy:
18
18
  fail-fast: false
19
19
  matrix:
20
- python-version: ["3.11", "3.10", "3.9"]
21
- env:
22
- PYTHONUNBUFFERED: 1
23
- PYTHONWARNINGS: always
20
+ python-version: ['3.12', '3.11']
24
21
  steps:
25
22
  - name: Checkout
26
23
  run: |
@@ -30,7 +27,7 @@ jobs:
30
27
  git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
31
28
 
32
29
  - name: 'Set up Python ${{ matrix.python-version }}'
33
- uses: actions/setup-python@v4
30
+ uses: actions/setup-python@v5
34
31
  # https://github.com/marketplace/actions/setup-python
35
32
  with:
36
33
  python-version: '${{ matrix.python-version }}'
@@ -50,17 +47,19 @@ jobs:
50
47
  run: |
51
48
  ./manage.py --help
52
49
 
53
- # FIXME:
54
- #- name: 'Safety'
55
- # run: |
56
- # ./manage.py safety
50
+ - name: 'pip-audit'
51
+ run: |
52
+ ./manage.py pip_audit
57
53
 
58
54
  - name: 'Python ${{ matrix.python-version }}'
55
+ env:
56
+ PYTHONUNBUFFERED: 1
57
+ PYTHONWARNINGS: always
59
58
  run: |
60
59
  ./manage.py tox -e $(echo py${{ matrix.python-version }} | tr -d .)
61
60
 
62
61
  - name: 'Upload coverage report'
63
- uses: codecov/codecov-action@v3
62
+ uses: codecov/codecov-action@v4
64
63
  # https://github.com/marketplace/actions/codecov
65
64
  with:
66
65
  fail_ci_if_error: false
@@ -9,6 +9,8 @@ __pycache__
9
9
  !.editorconfig
10
10
  !.flake8
11
11
  !.gitignore
12
+ !.pre-commit-config.yaml
13
+ !.pre-commit-hooks.yaml
12
14
  !.gitkeep
13
15
 
14
16
  # for django-dbbackup
@@ -0,0 +1,12 @@
1
+ # pre-commit plugin configuration
2
+ # See https://pre-commit.com for more information
3
+ default_install_hook_types:
4
+ - pre-commit
5
+ - post-rewrite
6
+ - pre-push
7
+
8
+ repos:
9
+ - repo: https://github.com/jedie/cli-base-utilities
10
+ rev: v0.11.0
11
+ hooks:
12
+ - id: update-readme-history
@@ -0,0 +1,13 @@
1
+ # https://pre-commit.com/#creating-new-hooks
2
+ - id: update-readme-history
3
+ name: cli-base-utilities
4
+ description: >-
5
+ Update history in README.md from git log.
6
+ entry: "python -m cli_base update-readme-history -v"
7
+ language: python
8
+ language_version: python3
9
+ require_serial: true
10
+ pass_filenames: false
11
+ always_run: true
12
+ verbose: true
13
+ stages: [pre-commit, post-rewrite, pre-push]
@@ -1,24 +1,24 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyInventory
3
- Version: 0.19.3
3
+ Version: 0.20.1
4
4
  Summary: Web based management to catalog things including state and location etc. using Python/Django.
5
5
  Author-email: Jens Diemer <PyInventory@jensdiemer.de>
6
6
  License: GPL-3.0-or-later
7
7
  Project-URL: Documentation, https://github.com/jedie/PyInventory
8
8
  Project-URL: Source, https://github.com/jedie/PyInventory
9
9
  Keywords: inventory,django
10
- Requires-Python: <4,>=3.9
10
+ Requires-Python: >=3.11
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  License-File: AUTHORS
14
+ Requires-Dist: django
14
15
  Requires-Dist: colorlog
15
16
  Requires-Dist: gunicorn
16
- Requires-Dist: django
17
17
  Requires-Dist: django-import-export
18
18
  Requires-Dist: django-dbbackup
19
19
  Requires-Dist: django-tools
20
20
  Requires-Dist: django-reversion-compare
21
- Requires-Dist: django-ckeditor
21
+ Requires-Dist: django-tinymce
22
22
  Requires-Dist: django-tagulous
23
23
  Requires-Dist: django-admin-sortable2
24
24
  Requires-Dist: pillow
@@ -27,10 +27,12 @@ Requires-Dist: django-debug-toolbar
27
27
  Requires-Dist: bx_py_utils
28
28
  Requires-Dist: bx_django_utils
29
29
  Provides-Extra: dev
30
- Requires-Dist: manage_django_project>=0.6.4; extra == "dev"
30
+ Requires-Dist: django-debug-toolbar; extra == "dev"
31
+ Requires-Dist: manage_django_project; extra == "dev"
31
32
  Requires-Dist: cmd2_ext_test; extra == "dev"
32
33
  Requires-Dist: playwright; extra == "dev"
33
34
  Requires-Dist: beautifulsoup4; extra == "dev"
35
+ Requires-Dist: lxml; extra == "dev"
34
36
  Requires-Dist: tblib; extra == "dev"
35
37
  Requires-Dist: pip-tools; extra == "dev"
36
38
  Requires-Dist: tox; extra == "dev"
@@ -38,18 +40,20 @@ Requires-Dist: coverage; extra == "dev"
38
40
  Requires-Dist: autopep8; extra == "dev"
39
41
  Requires-Dist: pyupgrade; extra == "dev"
40
42
  Requires-Dist: flake8; extra == "dev"
43
+ Requires-Dist: flake8-bugbear; extra == "dev"
41
44
  Requires-Dist: pyflakes; extra == "dev"
42
45
  Requires-Dist: codespell; extra == "dev"
43
46
  Requires-Dist: EditorConfig; extra == "dev"
44
- Requires-Dist: safety; extra == "dev"
47
+ Requires-Dist: pip-audit; extra == "dev"
45
48
  Requires-Dist: mypy; extra == "dev"
46
49
  Requires-Dist: twine; extra == "dev"
50
+ Requires-Dist: typeguard; extra == "dev"
51
+ Requires-Dist: pre-commit; extra == "dev"
47
52
  Requires-Dist: darker[color,flynt,isort]; extra == "dev"
48
- Requires-Dist: tomli; extra == "dev"
49
- Requires-Dist: typing-extensions>=3.10; extra == "dev"
50
53
  Requires-Dist: model_bakery; extra == "dev"
51
54
  Requires-Dist: requests-mock; extra == "dev"
52
55
  Requires-Dist: django-override-storage; extra == "dev"
56
+ Requires-Dist: backports.tarfile; extra == "dev"
53
57
 
54
58
  # PyInventory
55
59
 
@@ -196,6 +200,11 @@ please use YunoHost ;)
196
200
  * Remove `poetry`, `pytest` and `devshell`
197
201
  * Use `pip-tools`, `unittests` and [manage_django_project](https://github.com/jedie/manage_django_project)
198
202
 
203
+ ### v0.20
204
+
205
+ Because of security reasons, the `ckeditor` package was replaced by `prose-editor`.
206
+
207
+ In 0.20.1 we switched to https://github.com/jazzband/django-tinymce/ because `prose-editor` has no table support.
199
208
 
200
209
  ## Make new release
201
210
 
@@ -214,6 +223,13 @@ To make a new release, do this:
214
223
 
215
224
  [comment]: <> (✂✂✂ auto generated history start ✂✂✂)
216
225
 
226
+ * [v0.20.1](https://github.com/jedie/PyInventory/compare/v0.20.0...v0.20.1)
227
+ * 2024-09-05 - switched to https://github.com/jazzband/django-tinymce/
228
+ * [v0.20.0](https://github.com/jedie/PyInventory/compare/v0.19.3...v0.20.0)
229
+ * 2024-09-05 - Replace django-ckeditor with django-prose-editor and fix tests
230
+ * 2024-09-05 - Project updates
231
+ * 2024-01-16 - Use typeguard in tests
232
+ * 2024-01-16 - Update requirements
217
233
  * [v0.19.3](https://github.com/jedie/PyInventory/compare/v0.19.2...v0.19.3)
218
234
  * 2023-11-01 - Auto generate README history
219
235
  * 2023-11-01 - Update requirements
@@ -225,6 +241,9 @@ To make a new release, do this:
225
241
  * [v0.19.2](https://github.com/jedie/PyInventory/compare/v0.19.1...v0.19.2)
226
242
  * 2023-08-17 - Bugfix packaging by adding "requests" as normal dependencies
227
243
  * 2023-08-17 - Bugfix packageing by adding "requests" as normal dependencies
244
+
245
+ <details><summary>Expand older history entries ...</summary>
246
+
228
247
  * [v0.19.1](https://github.com/jedie/PyInventory/compare/v0.19.0...v0.19.1)
229
248
  * 2023-08-17 - Update requirements
230
249
  * 2023-08-17 - Update from project template
@@ -237,9 +256,6 @@ To make a new release, do this:
237
256
  * 2023-07-21 - Update to Django 4.2
238
257
  * 2023-07-21 - FIXME: Remove '_reorder_' from ItemModelAdmin.list_display
239
258
  * 2023-07-20 - Change item lust: move "producer" to first
240
-
241
- <details><summary>Expand older history entries ...</summary>
242
-
243
259
  * [v0.18.1](https://github.com/jedie/PyInventory/compare/v0.18.0...v0.18.1)
244
260
  * 2023-07-15 - Update requirements + fix test snapshot
245
261
  * 2023-06-11 - Update requirements
@@ -1,24 +1,24 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyInventory
3
- Version: 0.19.3
3
+ Version: 0.20.1
4
4
  Summary: Web based management to catalog things including state and location etc. using Python/Django.
5
5
  Author-email: Jens Diemer <PyInventory@jensdiemer.de>
6
6
  License: GPL-3.0-or-later
7
7
  Project-URL: Documentation, https://github.com/jedie/PyInventory
8
8
  Project-URL: Source, https://github.com/jedie/PyInventory
9
9
  Keywords: inventory,django
10
- Requires-Python: <4,>=3.9
10
+ Requires-Python: >=3.11
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  License-File: AUTHORS
14
+ Requires-Dist: django
14
15
  Requires-Dist: colorlog
15
16
  Requires-Dist: gunicorn
16
- Requires-Dist: django
17
17
  Requires-Dist: django-import-export
18
18
  Requires-Dist: django-dbbackup
19
19
  Requires-Dist: django-tools
20
20
  Requires-Dist: django-reversion-compare
21
- Requires-Dist: django-ckeditor
21
+ Requires-Dist: django-tinymce
22
22
  Requires-Dist: django-tagulous
23
23
  Requires-Dist: django-admin-sortable2
24
24
  Requires-Dist: pillow
@@ -27,10 +27,12 @@ Requires-Dist: django-debug-toolbar
27
27
  Requires-Dist: bx_py_utils
28
28
  Requires-Dist: bx_django_utils
29
29
  Provides-Extra: dev
30
- Requires-Dist: manage_django_project>=0.6.4; extra == "dev"
30
+ Requires-Dist: django-debug-toolbar; extra == "dev"
31
+ Requires-Dist: manage_django_project; extra == "dev"
31
32
  Requires-Dist: cmd2_ext_test; extra == "dev"
32
33
  Requires-Dist: playwright; extra == "dev"
33
34
  Requires-Dist: beautifulsoup4; extra == "dev"
35
+ Requires-Dist: lxml; extra == "dev"
34
36
  Requires-Dist: tblib; extra == "dev"
35
37
  Requires-Dist: pip-tools; extra == "dev"
36
38
  Requires-Dist: tox; extra == "dev"
@@ -38,18 +40,20 @@ Requires-Dist: coverage; extra == "dev"
38
40
  Requires-Dist: autopep8; extra == "dev"
39
41
  Requires-Dist: pyupgrade; extra == "dev"
40
42
  Requires-Dist: flake8; extra == "dev"
43
+ Requires-Dist: flake8-bugbear; extra == "dev"
41
44
  Requires-Dist: pyflakes; extra == "dev"
42
45
  Requires-Dist: codespell; extra == "dev"
43
46
  Requires-Dist: EditorConfig; extra == "dev"
44
- Requires-Dist: safety; extra == "dev"
47
+ Requires-Dist: pip-audit; extra == "dev"
45
48
  Requires-Dist: mypy; extra == "dev"
46
49
  Requires-Dist: twine; extra == "dev"
50
+ Requires-Dist: typeguard; extra == "dev"
51
+ Requires-Dist: pre-commit; extra == "dev"
47
52
  Requires-Dist: darker[color,flynt,isort]; extra == "dev"
48
- Requires-Dist: tomli; extra == "dev"
49
- Requires-Dist: typing-extensions>=3.10; extra == "dev"
50
53
  Requires-Dist: model_bakery; extra == "dev"
51
54
  Requires-Dist: requests-mock; extra == "dev"
52
55
  Requires-Dist: django-override-storage; extra == "dev"
56
+ Requires-Dist: backports.tarfile; extra == "dev"
53
57
 
54
58
  # PyInventory
55
59
 
@@ -196,6 +200,11 @@ please use YunoHost ;)
196
200
  * Remove `poetry`, `pytest` and `devshell`
197
201
  * Use `pip-tools`, `unittests` and [manage_django_project](https://github.com/jedie/manage_django_project)
198
202
 
203
+ ### v0.20
204
+
205
+ Because of security reasons, the `ckeditor` package was replaced by `prose-editor`.
206
+
207
+ In 0.20.1 we switched to https://github.com/jazzband/django-tinymce/ because `prose-editor` has no table support.
199
208
 
200
209
  ## Make new release
201
210
 
@@ -214,6 +223,13 @@ To make a new release, do this:
214
223
 
215
224
  [comment]: <> (✂✂✂ auto generated history start ✂✂✂)
216
225
 
226
+ * [v0.20.1](https://github.com/jedie/PyInventory/compare/v0.20.0...v0.20.1)
227
+ * 2024-09-05 - switched to https://github.com/jazzband/django-tinymce/
228
+ * [v0.20.0](https://github.com/jedie/PyInventory/compare/v0.19.3...v0.20.0)
229
+ * 2024-09-05 - Replace django-ckeditor with django-prose-editor and fix tests
230
+ * 2024-09-05 - Project updates
231
+ * 2024-01-16 - Use typeguard in tests
232
+ * 2024-01-16 - Update requirements
217
233
  * [v0.19.3](https://github.com/jedie/PyInventory/compare/v0.19.2...v0.19.3)
218
234
  * 2023-11-01 - Auto generate README history
219
235
  * 2023-11-01 - Update requirements
@@ -225,6 +241,9 @@ To make a new release, do this:
225
241
  * [v0.19.2](https://github.com/jedie/PyInventory/compare/v0.19.1...v0.19.2)
226
242
  * 2023-08-17 - Bugfix packaging by adding "requests" as normal dependencies
227
243
  * 2023-08-17 - Bugfix packageing by adding "requests" as normal dependencies
244
+
245
+ <details><summary>Expand older history entries ...</summary>
246
+
228
247
  * [v0.19.1](https://github.com/jedie/PyInventory/compare/v0.19.0...v0.19.1)
229
248
  * 2023-08-17 - Update requirements
230
249
  * 2023-08-17 - Update from project template
@@ -237,9 +256,6 @@ To make a new release, do this:
237
256
  * 2023-07-21 - Update to Django 4.2
238
257
  * 2023-07-21 - FIXME: Remove '_reorder_' from ItemModelAdmin.list_display
239
258
  * 2023-07-20 - Change item lust: move "producer" to first
240
-
241
- <details><summary>Expand older history entries ...</summary>
242
-
243
259
  * [v0.18.1](https://github.com/jedie/PyInventory/compare/v0.18.0...v0.18.1)
244
260
  * 2023-07-15 - Update requirements + fix test snapshot
245
261
  * 2023-06-11 - Update requirements
@@ -1,6 +1,8 @@
1
1
  .editorconfig
2
2
  .flake8
3
3
  .gitignore
4
+ .pre-commit-config.yaml
5
+ .pre-commit-hooks.yaml
4
6
  .travis.yml
5
7
  AUTHORS
6
8
  LICENSE
@@ -19,6 +21,7 @@ PyInventory.egg-info/top_level.txt
19
21
  inventory/__init__.py
20
22
  inventory/apps.py
21
23
  inventory/ckeditor_upload.py
24
+ inventory/constants.py
22
25
  inventory/context_processors.py
23
26
  inventory/forms.py
24
27
  inventory/middlewares.py
@@ -58,6 +61,7 @@ inventory/migrations/0010_version_protect_models.py
58
61
  inventory/migrations/0011_parent_tree1.py
59
62
  inventory/migrations/0012_parent_tree2.py
60
63
  inventory/migrations/0013_alter_itemmodel_location.py
64
+ inventory/migrations/0014_alter_itemmodel_description_and_more.py
61
65
  inventory/migrations/__init__.py
62
66
  inventory/models/__init__.py
63
67
  inventory/models/base.py
@@ -103,8 +107,9 @@ inventory_project/tests/test_admin_item_normal_user_create_minimal_item_1.snapsh
103
107
  inventory_project/tests/test_admin_item_normal_user_create_minimal_item_2.snapshot.html
104
108
  inventory_project/tests/test_admin_memo.py
105
109
  inventory_project/tests/test_admin_memo_normal_user_create_minimal_item_1.snapshot.html
110
+ inventory_project/tests/test_admin_superuser_admin_index_1.snapshot.html
106
111
  inventory_project/tests/test_inventory_commands.py
107
- inventory_project/tests/test_inventory_commands_help_django4.2.snapshot.txt
112
+ inventory_project/tests/test_inventory_commands_help_1.snapshot.txt
108
113
  inventory_project/tests/test_migrations.py
109
114
  inventory_project/tests/test_models_item.py
110
115
  inventory_project/tests/test_playwright_admin.py
@@ -1,11 +1,11 @@
1
+ django
1
2
  colorlog
2
3
  gunicorn
3
- django
4
4
  django-import-export
5
5
  django-dbbackup
6
6
  django-tools
7
7
  django-reversion-compare
8
- django-ckeditor
8
+ django-tinymce
9
9
  django-tagulous
10
10
  django-admin-sortable2
11
11
  pillow
@@ -15,10 +15,12 @@ bx_py_utils
15
15
  bx_django_utils
16
16
 
17
17
  [dev]
18
- manage_django_project>=0.6.4
18
+ django-debug-toolbar
19
+ manage_django_project
19
20
  cmd2_ext_test
20
21
  playwright
21
22
  beautifulsoup4
23
+ lxml
22
24
  tblib
23
25
  pip-tools
24
26
  tox
@@ -26,15 +28,17 @@ coverage
26
28
  autopep8
27
29
  pyupgrade
28
30
  flake8
31
+ flake8-bugbear
29
32
  pyflakes
30
33
  codespell
31
34
  EditorConfig
32
- safety
35
+ pip-audit
33
36
  mypy
34
37
  twine
38
+ typeguard
39
+ pre-commit
35
40
  darker[color,flynt,isort]
36
- tomli
37
- typing-extensions>=3.10
38
41
  model_bakery
39
42
  requests-mock
40
43
  django-override-storage
44
+ backports.tarfile
@@ -143,6 +143,11 @@ please use YunoHost ;)
143
143
  * Remove `poetry`, `pytest` and `devshell`
144
144
  * Use `pip-tools`, `unittests` and [manage_django_project](https://github.com/jedie/manage_django_project)
145
145
 
146
+ ### v0.20
147
+
148
+ Because of security reasons, the `ckeditor` package was replaced by `prose-editor`.
149
+
150
+ In 0.20.1 we switched to https://github.com/jazzband/django-tinymce/ because `prose-editor` has no table support.
146
151
 
147
152
  ## Make new release
148
153
 
@@ -161,6 +166,13 @@ To make a new release, do this:
161
166
 
162
167
  [comment]: <> (✂✂✂ auto generated history start ✂✂✂)
163
168
 
169
+ * [v0.20.1](https://github.com/jedie/PyInventory/compare/v0.20.0...v0.20.1)
170
+ * 2024-09-05 - switched to https://github.com/jazzband/django-tinymce/
171
+ * [v0.20.0](https://github.com/jedie/PyInventory/compare/v0.19.3...v0.20.0)
172
+ * 2024-09-05 - Replace django-ckeditor with django-prose-editor and fix tests
173
+ * 2024-09-05 - Project updates
174
+ * 2024-01-16 - Use typeguard in tests
175
+ * 2024-01-16 - Update requirements
164
176
  * [v0.19.3](https://github.com/jedie/PyInventory/compare/v0.19.2...v0.19.3)
165
177
  * 2023-11-01 - Auto generate README history
166
178
  * 2023-11-01 - Update requirements
@@ -172,6 +184,9 @@ To make a new release, do this:
172
184
  * [v0.19.2](https://github.com/jedie/PyInventory/compare/v0.19.1...v0.19.2)
173
185
  * 2023-08-17 - Bugfix packaging by adding "requests" as normal dependencies
174
186
  * 2023-08-17 - Bugfix packageing by adding "requests" as normal dependencies
187
+
188
+ <details><summary>Expand older history entries ...</summary>
189
+
175
190
  * [v0.19.1](https://github.com/jedie/PyInventory/compare/v0.19.0...v0.19.1)
176
191
  * 2023-08-17 - Update requirements
177
192
  * 2023-08-17 - Update from project template
@@ -184,9 +199,6 @@ To make a new release, do this:
184
199
  * 2023-07-21 - Update to Django 4.2
185
200
  * 2023-07-21 - FIXME: Remove '_reorder_' from ItemModelAdmin.list_display
186
201
  * 2023-07-20 - Change item lust: move "producer" to first
187
-
188
- <details><summary>Expand older history entries ...</summary>
189
-
190
202
  * [v0.18.1](https://github.com/jedie/PyInventory/compare/v0.18.0...v0.18.1)
191
203
  * 2023-07-15 - Update requirements + fix test snapshot
192
204
  * 2023-06-11 - Update requirements
@@ -3,9 +3,9 @@
3
3
  Web based management to catalog things including state and location etc. using Python/Django.
4
4
 
5
5
  created 14.20.2020 by Jens Diemer <opensource@jensdiemer.de>
6
- :copyleft: 2020-2023 by the PyInventory team, see AUTHORS for more details.
6
+ :copyleft: 2020-2024 by the PyInventory team, see AUTHORS for more details.
7
7
  :license: GNU GPL v3 or above, see LICENSE for more details.
8
8
  """
9
9
 
10
- __version__ = '0.19.3'
10
+ __version__ = '0.20.1'
11
11
  __author__ = 'Jens Diemer <PyInventory@jensdiemer.de>'
@@ -2,7 +2,7 @@
2
2
 
3
3
  import uuid
4
4
 
5
- import ckeditor_uploader.fields
5
+
6
6
  import django.db.models.deletion
7
7
  import tagulous.models.fields
8
8
  import tagulous.models.models
@@ -216,7 +216,7 @@ class Migration(migrations.Migration):
216
216
  ),
217
217
  (
218
218
  'description',
219
- ckeditor_uploader.fields.RichTextUploadingField(
219
+ models.TextField(
220
220
  help_text='LocationModel.description.help_text',
221
221
  verbose_name='LocationModel.description.verbose_name',
222
222
  ),
@@ -305,7 +305,7 @@ class Migration(migrations.Migration):
305
305
  ),
306
306
  (
307
307
  'description',
308
- ckeditor_uploader.fields.RichTextUploadingField(
308
+ models.TextField(
309
309
  blank=True,
310
310
  help_text='ItemModel.description.help_text',
311
311
  null=True,
@@ -1,7 +1,8 @@
1
1
  # Generated by Django 2.2.16 on 2020-10-24 16:30
2
2
 
3
- import ckeditor_uploader.fields
3
+
4
4
  from django.db import migrations
5
+ from django.db.models import TextField
5
6
 
6
7
 
7
8
  class Migration(migrations.Migration):
@@ -13,7 +14,7 @@ class Migration(migrations.Migration):
13
14
  migrations.AlterField(
14
15
  model_name='locationmodel',
15
16
  name='description',
16
- field=ckeditor_uploader.fields.RichTextUploadingField(
17
+ field=TextField(
17
18
  blank=True,
18
19
  help_text='LocationModel.description.help_text',
19
20
  null=True,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import uuid
4
4
 
5
- import ckeditor_uploader.fields
5
+
6
6
  import django.db.models.deletion
7
7
  import django_tools.serve_media_app.models
8
8
  import tagulous.models.fields
@@ -194,7 +194,7 @@ class Migration(migrations.Migration):
194
194
  ),
195
195
  (
196
196
  'memo',
197
- ckeditor_uploader.fields.RichTextUploadingField(
197
+ models.TextField(
198
198
  blank=True,
199
199
  help_text='MemoModel.description.help_text',
200
200
  null=True,
@@ -0,0 +1,44 @@
1
+ # Generated by Django 5.1.1 on 2024-09-05 17:46
2
+
3
+ import tinymce.models
4
+ from django.db import migrations
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ('inventory', '0013_alter_itemmodel_location'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AlterField(
15
+ model_name='itemmodel',
16
+ name='description',
17
+ field=tinymce.models.HTMLField(
18
+ blank=True,
19
+ help_text='ItemModel.description.help_text',
20
+ null=True,
21
+ verbose_name='ItemModel.description.verbose_name',
22
+ ),
23
+ ),
24
+ migrations.AlterField(
25
+ model_name='locationmodel',
26
+ name='description',
27
+ field=tinymce.models.HTMLField(
28
+ blank=True,
29
+ help_text='LocationModel.description.help_text',
30
+ null=True,
31
+ verbose_name='LocationModel.description.verbose_name',
32
+ ),
33
+ ),
34
+ migrations.AlterField(
35
+ model_name='memomodel',
36
+ name='memo',
37
+ field=tinymce.models.HTMLField(
38
+ blank=True,
39
+ help_text='MemoModel.description.help_text',
40
+ null=True,
41
+ verbose_name='MemoModel.description.verbose_name',
42
+ ),
43
+ ),
44
+ ]
@@ -3,12 +3,12 @@ from pathlib import Path
3
3
 
4
4
  import tagulous.models
5
5
  from bx_django_utils.filename import clean_filename
6
- from ckeditor_uploader.fields import RichTextUploadingField
7
6
  from django.db import models
8
7
  from django.urls import reverse
9
8
  from django.utils.translation import gettext_lazy as _
10
9
  from django_tools.model_version_protect.models import VersionProtectBaseModel
11
10
  from django_tools.serve_media_app.models import user_directory_path
11
+ from tinymce.models import HTMLField
12
12
 
13
13
  from inventory.models.base import BaseItemAttachmentModel, BaseParentTreeModel
14
14
  from inventory.models.links import BaseLink
@@ -46,10 +46,9 @@ class ItemModel(BaseParentTreeModel, VersionProtectBaseModel):
46
46
  verbose_name=_('ItemModel.producer.verbose_name'),
47
47
  help_text=_('ItemModel.producer.help_text'),
48
48
  )
49
- description = RichTextUploadingField(
49
+ description = HTMLField(
50
50
  blank=True,
51
51
  null=True,
52
- config_name='ItemModel.description',
53
52
  verbose_name=_('ItemModel.description.verbose_name'),
54
53
  help_text=_('ItemModel.description.help_text'),
55
54
  )
@@ -1,6 +1,6 @@
1
- from ckeditor_uploader.fields import RichTextUploadingField
2
1
  from django.utils.translation import gettext_lazy as _
3
2
  from django_tools.model_version_protect.models import VersionProtectBaseModel
3
+ from tinymce.models import HTMLField
4
4
 
5
5
  from inventory.models.base import BaseParentTreeModel
6
6
 
@@ -10,10 +10,9 @@ class LocationModel(BaseParentTreeModel, VersionProtectBaseModel):
10
10
  A Storage for items.
11
11
  """
12
12
 
13
- description = RichTextUploadingField(
13
+ description = HTMLField(
14
14
  blank=True,
15
15
  null=True,
16
- config_name='LocationModel.description',
17
16
  verbose_name=_('LocationModel.description.verbose_name'),
18
17
  help_text=_('LocationModel.description.help_text'),
19
18
  )
@@ -2,12 +2,12 @@ import logging
2
2
  from pathlib import Path
3
3
 
4
4
  from bx_django_utils.filename import clean_filename
5
- from ckeditor_uploader.fields import RichTextUploadingField
6
5
  from django.db import models
7
6
  from django.urls import reverse
8
7
  from django.utils.translation import gettext_lazy as _
9
8
  from django_tools.model_version_protect.models import VersionProtectBaseModel
10
9
  from django_tools.serve_media_app.models import user_directory_path
10
+ from tinymce.models import HTMLField
11
11
 
12
12
  from inventory.models.base import BaseMemoAttachmentModel, BaseModel
13
13
  from inventory.models.links import BaseLink
@@ -18,13 +18,12 @@ logger = logging.getLogger(__name__)
18
18
 
19
19
  class MemoModel(BaseModel, VersionProtectBaseModel):
20
20
  """
21
- A Memo to hold some information independ of items/location
21
+ A Memo to hold some information independent of items/location
22
22
  """
23
23
 
24
- memo = RichTextUploadingField(
24
+ memo = HTMLField(
25
25
  blank=True,
26
26
  null=True,
27
- config_name='MemoModel.description',
28
27
  verbose_name=_('MemoModel.description.verbose_name'),
29
28
  help_text=_('MemoModel.description.help_text'),
30
29
  )