django-dynamic-admin-forms 3.2.8__tar.gz → 3.2.10__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 (62) hide show
  1. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.ambient-package-update/metadata.py +1 -0
  2. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.github/workflows/ci.yml +13 -11
  3. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.gitignore +4 -1
  4. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.pre-commit-config.yaml +21 -16
  5. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.readthedocs.yaml +1 -1
  6. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/CHANGES.md +6 -0
  7. django_dynamic_admin_forms-3.2.10/CONTRIBUTING.md +75 -0
  8. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/PKG-INFO +62 -121
  9. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/README.md +29 -95
  10. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/SECURITY.md +1 -1
  11. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/__init__.py +1 -1
  12. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/conf.py +0 -1
  13. django_dynamic_admin_forms-3.2.10/docs/features/changelog.rst +1 -0
  14. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/index.rst +7 -7
  15. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/manage.py +1 -1
  16. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/pyproject.toml +53 -44
  17. django_dynamic_admin_forms-3.2.10/scripts/unix/install_requirements.sh +3 -0
  18. django_dynamic_admin_forms-3.2.10/scripts/unix/publish_to_pypi.sh +4 -0
  19. django_dynamic_admin_forms-3.2.10/scripts/windows/install_requirements.ps1 +2 -0
  20. django_dynamic_admin_forms-3.2.10/scripts/windows/publish_to_pypi.ps1 +3 -0
  21. django_dynamic_admin_forms-3.2.10/uv.lock +1008 -0
  22. django_dynamic_admin_forms-3.2.8/docs/features/changelog.rst +0 -1
  23. django_dynamic_admin_forms-3.2.8/scripts/unix/install_requirements.sh +0 -4
  24. django_dynamic_admin_forms-3.2.8/scripts/unix/publish_to_pypi.sh +0 -3
  25. django_dynamic_admin_forms-3.2.8/scripts/windows/install_requirements.ps1 +0 -3
  26. django_dynamic_admin_forms-3.2.8/scripts/windows/publish_to_pypi.ps1 +0 -2
  27. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.ambient-package-update/templates/snippets/content.tpl +0 -0
  28. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.ambient-package-update/templates/snippets/installation.tpl +0 -0
  29. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.editorconfig +0 -0
  30. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.python-version +0 -0
  31. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/LICENSE.md +0 -0
  32. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/MANIFEST.in +0 -0
  33. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/admin.py +0 -0
  34. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/apps.py +0 -0
  35. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/static/js/dynamic_admin.js +0 -0
  36. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/templates/admin/change_form.html +0 -0
  37. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/urls.py +0 -0
  38. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/Makefile +0 -0
  39. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/demo.gif +0 -0
  40. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/make.bat +0 -0
  41. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/integration/dynamic-select.spec.js +0 -0
  42. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/plugins/index.js +0 -0
  43. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/support/commands.js +0 -0
  44. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/support/index.js +0 -0
  45. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/support/paths.js +0 -0
  46. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress.json +0 -0
  47. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/package.json +0 -0
  48. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/yarn.lock +0 -0
  49. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/fixtures/fixtures-dev.json +0 -0
  50. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/settings.py +0 -0
  51. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/__init__.py +0 -0
  52. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/admin.py +0 -0
  53. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/apps.py +0 -0
  54. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/migrations/0001_initial.py +0 -0
  55. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/migrations/0002_extend_example.py +0 -0
  56. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/migrations/0003_example_file_field.py +0 -0
  57. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/migrations/__init__.py +0 -0
  58. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/models.py +0 -0
  59. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/urls.py +0 -0
  60. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/tests/__init__.py +0 -0
  61. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/tests/test_admin_generic.py +0 -0
  62. {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/tests/test_admin_unit.py +0 -0
@@ -29,6 +29,7 @@ METADATA = PackageMetadata(
29
29
  development_status="5 - Production/Stable",
30
30
  has_migrations=False,
31
31
  main_branch="main",
32
+ claim="Add simple dynamic interaction to the otherwise static django admin.",
32
33
  readme_content=ReadmeContent(
33
34
  tagline="Add simple interactions to the otherwise static django admin.",
34
35
  ),
@@ -12,24 +12,23 @@ jobs:
12
12
  steps:
13
13
  - uses: actions/checkout@v4
14
14
 
15
- - name: Set up Python 3.12
15
+ - name: Set up Python 3.13
16
16
  uses: actions/setup-python@v5
17
17
  with:
18
- python-version: "3.12"
18
+ python-version: "3.13"
19
19
 
20
20
  - name: Install required packages
21
21
  run: pip install pre-commit
22
22
 
23
23
  - name: Run pre-commit hooks
24
- run: pre-commit run --all-files --hook-stage push
25
-
24
+ run: pre-commit run --all-files
26
25
 
27
26
  tests:
28
27
  name: Python ${{ matrix.python-version }}, django ${{ matrix.django-version }}
29
28
  runs-on: ubuntu-24.04
30
29
  strategy:
31
30
  matrix:
32
- python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', ]
31
+ python-version: ['3.10', '3.11', '3.12', '3.13', '3.14', ]
33
32
  django-version: ['42', '51', '52', ]
34
33
 
35
34
  exclude:
@@ -46,8 +45,10 @@ jobs:
46
45
  uses: actions/setup-python@v5
47
46
  with:
48
47
  python-version: ${{ matrix.python-version }}
48
+ - name: Install uv
49
+ uses: astral-sh/setup-uv@v5
49
50
  - name: Install tox
50
- run: pip install tox
51
+ run: uv pip install --system tox tox-uv
51
52
  - name: Run Tests
52
53
  env:
53
54
  TOXENV: django${{ matrix.django-version }}
@@ -56,7 +57,7 @@ jobs:
56
57
  uses: actions/upload-artifact@v4
57
58
  with:
58
59
  name: coverage-data-${{ matrix.python-version }}-${{ matrix.django-version }}
59
- path: '${{ github.workspace }}/.coverage.*'
60
+ path: '${{ github.workspace }}/.coverage'
60
61
  include-hidden-files: true
61
62
  if-no-files-found: error
62
63
 
@@ -69,7 +70,7 @@ jobs:
69
70
 
70
71
  - uses: actions/setup-python@v5
71
72
  with:
72
- python-version: '3.12'
73
+ python-version: '3.13'
73
74
 
74
75
  - name: Install dependencies
75
76
  run: python -m pip install --upgrade coverage[toml]
@@ -77,13 +78,14 @@ jobs:
77
78
  - name: Download data
78
79
  uses: actions/download-artifact@v4
79
80
  with:
80
- path: ${{ github.workspace }}
81
+ path: ${{ github.workspace }}/coverage-reports
81
82
  pattern: coverage-data-*
82
- merge-multiple: true
83
+ merge-multiple: false
83
84
 
84
85
  - name: Combine coverage and fail if it's <100.0%
85
86
  run: |
86
- python -m coverage combine
87
+ python -m coverage combine coverage-reports/*/.coverage
88
+ python -m coverage xml
87
89
  python -m coverage html --skip-covered --skip-empty
88
90
  python -m coverage report --fail-under=100.0
89
91
  echo "## Coverage summary" >> $GITHUB_STEP_SUMMARY
@@ -140,7 +140,7 @@ cython_debug/
140
140
  # option (not recommended) you can uncomment the following to ignore the entire idea folder.
141
141
  .idea/
142
142
 
143
- # Requirements.txt is managed by pip-tools
143
+ # Deprecated dependency files
144
144
  requirements.txt
145
145
 
146
146
  # sphinx build folder
@@ -156,3 +156,6 @@ _build
156
156
 
157
157
  # Test databases
158
158
  *.sqlite
159
+
160
+ # AI
161
+ .claude/
@@ -3,36 +3,36 @@
3
3
 
4
4
  repos:
5
5
  - repo: https://github.com/astral-sh/ruff-pre-commit
6
- rev: v0.11.2
6
+ rev: v0.14.0
7
7
  hooks:
8
8
  # Run the Ruff formatter.
9
9
  - id: ruff-format
10
10
  # Run the Ruff linter.
11
- - id: ruff
11
+ - id: ruff-check
12
12
  args: [--fix, --exit-non-zero-on-fix]
13
13
 
14
14
  - repo: https://github.com/adamchainz/blacken-docs
15
- rev: 1.19.1
15
+ rev: 1.20.0
16
16
  hooks:
17
17
  - id: blacken-docs
18
18
  additional_dependencies:
19
- - black==25.1.0
19
+ - black==25.9.0
20
20
  files: '(?:README\.md|\.ambient-package-update\/templates\/snippets\/.*\.tpl|docs\/.*\.(?:md|rst))'
21
21
 
22
22
  - repo: https://github.com/asottile/pyupgrade
23
- rev: v3.19.1
23
+ rev: v3.20.0
24
24
  hooks:
25
25
  - id: pyupgrade
26
- args: [ --py39-plus ]
26
+ args: [ --py310-plus ]
27
27
 
28
28
  - repo: https://github.com/adamchainz/django-upgrade
29
- rev: 1.24.0
29
+ rev: 1.29.0
30
30
  hooks:
31
31
  - id: django-upgrade
32
32
  args: [--target-version, "4.2"]
33
33
 
34
34
  - repo: https://github.com/adamchainz/djade-pre-commit
35
- rev: 1.3.2
35
+ rev: 1.6.0
36
36
  hooks:
37
37
  - id: djade
38
38
  args: [--target-version, "4.2"]
@@ -43,12 +43,17 @@ repos:
43
43
  )$
44
44
 
45
45
  - repo: https://github.com/pre-commit/pre-commit-hooks
46
- rev: v5.0.0
46
+ rev: v6.0.0
47
47
  hooks:
48
- - id: no-commit-to-branch
49
- args:
50
- [
51
- "--pattern",
52
- '^^(?!(?:feature|hotfix|bugfix|refactor|maintenance)/[\w\d\-_#]+).*$',
53
- ]
54
- stages: [ pre-commit ]
48
+ - id: check-ast
49
+ - id: check-builtin-literals
50
+ - id: check-case-conflict
51
+ - id: check-docstring-first
52
+ - id: check-executables-have-shebangs
53
+ - id: check-json
54
+ - id: check-merge-conflict
55
+ - id: check-toml
56
+ - id: end-of-file-fixer
57
+ - id: fix-byte-order-marker
58
+ - id: mixed-line-ending
59
+ - id: trailing-whitespace
@@ -9,7 +9,7 @@ version: 2
9
9
  build:
10
10
  os: ubuntu-24.04
11
11
  tools:
12
- python: "3.12"
12
+ python: "3.13"
13
13
 
14
14
  # Build documentation in the "docs/" directory with Sphinx
15
15
  sphinx:
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ **3.2.10** (2025-10-09)
4
+ * Maintenance updates via ambient-package-update
5
+
6
+ **3.2.9** (2025-05-29)
7
+ * Maintenance updates via ambient-package-update
8
+
3
9
  **3.2.8** (2025-04-03)
4
10
  * Maintenance updates via ambient-package-update
5
11
 
@@ -0,0 +1,75 @@
1
+ # Contribute
2
+
3
+ ## Setup package for development
4
+
5
+ - Create a Python virtualenv and activate it
6
+ - Install "uv" with `pip install -U uv`
7
+ - Sync the requirements with `uv sync --frozen --group dev`
8
+
9
+ ## Add functionality
10
+
11
+ - Create a new branch for your feature
12
+ - Change the dependency in your requirements.txt to a local (editable) one that points to your local file system:
13
+ `-e /Users/workspace/django-dynamic-admin-forms` or via pip `pip install -e /Users/workspace/django-dynamic-admin-forms`
14
+ - Ensure the code passes the tests
15
+ - Create a pull request
16
+
17
+ ## Run tests
18
+
19
+ - Run tests
20
+ ````
21
+ pytest --ds settings tests
22
+ ````
23
+
24
+ - Check coverage
25
+ ````
26
+ coverage run -m pytest --ds settings tests
27
+ coverage report -m
28
+ ````
29
+
30
+ ## Git hooks (via pre-commit)
31
+
32
+ We use pre-push hooks to ensure that only linted code reaches our remote repository and pipelines aren't triggered in
33
+ vain.
34
+
35
+ To enable the configured pre-push hooks, you need to [install](https://pre-commit.com/) pre-commit and run once:
36
+
37
+ pre-commit install -t pre-push -t pre-commit --install-hooks
38
+
39
+ This will permanently install the git hooks for both, frontend and backend, in your local
40
+ [`.git/hooks`](./.git/hooks) folder.
41
+ The hooks are configured in the [`.pre-commit-config.yaml`](templates/.pre-commit-config.yaml.tpl).
42
+
43
+ You can check whether hooks work as intended using the [run](https://pre-commit.com/#pre-commit-run) command:
44
+
45
+ pre-commit run [hook-id] [options]
46
+
47
+ Example: run single hook
48
+
49
+ pre-commit run ruff --all-files
50
+
51
+ Example: run all hooks of pre-push stage
52
+
53
+ pre-commit run --all-files
54
+
55
+ ## Update documentation
56
+
57
+ - To build the documentation, run: `sphinx-build docs/ docs/_build/html/`.
58
+ - Open `docs/_build/html/index.html` to see the documentation.
59
+
60
+ ### Translation files
61
+
62
+ If you have added custom text, make sure to wrap it in `_()` where `_` is
63
+ gettext_lazy (`from django.utils.translation import gettext_lazy as _`).
64
+
65
+ How to create translation file:
66
+
67
+ * Navigate to `django_dynamic_admin_forms`
68
+ * `python manage.py makemessages -l de`
69
+ * Have a look at the new/changed files within `django_dynamic_admin_forms/locale`
70
+
71
+ How to compile translation files:
72
+
73
+ * Navigate to `django_dynamic_admin_forms`
74
+ * `python manage.py compilemessages`
75
+ * Have a look at the new/changed files within `django_dynamic_admin_forms/locale`
@@ -1,9 +1,35 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: django-dynamic-admin-forms
3
- Version: 3.2.8
3
+ Version: 3.2.10
4
4
  Summary: Add simple dynamic interaction to the otherwise static django admin.
5
+ Project-URL: Homepage, https://github.com/ambient-innovation/django-dynamic-admin/
6
+ Project-URL: Documentation, https://django-dynamic-admin-forms.readthedocs.io/en/latest/index.html
7
+ Project-URL: Maintained by, https://ambient.digital/
8
+ Project-URL: Bugtracker, https://github.com/ambient-innovation/django-dynamic-admin/issues
9
+ Project-URL: Changelog, https://django-dynamic-admin-forms.readthedocs.io/en/latest/features/changelog.html
5
10
  Author-email: Ambient Digital <hello@ambient.digital>, Fabian Binz <fabian.binz@ambient.digital>
6
- Description-Content-Type: text/markdown
11
+ License: MIT License
12
+
13
+ Copyright (c) 2022 Ambient Innovation: GmbH
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights
18
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ copies of the Software, and to permit persons to whom the Software is
20
+ furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in all
23
+ copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ SOFTWARE.
32
+ License-File: LICENSE.md
7
33
  Classifier: Development Status :: 5 - Production/Stable
8
34
  Classifier: Environment :: Web Environment
9
35
  Classifier: Framework :: Django
@@ -16,33 +42,15 @@ Classifier: Natural Language :: English
16
42
  Classifier: Operating System :: OS Independent
17
43
  Classifier: Programming Language :: Python
18
44
  Classifier: Programming Language :: Python :: 3
19
- Classifier: Programming Language :: Python :: 3.9
20
45
  Classifier: Programming Language :: Python :: 3.10
21
46
  Classifier: Programming Language :: Python :: 3.11
22
47
  Classifier: Programming Language :: Python :: 3.12
23
48
  Classifier: Programming Language :: Python :: 3.13
49
+ Classifier: Programming Language :: Python :: 3.14
24
50
  Classifier: Topic :: Utilities
25
- Requires-Dist: Django>=4.2
26
- Requires-Dist: typer~=0.12 ; extra == "dev"
27
- Requires-Dist: pytest-django~=4.9 ; extra == "dev"
28
- Requires-Dist: pytest-mock~=3.14 ; extra == "dev"
29
- Requires-Dist: coverage~=7.6 ; extra == "dev"
30
- Requires-Dist: pre-commit~=4.0 ; extra == "dev"
31
- Requires-Dist: ruff~=0.6 ; extra == "dev"
32
- Requires-Dist: sphinx~=7.1 ; extra == "dev"
33
- Requires-Dist: sphinx-rtd-theme~=2.0 ; extra == "dev"
34
- Requires-Dist: m2r2==0.3.3.post2 ; extra == "dev"
35
- Requires-Dist: mistune<2.0.0 ; extra == "dev"
36
- Requires-Dist: flit~=3.9 ; extra == "dev"
37
- Requires-Dist: keyring~=25.4 ; extra == "dev"
38
- Requires-Dist: ambient-package-update ; extra == "dev"
39
- Requires-Dist: unittest-parametrize~=1.4 ; extra == "dev"
40
- Project-URL: Bugtracker, https://github.com/ambient-innovation/django-dynamic-admin/issues
41
- Project-URL: Changelog, https://django-dynamic-admin-forms.readthedocs.io/en/latest/features/changelog.html
42
- Project-URL: Documentation, https://django-dynamic-admin-forms.readthedocs.io/en/latest/index.html
43
- Project-URL: Homepage, https://github.com/ambient-innovation/django-dynamic-admin/
44
- Project-URL: Maintained by, https://ambient.digital/
45
- Provides-Extra: dev
51
+ Requires-Python: >=3.10
52
+ Requires-Dist: django>=4.2
53
+ Description-Content-Type: text/markdown
46
54
 
47
55
  [![PyPI release](https://img.shields.io/pypi/v/django-dynamic-admin-forms.svg)](https://pypi.org/project/django-dynamic-admin-forms/)
48
56
  [![Downloads](https://static.pepy.tech/badge/django-dynamic-admin-forms)](https://pepy.tech/project/django-dynamic-admin-forms)
@@ -53,11 +61,9 @@ Provides-Extra: dev
53
61
 
54
62
  Add simple interactions to the otherwise static django admin.
55
63
 
56
- * [PyPI](https://pypi.org/project/django-dynamic-admin-forms/)
57
- * [GitHub](https://github.com/ambient-innovation/django-dynamic-admin)
58
- * [Full documentation](https://django-dynamic-admin-forms.readthedocs.io/en/latest/index.html)
59
- * Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
64
+ [PyPI](https://pypi.org/project/django-dynamic-admin-forms/) | [GitHub](https://github.com/ambient-innovation/django-dynamic-admin) | [Full documentation](https://django-dynamic-admin-forms.readthedocs.io/en/latest/index.html)
60
65
 
66
+ Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
61
67
 
62
68
  # django-dynamic-admin-forms
63
69
 
@@ -218,112 +224,49 @@ $ yarn cypress # or npm run cypress
218
224
 
219
225
  - Run `python manage.py collectstatic` to include this apps Javascript code in your `settings.STATIC_ROOT` directory
220
226
 
221
- ## Contribute
222
-
223
- ### Setup package for development
224
-
225
- - Create a Python virtualenv and activate it
226
- - Install "pip-tools" with `pip install -U pip-tools`
227
- - Compile the requirements with `pip-compile --extra dev, -o requirements.txt pyproject.toml --resolver=backtracking`
228
- - Sync the dependencies with your virtualenv with `pip-sync`
229
-
230
- ### Add functionality
231
-
232
- - Create a new branch for your feature
233
- - Change the dependency in your requirements.txt to a local (editable) one that points to your local file system:
234
- `-e /Users/workspace/django-dynamic-admin-forms` or via pip `pip install -e /Users/workspace/django-dynamic-admin-forms`
235
- - Ensure the code passes the tests
236
- - Create a pull request
237
-
238
- ### Run tests
239
-
240
- - Run tests
241
- ````
242
- pytest --ds settings tests
243
- ````
244
-
245
- - Check coverage
246
- ````
247
- coverage run -m pytest --ds settings tests
248
- coverage report -m
249
- ````
250
-
251
- ### Git hooks (via pre-commit)
252
-
253
- We use pre-push hooks to ensure that only linted code reaches our remote repository and pipelines aren't triggered in
254
- vain.
255
-
256
- To enable the configured pre-push hooks, you need to [install](https://pre-commit.com/) pre-commit and run once:
257
-
258
- pre-commit install -t pre-push -t pre-commit --install-hooks
259
-
260
- This will permanently install the git hooks for both, frontend and backend, in your local
261
- [`.git/hooks`](./.git/hooks) folder.
262
- The hooks are configured in the [`.pre-commit-config.yaml`](templates/.pre-commit-config.yaml.tpl).
263
-
264
- You can check whether hooks work as intended using the [run](https://pre-commit.com/#pre-commit-run) command:
265
-
266
- pre-commit run [hook-id] [options]
267
-
268
- Example: run single hook
269
-
270
- pre-commit run ruff --all-files
271
-
272
- Example: run all hooks of pre-push stage
273
-
274
- pre-commit run --all-files --hook-stage push
275
-
276
- ### Update documentation
277
-
278
- - To build the documentation, run: `sphinx-build docs/ docs/_build/html/`.
279
- - Open `docs/_build/html/index.html` to see the documentation.
280
-
281
-
282
- ### Translation files
283
-
284
- If you have added custom text, make sure to wrap it in `_()` where `_` is
285
- gettext_lazy (`from django.utils.translation import gettext_lazy as _`).
286
-
287
- How to create translation file:
288
-
289
- * Navigate to `django-dynamic-admin-forms`
290
- * `python manage.py makemessages -l de`
291
- * Have a look at the new/changed files within `django_dynamic_admin_forms/locale`
292
-
293
- How to compile translation files:
294
-
295
- * Navigate to `django-dynamic-admin-forms`
296
- * `python manage.py compilemessages`
297
- * Have a look at the new/changed files within `django_dynamic_admin_forms/locale`
298
-
299
-
300
227
  ### Publish to ReadTheDocs.io
301
228
 
302
229
  - Fetch the latest changes in GitHub mirror and push them
303
230
  - Trigger new build at ReadTheDocs.io (follow instructions in admin panel at RTD) if the GitHub webhook is not yet set
304
231
  up.
305
232
 
306
- ### Publish to PyPi
233
+ ### Preparation and building
234
+
235
+ This package uses [uv](https://github.com/astral-sh/uv) for dependency management and building.
307
236
 
308
237
  - Update documentation about new/changed functionality
309
238
 
310
- - Update the `Changelog`
239
+ - Update the `CHANGES.md`
311
240
 
312
241
  - Increment version in main `__init__.py`
313
242
 
314
- - Create pull request / merge to main
243
+ - Create pull request / merge to "main"
315
244
 
316
- - This project uses the flit package to publish to PyPI. Thus, publishing should be as easy as running:
317
- ```
318
- flit publish
245
+ - This project uses uv to publish to PyPI. This will create distribution files in the `dist/` directory.
246
+
247
+ ```bash
248
+ uv build
319
249
  ```
320
250
 
321
- To publish to TestPyPI use the following to ensure that you have set up your .pypirc as
322
- shown [here](https://flit.readthedocs.io/en/latest/upload.html#using-pypirc) and use the following command:
251
+ ### Publishing to PyPI
323
252
 
324
- ```
325
- flit publish --repository testpypi
326
- ```
253
+ To publish to the production PyPI:
254
+
255
+ ```bash
256
+ uv publish
257
+ ```
258
+
259
+ To publish to TestPyPI first (recommended for testing):
260
+
261
+ ```bash
262
+ uv publish --publish-url https://test.pypi.org/legacy/
263
+ ```
264
+
265
+ You can then test the installation from TestPyPI:
266
+
267
+ ```bash
268
+ uv pip install --index-url https://test.pypi.org/simple/ ambient-package-update
269
+ ```
327
270
 
328
271
  ### Maintenance
329
272
 
@@ -333,5 +276,3 @@ configuration and setup files. It works similar to well-known updaters like `pyu
333
276
 
334
277
  To run an update, refer to the [documentation page](https://pypi.org/project/ambient-package-update/)
335
278
  of the "ambient-package-update".
336
-
337
-
@@ -7,11 +7,9 @@
7
7
 
8
8
  Add simple interactions to the otherwise static django admin.
9
9
 
10
- * [PyPI](https://pypi.org/project/django-dynamic-admin-forms/)
11
- * [GitHub](https://github.com/ambient-innovation/django-dynamic-admin)
12
- * [Full documentation](https://django-dynamic-admin-forms.readthedocs.io/en/latest/index.html)
13
- * Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
10
+ [PyPI](https://pypi.org/project/django-dynamic-admin-forms/) | [GitHub](https://github.com/ambient-innovation/django-dynamic-admin) | [Full documentation](https://django-dynamic-admin-forms.readthedocs.io/en/latest/index.html)
14
11
 
12
+ Creator & Maintainer: [Ambient Digital](https://ambient.digital/)
15
13
 
16
14
  # django-dynamic-admin-forms
17
15
 
@@ -172,112 +170,49 @@ $ yarn cypress # or npm run cypress
172
170
 
173
171
  - Run `python manage.py collectstatic` to include this apps Javascript code in your `settings.STATIC_ROOT` directory
174
172
 
175
- ## Contribute
176
-
177
- ### Setup package for development
178
-
179
- - Create a Python virtualenv and activate it
180
- - Install "pip-tools" with `pip install -U pip-tools`
181
- - Compile the requirements with `pip-compile --extra dev, -o requirements.txt pyproject.toml --resolver=backtracking`
182
- - Sync the dependencies with your virtualenv with `pip-sync`
183
-
184
- ### Add functionality
185
-
186
- - Create a new branch for your feature
187
- - Change the dependency in your requirements.txt to a local (editable) one that points to your local file system:
188
- `-e /Users/workspace/django-dynamic-admin-forms` or via pip `pip install -e /Users/workspace/django-dynamic-admin-forms`
189
- - Ensure the code passes the tests
190
- - Create a pull request
191
-
192
- ### Run tests
193
-
194
- - Run tests
195
- ````
196
- pytest --ds settings tests
197
- ````
198
-
199
- - Check coverage
200
- ````
201
- coverage run -m pytest --ds settings tests
202
- coverage report -m
203
- ````
204
-
205
- ### Git hooks (via pre-commit)
206
-
207
- We use pre-push hooks to ensure that only linted code reaches our remote repository and pipelines aren't triggered in
208
- vain.
209
-
210
- To enable the configured pre-push hooks, you need to [install](https://pre-commit.com/) pre-commit and run once:
211
-
212
- pre-commit install -t pre-push -t pre-commit --install-hooks
213
-
214
- This will permanently install the git hooks for both, frontend and backend, in your local
215
- [`.git/hooks`](./.git/hooks) folder.
216
- The hooks are configured in the [`.pre-commit-config.yaml`](templates/.pre-commit-config.yaml.tpl).
217
-
218
- You can check whether hooks work as intended using the [run](https://pre-commit.com/#pre-commit-run) command:
219
-
220
- pre-commit run [hook-id] [options]
221
-
222
- Example: run single hook
223
-
224
- pre-commit run ruff --all-files
225
-
226
- Example: run all hooks of pre-push stage
227
-
228
- pre-commit run --all-files --hook-stage push
229
-
230
- ### Update documentation
231
-
232
- - To build the documentation, run: `sphinx-build docs/ docs/_build/html/`.
233
- - Open `docs/_build/html/index.html` to see the documentation.
234
-
235
-
236
- ### Translation files
237
-
238
- If you have added custom text, make sure to wrap it in `_()` where `_` is
239
- gettext_lazy (`from django.utils.translation import gettext_lazy as _`).
240
-
241
- How to create translation file:
242
-
243
- * Navigate to `django-dynamic-admin-forms`
244
- * `python manage.py makemessages -l de`
245
- * Have a look at the new/changed files within `django_dynamic_admin_forms/locale`
246
-
247
- How to compile translation files:
248
-
249
- * Navigate to `django-dynamic-admin-forms`
250
- * `python manage.py compilemessages`
251
- * Have a look at the new/changed files within `django_dynamic_admin_forms/locale`
252
-
253
-
254
173
  ### Publish to ReadTheDocs.io
255
174
 
256
175
  - Fetch the latest changes in GitHub mirror and push them
257
176
  - Trigger new build at ReadTheDocs.io (follow instructions in admin panel at RTD) if the GitHub webhook is not yet set
258
177
  up.
259
178
 
260
- ### Publish to PyPi
179
+ ### Preparation and building
180
+
181
+ This package uses [uv](https://github.com/astral-sh/uv) for dependency management and building.
261
182
 
262
183
  - Update documentation about new/changed functionality
263
184
 
264
- - Update the `Changelog`
185
+ - Update the `CHANGES.md`
265
186
 
266
187
  - Increment version in main `__init__.py`
267
188
 
268
- - Create pull request / merge to main
189
+ - Create pull request / merge to "main"
269
190
 
270
- - This project uses the flit package to publish to PyPI. Thus, publishing should be as easy as running:
271
- ```
272
- flit publish
191
+ - This project uses uv to publish to PyPI. This will create distribution files in the `dist/` directory.
192
+
193
+ ```bash
194
+ uv build
273
195
  ```
274
196
 
275
- To publish to TestPyPI use the following to ensure that you have set up your .pypirc as
276
- shown [here](https://flit.readthedocs.io/en/latest/upload.html#using-pypirc) and use the following command:
197
+ ### Publishing to PyPI
277
198
 
278
- ```
279
- flit publish --repository testpypi
280
- ```
199
+ To publish to the production PyPI:
200
+
201
+ ```bash
202
+ uv publish
203
+ ```
204
+
205
+ To publish to TestPyPI first (recommended for testing):
206
+
207
+ ```bash
208
+ uv publish --publish-url https://test.pypi.org/legacy/
209
+ ```
210
+
211
+ You can then test the installation from TestPyPI:
212
+
213
+ ```bash
214
+ uv pip install --index-url https://test.pypi.org/simple/ ambient-package-update
215
+ ```
281
216
 
282
217
  ### Maintenance
283
218
 
@@ -287,4 +222,3 @@ configuration and setup files. It works similar to well-known updaters like `pyu
287
222
 
288
223
  To run an update, refer to the [documentation page](https://pypi.org/project/ambient-package-update/)
289
224
  of the "ambient-package-update".
290
-
@@ -4,7 +4,7 @@ The maintainers of this package take security bugs seriously. We appreciate your
4
4
  disclose your findings, and will make every effort to acknowledge your contributions.
5
5
 
6
6
  To report a security issue, please use the GitHub Security
7
- Advisory ["Report a Vulnerability"](https://github.com/ambient-innovation/django-dynamic-admin/security/advisories/new)
7
+ Advisory ["Report a Vulnerability"](https://github.com/ambient-innovation/django-dynamic-admin/security/advisories/new)
8
8
  tab.
9
9
 
10
10
  The maintainers will send a response indicating the next steps in handling your report. After the initial reply to
@@ -1,3 +1,3 @@
1
1
  """Add simple dynamic interaction to the otherwise static django admin."""
2
2
 
3
- __version__ = "3.2.8"
3
+ __version__ = "3.2.10"