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.
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.ambient-package-update/metadata.py +1 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.github/workflows/ci.yml +13 -11
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.gitignore +4 -1
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.pre-commit-config.yaml +21 -16
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.readthedocs.yaml +1 -1
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/CHANGES.md +6 -0
- django_dynamic_admin_forms-3.2.10/CONTRIBUTING.md +75 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/PKG-INFO +62 -121
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/README.md +29 -95
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/SECURITY.md +1 -1
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/__init__.py +1 -1
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/conf.py +0 -1
- django_dynamic_admin_forms-3.2.10/docs/features/changelog.rst +1 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/index.rst +7 -7
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/manage.py +1 -1
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/pyproject.toml +53 -44
- django_dynamic_admin_forms-3.2.10/scripts/unix/install_requirements.sh +3 -0
- django_dynamic_admin_forms-3.2.10/scripts/unix/publish_to_pypi.sh +4 -0
- django_dynamic_admin_forms-3.2.10/scripts/windows/install_requirements.ps1 +2 -0
- django_dynamic_admin_forms-3.2.10/scripts/windows/publish_to_pypi.ps1 +3 -0
- django_dynamic_admin_forms-3.2.10/uv.lock +1008 -0
- django_dynamic_admin_forms-3.2.8/docs/features/changelog.rst +0 -1
- django_dynamic_admin_forms-3.2.8/scripts/unix/install_requirements.sh +0 -4
- django_dynamic_admin_forms-3.2.8/scripts/unix/publish_to_pypi.sh +0 -3
- django_dynamic_admin_forms-3.2.8/scripts/windows/install_requirements.ps1 +0 -3
- django_dynamic_admin_forms-3.2.8/scripts/windows/publish_to_pypi.ps1 +0 -2
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.ambient-package-update/templates/snippets/content.tpl +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.ambient-package-update/templates/snippets/installation.tpl +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.editorconfig +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.python-version +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/LICENSE.md +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/MANIFEST.in +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/admin.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/apps.py +0 -0
- {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
- {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
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/django_dynamic_admin_forms/urls.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/Makefile +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/demo.gif +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/docs/make.bat +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/integration/dynamic-select.spec.js +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/plugins/index.js +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/support/commands.js +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/support/index.js +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress/support/paths.js +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/cypress.json +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/package.json +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/e2e/yarn.lock +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/fixtures/fixtures-dev.json +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/settings.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/__init__.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/admin.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/apps.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/migrations/0001_initial.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/migrations/0002_extend_example.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/migrations/0003_example_file_field.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/migrations/__init__.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/models.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/testapp/urls.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/tests/__init__.py +0 -0
- {django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/tests/test_admin_generic.py +0 -0
- {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
|
),
|
{django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.github/workflows/ci.yml
RENAMED
|
@@ -12,24 +12,23 @@ jobs:
|
|
|
12
12
|
steps:
|
|
13
13
|
- uses: actions/checkout@v4
|
|
14
14
|
|
|
15
|
-
- name: Set up Python 3.
|
|
15
|
+
- name: Set up Python 3.13
|
|
16
16
|
uses: actions/setup-python@v5
|
|
17
17
|
with:
|
|
18
|
-
python-version: "3.
|
|
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
|
|
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.
|
|
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.
|
|
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:
|
|
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
|
-
#
|
|
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/
|
{django_dynamic_admin_forms-3.2.8 → django_dynamic_admin_forms-3.2.10}/.pre-commit-config.yaml
RENAMED
|
@@ -3,36 +3,36 @@
|
|
|
3
3
|
|
|
4
4
|
repos:
|
|
5
5
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
6
|
-
rev: v0.
|
|
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.
|
|
15
|
+
rev: 1.20.0
|
|
16
16
|
hooks:
|
|
17
17
|
- id: blacken-docs
|
|
18
18
|
additional_dependencies:
|
|
19
|
-
- black==25.
|
|
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.
|
|
23
|
+
rev: v3.20.0
|
|
24
24
|
hooks:
|
|
25
25
|
- id: pyupgrade
|
|
26
|
-
args: [ --
|
|
26
|
+
args: [ --py310-plus ]
|
|
27
27
|
|
|
28
28
|
- repo: https://github.com/adamchainz/django-upgrade
|
|
29
|
-
rev: 1.
|
|
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.
|
|
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:
|
|
46
|
+
rev: v6.0.0
|
|
47
47
|
hooks:
|
|
48
|
-
- id:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
|
@@ -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
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: django-dynamic-admin-forms
|
|
3
|
-
Version: 3.2.
|
|
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
|
-
|
|
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-
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
|
|
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
|
[](https://pypi.org/project/django-dynamic-admin-forms/)
|
|
48
56
|
[](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
|
-
|
|
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
|
-
###
|
|
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 `
|
|
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
|
|
317
|
-
|
|
318
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
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 `
|
|
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
|
|
271
|
-
|
|
272
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|