Merge branch 'master' into part-requirements
This commit is contained in:
commit
17922312fb
|
|
@ -185,14 +185,14 @@ jobs:
|
||||||
fi
|
fi
|
||||||
- name: Login to Dockerhub
|
- name: Login to Dockerhub
|
||||||
if: github.event_name != 'pull_request' && steps.docker_login.outputs.skip_dockerhub_login != 'true'
|
if: github.event_name != 'pull_request' && steps.docker_login.outputs.skip_dockerhub_login != 'true'
|
||||||
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # pin@v4.0.0
|
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # pin@v4.1.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
- name: Log into registry ghcr.io
|
- name: Log into registry ghcr.io
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # pin@v4.0.0
|
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # pin@v4.1.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,7 @@ jobs:
|
||||||
- name: Export API Documentation
|
- name: Export API Documentation
|
||||||
run: invoke dev.schema --ignore-warnings --filename src/backend/InvenTree/schema.yml
|
run: invoke dev.schema --ignore-warnings --filename src/backend/InvenTree/schema.yml
|
||||||
- name: Upload schema
|
- name: Upload schema
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
|
||||||
with:
|
with:
|
||||||
name: schema.yml
|
name: schema.yml
|
||||||
path: src/backend/InvenTree/schema.yml
|
path: src/backend/InvenTree/schema.yml
|
||||||
|
|
@ -222,7 +222,7 @@ jobs:
|
||||||
echo "Downloaded api.yaml"
|
echo "Downloaded api.yaml"
|
||||||
- name: Running OpenAPI Spec diff action
|
- name: Running OpenAPI Spec diff action
|
||||||
id: breaking_changes
|
id: breaking_changes
|
||||||
uses: oasdiff/oasdiff-action/diff@1f38ea5ea0b4a2e4e49901c3bcdf4386a05e9ea1 # pin@main
|
uses: oasdiff/oasdiff-action/diff@f8cb9308b42121e793f835bd14c0b8090420430c # pin@main
|
||||||
with:
|
with:
|
||||||
base: "api.yaml"
|
base: "api.yaml"
|
||||||
revision: "src/backend/InvenTree/schema.yml"
|
revision: "src/backend/InvenTree/schema.yml"
|
||||||
|
|
@ -251,17 +251,17 @@ jobs:
|
||||||
- name: Extract settings / tags
|
- name: Extract settings / tags
|
||||||
run: invoke int.export-definitions --basedir docs
|
run: invoke int.export-definitions --basedir docs
|
||||||
- name: Upload settings
|
- name: Upload settings
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
|
||||||
with:
|
with:
|
||||||
name: inventree_settings.json
|
name: inventree_settings.json
|
||||||
path: docs/generated/inventree_settings.json
|
path: docs/generated/inventree_settings.json
|
||||||
- name: Upload tags
|
- name: Upload tags
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
|
||||||
with:
|
with:
|
||||||
name: inventree_tags.yml
|
name: inventree_tags.yml
|
||||||
path: docs/generated/inventree_tags.yml
|
path: docs/generated/inventree_tags.yml
|
||||||
- name: Upload filters
|
- name: Upload filters
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
|
||||||
with:
|
with:
|
||||||
name: inventree_filters.yml
|
name: inventree_filters.yml
|
||||||
path: docs/generated/inventree_filters.yml
|
path: docs/generated/inventree_filters.yml
|
||||||
|
|
@ -363,7 +363,7 @@ jobs:
|
||||||
pip install .
|
pip install .
|
||||||
if: needs.paths-filter.outputs.submit-performance == 'true'
|
if: needs.paths-filter.outputs.submit-performance == 'true'
|
||||||
- name: Performance Reporting
|
- name: Performance Reporting
|
||||||
uses: CodSpeedHQ/action@1c8ae4843586d3ba879736b7f6b7b0c990757fab # pin@v4
|
uses: CodSpeedHQ/action@db35df748deb45fdef0960669f57d627c1956c30 # pin@v4
|
||||||
# check if we are in inventree/inventree - reporting only works in that OIDC context
|
# check if we are in inventree/inventree - reporting only works in that OIDC context
|
||||||
if: github.repository == 'inventree/InvenTree' && needs.paths-filter.outputs.submit-performance == 'true'
|
if: github.repository == 'inventree/InvenTree' && needs.paths-filter.outputs.submit-performance == 'true'
|
||||||
with:
|
with:
|
||||||
|
|
@ -409,7 +409,7 @@ jobs:
|
||||||
- name: Coverage Tests
|
- name: Coverage Tests
|
||||||
run: invoke dev.test --check --coverage --translations
|
run: invoke dev.test --check --coverage --translations
|
||||||
- name: Upload raw coverage to artifacts
|
- name: Upload raw coverage to artifacts
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
|
||||||
with:
|
with:
|
||||||
name: coverage
|
name: coverage
|
||||||
path: .coverage
|
path: .coverage
|
||||||
|
|
@ -454,7 +454,7 @@ jobs:
|
||||||
env:
|
env:
|
||||||
node_version: '>=20.19.0'
|
node_version: '>=20.19.0'
|
||||||
- name: Performance Reporting
|
- name: Performance Reporting
|
||||||
uses: CodSpeedHQ/action@1c8ae4843586d3ba879736b7f6b7b0c990757fab # pin@v4
|
uses: CodSpeedHQ/action@db35df748deb45fdef0960669f57d627c1956c30 # pin@v4
|
||||||
with:
|
with:
|
||||||
mode: walltime
|
mode: walltime
|
||||||
run: inv dev.test --pytest
|
run: inv dev.test --pytest
|
||||||
|
|
@ -725,7 +725,7 @@ jobs:
|
||||||
invoke static
|
invoke static
|
||||||
env INVENTREE_CUSTOM_SPLASH="img/playwright_custom_splash.png" INVENTREE_CUSTOM_LOGO="img/playwright_custom_logo.png" npx nyc playwright test --project=customization
|
env INVENTREE_CUSTOM_SPLASH="img/playwright_custom_splash.png" INVENTREE_CUSTOM_LOGO="img/playwright_custom_logo.png" npx nyc playwright test --project=customization
|
||||||
npx nyc playwright test --project=chromium --project=firefox
|
npx nyc playwright test --project=chromium --project=firefox
|
||||||
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
|
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
|
||||||
if: ${{ !cancelled() && steps.tests.outcome == 'failure' }}
|
if: ${{ !cancelled() && steps.tests.outcome == 'failure' }}
|
||||||
with:
|
with:
|
||||||
name: playwright-report
|
name: playwright-report
|
||||||
|
|
@ -770,7 +770,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
cd src/backend/InvenTree/web/static
|
cd src/backend/InvenTree/web/static
|
||||||
zip -r frontend-build.zip web/ web/.vite
|
zip -r frontend-build.zip web/ web/.vite
|
||||||
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
|
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
|
||||||
with:
|
with:
|
||||||
name: frontend-build
|
name: frontend-build
|
||||||
path: src/backend/InvenTree/web/static/web
|
path: src/backend/InvenTree/web/static/web
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ jobs:
|
||||||
pip install --require-hashes -r contrib/dev_reqs/requirements.txt
|
pip install --require-hashes -r contrib/dev_reqs/requirements.txt
|
||||||
python3 .github/scripts/version_check.py
|
python3 .github/scripts/version_check.py
|
||||||
- name: Push to Stable Branch
|
- name: Push to Stable Branch
|
||||||
uses: ad-m/github-push-action@77c5b412c50b723d2a4fbc6d71fb5723bcd439aa # pin@v1.0.0
|
uses: ad-m/github-push-action@4cc74773234f74829a8c21bc4d69dd4be9cfa599 # pin@v1.1.0
|
||||||
if: env.stable_release == 'true'
|
if: env.stable_release == 'true'
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
@ -86,7 +86,7 @@ jobs:
|
||||||
tag: ${{ github.ref }}
|
tag: ${{ github.ref }}
|
||||||
overwrite: true
|
overwrite: true
|
||||||
- name: Upload frontend to artifacts
|
- name: Upload frontend to artifacts
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pin@v7.0.1
|
||||||
with:
|
with:
|
||||||
name: frontend-build
|
name: frontend-build
|
||||||
path: src/backend/InvenTree/web/static/frontend-build.zip
|
path: src/backend/InvenTree/web/static/frontend-build.zip
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ jobs:
|
||||||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||||
# format to the repository Actions tab.
|
# format to the repository Actions tab.
|
||||||
- name: "Upload artifact"
|
- name: "Upload artifact"
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||||
with:
|
with:
|
||||||
name: SARIF file
|
name: SARIF file
|
||||||
path: results.sarif
|
path: results.sarif
|
||||||
|
|
|
||||||
|
|
@ -97,3 +97,4 @@ repos:
|
||||||
rev: 0.4.3
|
rev: 0.4.3
|
||||||
hooks:
|
hooks:
|
||||||
- id: teyit
|
- id: teyit
|
||||||
|
language_version: python3.11
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@ gunicorn==25.3.0 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r contrib/container/requirements.in
|
# -r contrib/container/requirements.in
|
||||||
invoke==2.2.1 \
|
invoke==3.0.3 \
|
||||||
--hash=sha256:2413bc441b376e5cd3f55bb5d364f973ad8bdd7bf87e53c79de3c11bf3feecc8 \
|
--hash=sha256:437b6a622223824380bfb4e64f612711a6b648c795f565efc8625af66fb57f0c \
|
||||||
--hash=sha256:515bf49b4a48932b79b024590348da22f39c4942dff991ad1fb8b8baea1be707
|
--hash=sha256:f11327165e5cbb89b2ad1d88d3292b5113332c43b8553b494da435d6ec6f5053
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r contrib/container/requirements.in
|
# -r contrib/container/requirements.in
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,9 @@ Plugins can inherit from the [UserInterfaceMixin](./mixins/ui.md) class to provi
|
||||||
|
|
||||||
Note that the [InvenTree plugin creator](./creator.md) can be used to scaffold a new plugin with the necessary structure for frontend integration. This will automatically set up the necessary files and configurations to get started with frontend development.
|
Note that the [InvenTree plugin creator](./creator.md) can be used to scaffold a new plugin with the necessary structure for frontend integration. This will automatically set up the necessary files and configurations to get started with frontend development.
|
||||||
|
|
||||||
|
!!! info "Simplified Development"
|
||||||
|
Using the plugin creator can significantly simplify the process of developing a frontend plugin, as it provides a ready-made template with the necessary configurations for building and integrating the frontend code. Rolling your own frontend plugin from scratch is possible, but it requires a good understanding of the InvenTree frontend architecture and build process.
|
||||||
|
|
||||||
## Frontend Architecture
|
## Frontend Architecture
|
||||||
|
|
||||||
When designing a frontend plugin component, it is important to have at least a basic understanding of the InvenTree frontend architecture.
|
When designing a frontend plugin component, it is important to have at least a basic understanding of the InvenTree frontend architecture.
|
||||||
|
|
@ -76,20 +79,28 @@ The following properties are available in the `context` object:
|
||||||
| Property | Description |
|
| Property | Description |
|
||||||
| -------- | ----------- |
|
| -------- | ----------- |
|
||||||
| `version` | An object containing the current InvenTree version information. |
|
| `version` | An object containing the current InvenTree version information. |
|
||||||
|
| `api` | The Axios instance configured to communicate with the InvenTree API. |
|
||||||
|
| `queryClient` | The query client instance used for managing API calls in the frontend. |
|
||||||
| `user` | An object containing information about the currently logged-in user. |
|
| `user` | An object containing information about the currently logged-in user. |
|
||||||
|
| `userSettings` | An object containing user-specific settings. |
|
||||||
|
| `globalSettings` | An object containing global settings for the InvenTree instance. |
|
||||||
|
| `modelInformation` | An object containing information about the models available in the InvenTree instance. |
|
||||||
|
| `renderInstance` | A function to render a model instance |
|
||||||
| `host` | An object containing information about the current host (server) configuration. |
|
| `host` | An object containing information about the current host (server) configuration. |
|
||||||
| `i18n` | An object containing internationalization (i18n) functions for translating text. |
|
| `i18n` | An object containing internationalization (i18n) functions for translating text. |
|
||||||
| `locale` | The current locale being used for the user interface. |
|
| `locale` | The current locale being used for the user interface. |
|
||||||
| `api` | The Axios instance configured to communicate with the InvenTree API. |
|
|
||||||
| `queryClient` | The query client instance used for managing API calls in the frontend. |
|
|
||||||
| `navigate` | A function to navigate to a different page in the InvenTree web interface. |
|
| `navigate` | A function to navigate to a different page in the InvenTree web interface. |
|
||||||
| `globalSettings` | An object containing global settings for the InvenTree instance. |
|
|
||||||
| `userSettings` | An object containing user-specific settings. |
|
|
||||||
| `modelInformation` | An object containing information about the models available in the InvenTree instance. |
|
|
||||||
| `renderInstance` | A function to render a model instance |
|
|
||||||
| `theme` | The current Mantine theme being used in the InvenTree web interface. |
|
| `theme` | The current Mantine theme being used in the InvenTree web interface. |
|
||||||
| `colorScheme` | The current color scheme being used in the InvenTree web interface. |
|
| `colorScheme` | The current color scheme being used in the InvenTree web interface. |
|
||||||
| `forms` | A set of functional components for rendering forms in the InvenTree web interface. |
|
| `forms` | A set of functional components for rendering forms in the InvenTree web interface. |
|
||||||
|
| `tables` | A set of functional components for rendering tables in the InvenTree web interface. |
|
||||||
|
| `importer` | A set of functions for controlling the global importer drawer in the InvenTree web interface. |
|
||||||
|
| `model` | The model type associated with the rendered component (if applicable). |
|
||||||
|
| `id` | The ID (primary key) of the model instance being rendered (if applicable). |
|
||||||
|
| `instance` | The model instance data (if available). |
|
||||||
|
| `reloadContent` | A function which can be called to reload the plugin content. |
|
||||||
|
| `reloadInstance` | A function which can be called to reload the model instance. |
|
||||||
|
| `context` | Any additional context data which may be passed to the plugin. |
|
||||||
|
|
||||||
This set of components is passed through at render time to the plugin function, allowing the plugin code to hook directly into the InvenTree web interface and access the necessary context for rendering.
|
This set of components is passed through at render time to the plugin function, allowing the plugin code to hook directly into the InvenTree web interface and access the necessary context for rendering.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -321,6 +321,7 @@ The following cache settings are available:
|
||||||
| INVENTREE_CACHE_PORT | cache.port | Cache server port | 6379 |
|
| INVENTREE_CACHE_PORT | cache.port | Cache server port | 6379 |
|
||||||
| INVENTREE_CACHE_PASSWORD | cache.password | Cache server password | none |
|
| INVENTREE_CACHE_PASSWORD | cache.password | Cache server password | none |
|
||||||
| INVENTREE_CACHE_USER | cache.user | Cache server username | none |
|
| INVENTREE_CACHE_USER | cache.user | Cache server username | none |
|
||||||
|
| INVENTREE_CACHE_DB | cache.db | Cache server database index | 0 |
|
||||||
| INVENTREE_CACHE_CONNECT_TIMEOUT | cache.connect_timeout | Cache connection timeout (seconds) | 3 |
|
| INVENTREE_CACHE_CONNECT_TIMEOUT | cache.connect_timeout | Cache connection timeout (seconds) | 3 |
|
||||||
| INVENTREE_CACHE_TIMEOUT | cache.timeout | Cache timeout (seconds) | 3 |
|
| INVENTREE_CACHE_TIMEOUT | cache.timeout | Cache timeout (seconds) | 3 |
|
||||||
| INVENTREE_CACHE_TCP_KEEPALIVE | cache.tcp_keepalive | Cache TCP keepalive | True |
|
| INVENTREE_CACHE_TCP_KEEPALIVE | cache.tcp_keepalive | Cache TCP keepalive | True |
|
||||||
|
|
|
||||||
|
|
@ -241,7 +241,7 @@ By default, the Dockerized InvenTree web server binds to all available network i
|
||||||
This can be adjusted using the following environment variables:
|
This can be adjusted using the following environment variables:
|
||||||
|
|
||||||
| Environment Variable | Default |
|
| Environment Variable | Default |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- |
|
||||||
| INVENTREE_WEB_ADDR | 0.0.0.0 |
|
| INVENTREE_WEB_ADDR | 0.0.0.0 |
|
||||||
| INVENTREE_WEB_PORT | 8000 |
|
| INVENTREE_WEB_PORT | 8000 |
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -169,9 +169,9 @@ charset-normalizer==3.4.7 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# requests
|
# requests
|
||||||
click==8.3.1 \
|
click==8.3.2 \
|
||||||
--hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \
|
--hash=sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5 \
|
||||||
--hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6
|
--hash=sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d
|
||||||
# via
|
# via
|
||||||
# mkdocs
|
# mkdocs
|
||||||
# neoteroi-mkdocs
|
# neoteroi-mkdocs
|
||||||
|
|
@ -463,9 +463,9 @@ pathspec==1.0.4 \
|
||||||
# mkdocs
|
# mkdocs
|
||||||
# mkdocs-macros-plugin
|
# mkdocs-macros-plugin
|
||||||
# properdocs
|
# properdocs
|
||||||
platformdirs==4.9.4 \
|
platformdirs==4.9.6 \
|
||||||
--hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
|
--hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
|
||||||
--hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
|
--hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# mkdocs-get-deps
|
# mkdocs-get-deps
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,16 @@
|
||||||
"""InvenTree API version information."""
|
"""InvenTree API version information."""
|
||||||
|
|
||||||
# InvenTree API version
|
# InvenTree API version
|
||||||
INVENTREE_API_VERSION = 478
|
INVENTREE_API_VERSION = 479
|
||||||
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
||||||
|
|
||||||
INVENTREE_API_TEXT = """
|
INVENTREE_API_TEXT = """
|
||||||
|
|
||||||
|
v479 -> 2026-04-11 : https://github.com/inventree/InvenTree/pull/11723
|
||||||
|
- POST /api//notifications/readall/ now requires a POST action
|
||||||
|
- POST /api/admin/email/test/ - now returns a 200 on. a successful test
|
||||||
|
- GET /api/notifications/ - now uses user-centric permissions, not a general read
|
||||||
|
|
||||||
v478 -> 2026-04-11 : https://github.com/inventree/InvenTree/pull/11073
|
v478 -> 2026-04-11 : https://github.com/inventree/InvenTree/pull/11073
|
||||||
- Add OptionalField class for cleaner handling of optional fields in serializers
|
- Add OptionalField class for cleaner handling of optional fields in serializers
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,11 @@ def cache_user():
|
||||||
return cache_setting('user', None)
|
return cache_setting('user', None)
|
||||||
|
|
||||||
|
|
||||||
|
def cache_db():
|
||||||
|
"""Return the cache database index."""
|
||||||
|
return cache_setting('db', 0, typecast=int)
|
||||||
|
|
||||||
|
|
||||||
def is_global_cache_enabled() -> bool:
|
def is_global_cache_enabled() -> bool:
|
||||||
"""Check if the global cache is enabled.
|
"""Check if the global cache is enabled.
|
||||||
|
|
||||||
|
|
@ -95,9 +100,11 @@ def get_cache_config(global_cache: bool) -> dict:
|
||||||
user = cache_user() or ''
|
user = cache_user() or ''
|
||||||
|
|
||||||
if password:
|
if password:
|
||||||
redis_url = f'redis://{user}:{password}@{cache_host()}:{cache_port()}/0'
|
redis_url = (
|
||||||
|
f'redis://{user}:{password}@{cache_host()}:{cache_port()}/{cache_db()}'
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
redis_url = f'redis://{cache_host()}:{cache_port()}/0'
|
redis_url = f'redis://{cache_host()}:{cache_port()}/{cache_db()}'
|
||||||
|
|
||||||
keepalive_options = {
|
keepalive_options = {
|
||||||
'TCP_KEEPCNT': cache_setting('keepalive_count', 5, typecast=int),
|
'TCP_KEEPCNT': cache_setting('keepalive_count', 5, typecast=int),
|
||||||
|
|
|
||||||
|
|
@ -345,4 +345,8 @@ def sanitize_svg(
|
||||||
link_rel=None,
|
link_rel=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Replace non-breaking spaces with regular spaces to prevent SVG rendering issues
|
||||||
|
for nbsp in [' ', ' ']:
|
||||||
|
cleaned = cleaned.replace(nbsp, ' ')
|
||||||
|
|
||||||
return cleaned
|
return cleaned
|
||||||
|
|
|
||||||
|
|
@ -395,21 +395,8 @@ class NotificationMessageViewSet(
|
||||||
queryset = queryset.filter(user=request.user)
|
queryset = queryset.filter(user=request.user)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def get_permissions(self):
|
|
||||||
"""Override permissions for list view."""
|
|
||||||
if self.action == 'list':
|
|
||||||
return [IsAuthenticatedOrReadScope()]
|
|
||||||
else:
|
|
||||||
return super().get_permissions()
|
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
|
||||||
"""List view for all notifications of the current user."""
|
|
||||||
# TODO @matmair permissions for this are currently being overwritten in get_permissions - this should be moved to a dedicated endpoint
|
|
||||||
return super().list(request, *args, **kwargs)
|
|
||||||
|
|
||||||
# TODO @matmair this should really be a POST
|
|
||||||
@action(
|
@action(
|
||||||
detail=False, methods=['get'], permission_classes=[IsAuthenticatedOrReadScope]
|
detail=False, methods=['post'], permission_classes=[IsAuthenticatedOrReadScope]
|
||||||
)
|
)
|
||||||
def readall(self, request, *args, **kwargs):
|
def readall(self, request, *args, **kwargs):
|
||||||
"""Set all messages for the current user as read."""
|
"""Set all messages for the current user as read."""
|
||||||
|
|
@ -1248,7 +1235,6 @@ class EmailViewSet(BulkDeleteViewsetMixin, RetrieveDestroyModelViewSet):
|
||||||
'thread_id_key',
|
'thread_id_key',
|
||||||
]
|
]
|
||||||
|
|
||||||
@extend_schema(responses={201: common.serializers.TestEmailSerializer})
|
|
||||||
@action(
|
@action(
|
||||||
detail=False,
|
detail=False,
|
||||||
methods=['post'],
|
methods=['post'],
|
||||||
|
|
@ -1270,8 +1256,7 @@ class EmailViewSet(BulkDeleteViewsetMixin, RetrieveDestroyModelViewSet):
|
||||||
raise serializers.ValidationError(
|
raise serializers.ValidationError(
|
||||||
detail=f'Failed to send test email: "{reason}"'
|
detail=f'Failed to send test email: "{reason}"'
|
||||||
) # pragma: no cover
|
) # pragma: no cover
|
||||||
# TODO @matmair - breaking change: this should be a 200
|
return Response(serializer.data)
|
||||||
return Response(serializer.data, status=201)
|
|
||||||
|
|
||||||
|
|
||||||
admin_router.register('email', EmailViewSet, basename='api-email')
|
admin_router.register('email', EmailViewSet, basename='api-email')
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,9 @@ class EmailTests(InvenTreeAPITestCase):
|
||||||
)
|
)
|
||||||
def test_email_api(self):
|
def test_email_api(self):
|
||||||
"""Test that the email api endpoints work."""
|
"""Test that the email api endpoints work."""
|
||||||
self.post(reverse('api-email-test'), {'email': 'test@example.org'})
|
self.post(
|
||||||
|
reverse('api-email-test'), {'email': 'test@example.org'}, expected_code=200
|
||||||
|
)
|
||||||
|
|
||||||
response = self.get(reverse('api-email-list'), expected_code=200)
|
response = self.get(reverse('api-email-list'), expected_code=200)
|
||||||
self.assertIn('subject', response.data[0])
|
self.assertIn('subject', response.data[0])
|
||||||
|
|
|
||||||
|
|
@ -1332,7 +1332,7 @@ class NotificationTest(InvenTreeAPITestCase):
|
||||||
self.assertEqual(len(self.get(url, expected_code=200).data), 1)
|
self.assertEqual(len(self.get(url, expected_code=200).data), 1)
|
||||||
|
|
||||||
# Read with readall endpoint
|
# Read with readall endpoint
|
||||||
self.get(reverse('api-notifications-readall'), {}, expected_code=200)
|
self.post(reverse('api-notifications-readall'), {}, expected_code=200)
|
||||||
|
|
||||||
self.assertEqual(NotificationMessage.objects.filter(read=True).count(), 1)
|
self.assertEqual(NotificationMessage.objects.filter(read=True).count(), 1)
|
||||||
self.assertEqual(len(self.get(url, expected_code=200).data), 1)
|
self.assertEqual(len(self.get(url, expected_code=200).data), 1)
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -101,16 +101,16 @@ blessed==1.38.0 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
boto3==1.42.82 \
|
boto3==1.42.87 \
|
||||||
--hash=sha256:6df9ca0f5047c6afe6bd42244d8e059cde69e2cdb719ebd68d52c7d7beb529b2 \
|
--hash=sha256:15cc1404b3ccbcfe17bd5834d467b1b28d53d9aca44e3798dc44876ac57362e6 \
|
||||||
--hash=sha256:804341c8197c556e8e7ceb82388ee120f319a4efbb9dc368f6059760a11cfc7d
|
--hash=sha256:b5b86a826f8f12c7d38679f35bd0135807a6867a21eb8be6dea7c27aeb14ec14
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# django-anymail
|
# django-anymail
|
||||||
# django-storages
|
# django-storages
|
||||||
botocore==1.42.82 \
|
botocore==1.42.87 \
|
||||||
--hash=sha256:824dbb58c99d894f193ed1dd75cf59650e25c1b5adb9d3a66b39fdede46f259b \
|
--hash=sha256:1c6cc9555c1feec50b290a42de70ba6f04826c009562c2c12bb9990d0258482d \
|
||||||
--hash=sha256:a2bfe8537e95462ec06a46cc29c327f84746722bb4ce106491bfd3af8075ceed
|
--hash=sha256:32832df27c039cc1a518289afe0f6006296d3df26603b5f66e911457e67f0146
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# boto3
|
# boto3
|
||||||
|
|
@ -578,9 +578,9 @@ django-cors-headers==4.9.0 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
django-dbbackup==5.2.0 \
|
django-dbbackup==5.3.0 \
|
||||||
--hash=sha256:540948869e44778b5b33333cbab0cfe44279defd47df635d309ede8666894370 \
|
--hash=sha256:2c880dba7650539e8a724174fedb5213062c4fcda3aa09e1c5f3f573192106cb \
|
||||||
--hash=sha256:72b11dd31758abcf8f2d405fd2efbc49c9624bc17196f8c68542d3dc8d8d53c3
|
--hash=sha256:ff80b5facd524e3f6479235aeb330b094a1c982f8b0b9503c24ba0dc613162ed
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
|
|
@ -990,9 +990,9 @@ inflection==0.5.1 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# drf-spectacular
|
# drf-spectacular
|
||||||
invoke==2.2.1 \
|
invoke==3.0.3 \
|
||||||
--hash=sha256:2413bc441b376e5cd3f55bb5d364f973ad8bdd7bf87e53c79de3c11bf3feecc8 \
|
--hash=sha256:437b6a622223824380bfb4e64f612711a6b648c795f565efc8625af66fb57f0c \
|
||||||
--hash=sha256:515bf49b4a48932b79b024590348da22f39c4942dff991ad1fb8b8baea1be707
|
--hash=sha256:f11327165e5cbb89b2ad1d88d3292b5113332c43b8553b494da435d6ec6f5053
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# paramiko
|
# paramiko
|
||||||
|
|
@ -1033,147 +1033,141 @@ jwcrypto==1.5.7 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# django-oauth-toolkit
|
# django-oauth-toolkit
|
||||||
lxml==6.0.2 \
|
lxml==6.0.3 \
|
||||||
--hash=sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba \
|
--hash=sha256:04b7cedf52e125f86d0d426635e7fbe8e353d4cc272a1757888e3c072424381d \
|
||||||
--hash=sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8 \
|
--hash=sha256:06b9f3ac459b4565bbaa97aa5512aa7f9a1188c662f0108364f288f6daf35773 \
|
||||||
--hash=sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0 \
|
--hash=sha256:093786037b934ef4747b0e8a0e1599fe7df7dd8246e7f07d43bba1c4c8bd7b84 \
|
||||||
--hash=sha256:08b9d5e803c2e4725ae9e8559ee880e5328ed61aa0935244e0515d7d9dbec0aa \
|
--hash=sha256:0a9a79144a8051bc5fbb223fac895b87eb67b361f27b00c2ed4a07ee34246b90 \
|
||||||
--hash=sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f \
|
--hash=sha256:0b012cf200736d90f828b3ab4206857772c61b710f0a98d3814c7994decb6652 \
|
||||||
--hash=sha256:0aa7070978f893954008ab73bb9e3c24a7c56c054e00566a21b553dc18105fca \
|
--hash=sha256:0c46a246df7fbab1f7b018c7eb361585b295ac95dec806158d9ed1e63b477f05 \
|
||||||
--hash=sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf \
|
--hash=sha256:10bc4f37c28b4e1b3e901dde66e3a096eb128acf388d5b2962dc2941284293bb \
|
||||||
--hash=sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607 \
|
--hash=sha256:13f1594a183cee73f9a1dbfd35871c4e04b461f47eeb9bcf80f7d7856b1b136d \
|
||||||
--hash=sha256:17f68764f35fd78d7c4cc4ef209a184c38b65440378013d24b8aecd327c3e0c8 \
|
--hash=sha256:143ac903fb6c9be6da613390825c8e8bb8c8d71517d43882031f6b9bc89770ef \
|
||||||
--hash=sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452 \
|
--hash=sha256:16e5cbaa1a6351f2abefa4072e9aac1f09103b47fe7ab4496d54e5995b065162 \
|
||||||
--hash=sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700 \
|
--hash=sha256:16fbcf06ae534b2fa5bcdc19fcf6abd9df2e74fe8563147d1c5a687a130efed4 \
|
||||||
--hash=sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d \
|
--hash=sha256:19b079e81aa3a31b523a224b0dd46da4f56e1b1e248eef9a599e5c885c788813 \
|
||||||
--hash=sha256:1e786a464c191ca43b133906c6903a7e4d56bef376b75d97ccbb8ec5cf1f0a4b \
|
--hash=sha256:1b36a3c73f2a6d9c2bfae78089ca7aedae5c2ee5fd5214a15f00b2f89e558ba7 \
|
||||||
--hash=sha256:1ea99340b3c729beea786f78c38f60f4795622f36e305d9c9be402201efdc3b7 \
|
--hash=sha256:1b60a3a1205f869bd47874787c792087174453b1a869db4837bf5b3ff92be017 \
|
||||||
--hash=sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d \
|
--hash=sha256:20f8caa9beb61a688c4428631cb47fd6e0ba75ef30091cec5fee992138b2be77 \
|
||||||
--hash=sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6 \
|
--hash=sha256:239e9a6be3a79c03ec200d26f7bb17a4414704a208059e20050bf161e2d8848a \
|
||||||
--hash=sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a \
|
--hash=sha256:26cdd7c3f4c3b932b28859d0b70966c2ec8b67c106717d6320121002f8f99025 \
|
||||||
--hash=sha256:24a8e756c982c001ca8d59e87c80c4d9dcd4d9b44a4cbeb8d9be4482c514d41d \
|
--hash=sha256:2773dbe2cedee81f2769bd5d24ceb4037706cf032e1703513dd0e9476cd9375f \
|
||||||
--hash=sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca \
|
--hash=sha256:27e317e554bc6086a082688ddf137437e5f7f20ffdd736a6f5b4e3ed1ecf1247 \
|
||||||
--hash=sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb \
|
--hash=sha256:2a49123cc3209ccad7c4c5a4133bcfcfd4875f30461ea4d0aaa84e6608f712c5 \
|
||||||
--hash=sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed \
|
--hash=sha256:2ce76d113a7c3bf42761ec1de7ca615b0cbf9d8ae478eb1d6c20111d9c9fc098 \
|
||||||
--hash=sha256:2613e67de13d619fd283d58bda40bff0ee07739f624ffee8b13b631abf33083d \
|
--hash=sha256:2d00902610dd91a970a06d5f1a6e4f2426e04a9fa07209d58e09b345e2269267 \
|
||||||
--hash=sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e \
|
--hash=sha256:30c437d8bb9a9a9edff27e85b694342e47a26a6abc249abe00584a4824f9d80d \
|
||||||
--hash=sha256:2c8458c2cdd29589a8367c09c8f030f1d202be673f0ca224ec18590b3b9fb694 \
|
--hash=sha256:322c825054d02d35755b80dc5c39ba8a71c7c09c43453394a13b9bd8c0abc84c \
|
||||||
--hash=sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd \
|
--hash=sha256:336925309af5ecd9616acbe1c28d68ee0088839b1d42ae7dcc40ffecff959537 \
|
||||||
--hash=sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659 \
|
--hash=sha256:33741ec3b4268efffae8ba40f9b64523f4489caf270bde175535e659f03af05a \
|
||||||
--hash=sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c \
|
--hash=sha256:353161f166e76f0d8228f8f5216d110601d143a8b6d0fd869230e12c098a5842 \
|
||||||
--hash=sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314 \
|
--hash=sha256:38652c280cf50cc5cf955e3d0b691fa6a97046d84407bbae340d8e353f9014ef \
|
||||||
--hash=sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5 \
|
--hash=sha256:38acf7171535ffa7fff1fcec8b82ebd4e55cd02e581efe776928108421accaa1 \
|
||||||
--hash=sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849 \
|
--hash=sha256:3a0484bd1e84f82766befcbd71cccd7307dacfe08071e4dbc1d9a9b498d321e8 \
|
||||||
--hash=sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938 \
|
--hash=sha256:448e69211e59c39f398990753d15ba49f7218ec128f64ac8012ef16762e509a3 \
|
||||||
--hash=sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a \
|
--hash=sha256:46c80f7fd5dd7d8c269f6486b165c8f91c489e323f3a767221fb5b4b2b388d5f \
|
||||||
--hash=sha256:3efe1b21c7801ffa29a1112fab3b0f643628c30472d507f39544fd48e9549e34 \
|
--hash=sha256:4723da3e8f4281853c2eaab161b69cc14bc9b0811be4cfa5a1de36df47e0c660 \
|
||||||
--hash=sha256:3fee0851639d06276e6b387f1c190eb9d7f06f7f53514e966b26bae46481ec90 \
|
--hash=sha256:4b0f01fb8bdcaf4aa69cf55b2b2f8ef722e4423e1c020e7250dcb89a1d5db38e \
|
||||||
--hash=sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6 \
|
--hash=sha256:4ff774b43712b0cf40d9888a5494ca39aefe990c946511cc947b9fddcf74a29b \
|
||||||
--hash=sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba \
|
--hash=sha256:50293e024afe5e2c25da2be68c8ceca8618912a0701a73f75b488317c8081aa6 \
|
||||||
--hash=sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285 \
|
--hash=sha256:51014ee2ab2091dcd9cdef92532f0a1addb7c2cc52a2bd70682e441363de5c0d \
|
||||||
--hash=sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553 \
|
--hash=sha256:5892d2ef99449ebd8e30544af5bc61fd9c30e9e989093a10589766422f6c5e1a \
|
||||||
--hash=sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d \
|
--hash=sha256:59ff244cee0270fc4cf5f2ee920d4493ee88d0bcbc6e8465e9ef01439f1785e7 \
|
||||||
--hash=sha256:452b899faa64f1805943ec1c0c9ebeaece01a1af83e130b69cdefeda180bb42c \
|
--hash=sha256:5b6913a68d98c58c673667c864500ba31bc9b0f462effac98914e9a92ebacd2e \
|
||||||
--hash=sha256:45f93e6f75123f88d7f0cfd90f2d05f441b808562bf0bc01070a00f53f5028b5 \
|
--hash=sha256:5c35e5c3ed300990a46a144d3514465713f812b35dacfa83e928c60db7c90af7 \
|
||||||
--hash=sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601 \
|
--hash=sha256:5c45bdcdc2ca6cf26fddff3faa5de7a2ed7c7f6016b3de80125313a37f972378 \
|
||||||
--hash=sha256:4ddb1049fa0579d0cbd00503ad8c58b9ab34d1254c77bc6a5576d96ec7853dba \
|
--hash=sha256:5d559a84b2fd583e5bcf8ec4af1ec895f98811684d5fbd6524ea31a04f92d4ad \
|
||||||
--hash=sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37 \
|
--hash=sha256:609bf136a7339aeca2bd4268c7cd190f33d13118975fe9964eda8e5138f42802 \
|
||||||
--hash=sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f \
|
--hash=sha256:61399a5b01d74ec5f009762c74ab6ebf387e58393fc5d78368e12d4f577fea29 \
|
||||||
--hash=sha256:5921d924aa5468c939d95c9814fa9f9b5935a6ff4e679e26aaf2951f74043512 \
|
--hash=sha256:6289cb9145fbbc5b0e159c9fcd7fc09446dadc6b60b72c4d1012e80c7c727970 \
|
||||||
--hash=sha256:59c45e125140b2c4b33920d21d83681940ca29f0b83f8629ea1a2196dc8cfe6a \
|
--hash=sha256:631567ffc3ddb989ccdcd28f6b9fa5aab1ec7fc0e99fe65572b006a6aad347e2 \
|
||||||
--hash=sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438 \
|
--hash=sha256:6364aa77b13e04459df6a9d2b806465287e7540955527e75ebd5fda48532913d \
|
||||||
--hash=sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153 \
|
--hash=sha256:6556b3197bd8a237a16fcd7278d09f094c5777ae36a1435b5e8e488826386d96 \
|
||||||
--hash=sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9 \
|
--hash=sha256:6c055bafdcb53e7f9f75e22c009cd183dd410475e21c296d599531d7f03d1bf5 \
|
||||||
--hash=sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d \
|
--hash=sha256:724b26a38cef98d6869d00a33cb66083bee967598e44f6a8e53f1dd283c851b0 \
|
||||||
--hash=sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6 \
|
--hash=sha256:72d108ef9e39f45c6865ea8a5ba6736c0b1a33ddd6343653775349869e58c30b \
|
||||||
--hash=sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f \
|
--hash=sha256:7373ede7ccb89e6f6e39c1423b3a4d4ee48035d3b4619a6addced5c8b48d0ecc \
|
||||||
--hash=sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534 \
|
--hash=sha256:738aef404c862d2c3cd951364ee7175c9d50e8290f5726611c4208c0fba8d186 \
|
||||||
--hash=sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46 \
|
--hash=sha256:773c22d3de2dd5454b0f89b36d366fa0052f0e924656506c40462d8107acd00f \
|
||||||
--hash=sha256:66328dabea70b5ba7e53d94aa774b733cf66686535f3bc9250a7aab53a91caaf \
|
--hash=sha256:775266571f7027b1d77f5fce18a247b24f51a4404bdc1b90ec56be9b1e3801b9 \
|
||||||
--hash=sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f \
|
--hash=sha256:794b42f0112adfa3f23670aba5bc0ac9c9adfcee699c0df129b0186c812ac3ff \
|
||||||
--hash=sha256:6cdaefac66e8b8f30e37a9b4768a391e1f8a16a7526d5bc77a7928408ef68e93 \
|
--hash=sha256:7966fbce2d18fde579d5593933d36ad98cc7c8dc7f2b1916d127057ce0415062 \
|
||||||
--hash=sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8 \
|
--hash=sha256:7f753db5785ce019d7b25bb75638ef5a42a0e208aa9f19933262134e668ca6af \
|
||||||
--hash=sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f \
|
--hash=sha256:809726d4c72f1a902556df822c3acc5780053a12a05e16eac999392b30984c06 \
|
||||||
--hash=sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1 \
|
--hash=sha256:821fd53699eb498990c915ba955a392d07246454c9405e6c1d0692362503013d \
|
||||||
--hash=sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322 \
|
--hash=sha256:8243937d4673b46da90b4f5ea2627fd26842225e62e885828fdb8133aa1f7b32 \
|
||||||
--hash=sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f \
|
--hash=sha256:8341c446fca7f6be003c60aededf2f23a53d4881cf7e0bafb9cef69c217ae26a \
|
||||||
--hash=sha256:71695772df6acea9f3c0e59e44ba8ac50c4f125217e84aab21074a1a55e7e5c9 \
|
--hash=sha256:83c1d75e9d124ab82a4ddaf59135112f0dc49526b47355e5928ae6126a68e236 \
|
||||||
--hash=sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f \
|
--hash=sha256:83eca62141314d641ebe8089ffa532bbf572ea07dd6255b58c40130d06bb2509 \
|
||||||
--hash=sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7 \
|
--hash=sha256:841b89fc3d910d61c7c267db6bb7dc3a8b3dac240edb66220fcdf96fe70a0552 \
|
||||||
--hash=sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f \
|
--hash=sha256:87bebd6836e88c0a007f66b89814daf5d7041430eb491c91d1851abc89aa6e93 \
|
||||||
--hash=sha256:817ef43a0c0b4a77bd166dc9a09a555394105ff3374777ad41f453526e37f9cb \
|
--hash=sha256:88c524cf8c3b8d71dfc3de6cfb225138a876862a92d88bfa22eb9ff020729d45 \
|
||||||
--hash=sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916 \
|
--hash=sha256:8922a30704a4421d69a19e0499db5861da686c0bccc3a79cf3946e3155cf25f9 \
|
||||||
--hash=sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec \
|
--hash=sha256:89f8746c206d8cf2c167221831645d6cc2b24464afd9c428a5eb3fd34c584eb1 \
|
||||||
--hash=sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9 \
|
--hash=sha256:8b81ec1ecac3be8c1ff1e00ca1c1baf8122e87db9000cd2549963847bd5e3b41 \
|
||||||
--hash=sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d \
|
--hash=sha256:8c082ad2398664213a4bb5d133e2eb8bf239220b7d6688f8c8ffa9050057501f \
|
||||||
--hash=sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679 \
|
--hash=sha256:8c08926678852a233bf1ef645c4d683d56107f814482f8f41b21ef2c7659790e \
|
||||||
--hash=sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0 \
|
--hash=sha256:8d10a75e4d0a6a9ac2fec2f7ade682f468b51935102c70dab638fa4e94ffcb04 \
|
||||||
--hash=sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192 \
|
--hash=sha256:8eeec925ad7f81886d413b3a1f8715551f75543519229a9b35e957771e1826d5 \
|
||||||
--hash=sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917 \
|
--hash=sha256:911dbd0e87729016402e03533117ffe94147bfbcd7902b76af5854c4b437e096 \
|
||||||
--hash=sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c \
|
--hash=sha256:955550c78afb2be47755bd1b8153724292a5b539cf3f21665b310c145d08e6f8 \
|
||||||
--hash=sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d \
|
--hash=sha256:976b56bd0f4ca72280b4569eb227d012a541860f0d6fcc128ce26d22ef82c845 \
|
||||||
--hash=sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338 \
|
--hash=sha256:99457524afd384c330dc51e527976653d543ccadfa815d9f2d92c5911626e536 \
|
||||||
--hash=sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d \
|
--hash=sha256:9a1adb0e220cb8691202ba9d97646a06292657a122df4b92733861d42f7cf4d2 \
|
||||||
--hash=sha256:995e783eb0374c120f528f807443ad5a83a656a8624c467ea73781fc5f8a8304 \
|
--hash=sha256:9b8e0779780026979f217603385995202f364adc9807bd21210d81b9f562fc4e \
|
||||||
--hash=sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77 \
|
--hash=sha256:9d98063e6ae0da5084ec46952bb0a5ccb5e2cad168e32b4d65d1ec84e4b4ebd4 \
|
||||||
--hash=sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba \
|
--hash=sha256:a10f9967859229cae38b1aa7a96eb655c96b8adc96989b52c5b1f77d963a77a4 \
|
||||||
--hash=sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456 \
|
--hash=sha256:a1664c5139755df44cab3834f4400b331b02205d62d3fdcb1554f63439bf3372 \
|
||||||
--hash=sha256:a656ca105115f6b766bba324f23a67914d9c728dafec57638e2b92a9dcd76c62 \
|
--hash=sha256:a1f258e6aa0e6eda2c1199f5582c062c96c7d4a28d96d0c4daa79e39b3f2a764 \
|
||||||
--hash=sha256:a6b5b39cc7e2998f968f05309e666103b53e2edd01df8dc51b90d734c0825444 \
|
--hash=sha256:a4dc9f81707b9b56888fa7d3a889ac5219724cf0fbecab90ea5b197faf649534 \
|
||||||
--hash=sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a \
|
--hash=sha256:a6380c5035598e4665272ad3fc86c96ddb2a220d4059cce5ba4b660f78346ad9 \
|
||||||
--hash=sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f \
|
--hash=sha256:aa18653b795d2c273b8676f7ad2ca916d846d15864e335f746658e4c28eb5168 \
|
||||||
--hash=sha256:a8ffaeec5dfea5881d4c9d8913a32d10cfe3923495386106e4a24d45300ef79c \
|
--hash=sha256:abc39c4fb67f029400608f9a3a4a3f351ccb3c061b05fd3ad113e4cfbba8a8ee \
|
||||||
--hash=sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d \
|
--hash=sha256:ac2d6cdafa29672d6a604c641bf67ace3fd0735ec6885501a94943379219ddbf \
|
||||||
--hash=sha256:ac02dc29fd397608f8eb15ac1610ae2f2f0154b03f631e6d724d9e2ad4ee2c84 \
|
--hash=sha256:ac63a1ef1899ccadace10ac937c41321672771378374c254e931d001448ae372 \
|
||||||
--hash=sha256:af85529ae8d2a453feee4c780d9406a5e3b17cee0dd75c18bd31adcd584debc3 \
|
--hash=sha256:ac65c08ba1bd90f662cb1d5c79f7ae4c53b1c100f0bb6ec5df1f40ac29028a7e \
|
||||||
--hash=sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe \
|
--hash=sha256:ad6952810349cbfb843fe15e8afc580b2712359ae42b1d2b05d097bd48c4aea4 \
|
||||||
--hash=sha256:b2142a376b40b6736dfc214fd2902409e9e3857eff554fed2d3c60f097e62a62 \
|
--hash=sha256:b044fe3bdb8b68efa33cb5917ae9379f07ec2e416ecd18cf5d333650d6d2fcbb \
|
||||||
--hash=sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8 \
|
--hash=sha256:b29300eeaadf85df7f2df4bb29cadfb13b9600d1bb8053f35d82d96f9e6d088a \
|
||||||
--hash=sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178 \
|
--hash=sha256:b683665d0287308adafc90a5617a51a508d8af8c7040693693bb333b5f4474fe \
|
||||||
--hash=sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0 \
|
--hash=sha256:b68c29aac4788438b07d768057836de47589c7deaa3ad8dc4af488dfc27be388 \
|
||||||
--hash=sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7 \
|
--hash=sha256:bd4f70e091f2df300396bc9ce36963f90b87611324c2ca750072a6e6375beba2 \
|
||||||
--hash=sha256:b42f4d86b451c2f9d06ffb4f8bbc776e04df3ba070b9fe2657804b1b40277c48 \
|
--hash=sha256:bf98f5f87f6484302e7cce4e2ca5af43562902852063d916c3e2f1c115fdce60 \
|
||||||
--hash=sha256:b738f7e648735714bbb82bdfd030203360cfeab7f6e8a34772b3c8c8b820568c \
|
--hash=sha256:c137f8c8419c3de93e2998131d94628805f148e52b34da6d7533454e4d78bc2a \
|
||||||
--hash=sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9 \
|
--hash=sha256:c157bfef4e3b19688eb4da783c5bfabf5a3ac1ac8d317e0906f3feb18d4c89b7 \
|
||||||
--hash=sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7 \
|
--hash=sha256:c3de55b53f69ffa2fcfd897bd8a7e62f0f88a40a8a0c544e171e813f9d4ddbf5 \
|
||||||
--hash=sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048 \
|
--hash=sha256:c4fff7d77f440378cd841e340398edf5dbefee334816efbf521bb6e31651e54e \
|
||||||
--hash=sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c \
|
--hash=sha256:c71a387ea133481e725079cff22de45593bf0b834824de22829365ab1d2386c9 \
|
||||||
--hash=sha256:bc456d04db0515ce3320d714a1eac7a97774ff0849e7718b492d957da4631dd4 \
|
--hash=sha256:c8184fdb2259bda1db2db9d6e25f667769afc2531830b4fa29f83f66a7872dea \
|
||||||
--hash=sha256:bc532422ff26b304cfb62b328826bd995c96154ffd2bac4544f37dbb95ecaa8f \
|
--hash=sha256:c8e3b8a54e65393ce1d5c7d9753fe756f0d96089e7163b20ddec3e5bb56a963e \
|
||||||
--hash=sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b \
|
--hash=sha256:cbc7ce67f85b92db97c92219985432be84dc1ba9a028e68c6933e89551234df2 \
|
||||||
--hash=sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0 \
|
--hash=sha256:cbffd22fc8e4d80454efa968b0c93440a00b8b8a817ce0c29d2c6cb5ad324362 \
|
||||||
--hash=sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564 \
|
--hash=sha256:ce01ab3449015358f766a1950b3d818eedf9d4cdec3fa87e4eecaad10c0784db \
|
||||||
--hash=sha256:c54d83a2188a10ebdba573f16bd97135d06c9ef60c3dc495315c7a28c80a263f \
|
--hash=sha256:d1f14c1006722824c3f2158d147e520a82460b47ffdc2a84e444b3d244b65e4d \
|
||||||
--hash=sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee \
|
--hash=sha256:d20af2784c763928d0d0879cbc5a3739e4d81eefa0d68962d3478bff4c13e644 \
|
||||||
--hash=sha256:cb233f9c95f83707dae461b12b720c1af9c28c2d19208e1be03387222151daf5 \
|
--hash=sha256:d38c25bad123d6ce30bb37931d90a4e8a167cd796eeae9cd16c2bfce52718f8e \
|
||||||
--hash=sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62 \
|
--hash=sha256:d3d65e511e4e656ec67b472110f7a72cbf8547ca15f76fe74cffa4e97412a064 \
|
||||||
--hash=sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272 \
|
--hash=sha256:d573b81c29e20b1513afa386a544797a99cecde5497e6c77b6dfa4484112c819 \
|
||||||
--hash=sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9 \
|
--hash=sha256:d8781d812bb8efd47c35651639da38980383ff0d0c1f3269ade23e3a90799079 \
|
||||||
--hash=sha256:d4aec24d6b72ee457ec665344a29acb2d35937d5192faebe429ea02633151aad \
|
--hash=sha256:d8a8129bd502de138cdde22eac3990bde8a4efbafc72596baab67a495c48c974 \
|
||||||
--hash=sha256:d6690ec5ec1cce0385cb20896b16be35247ac8c2046e493d03232f1c2414d321 \
|
--hash=sha256:d9e779a9c3167d2f158c41b6347fbc9e855f6d5561920a33123beb86463c3f46 \
|
||||||
--hash=sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a \
|
--hash=sha256:dfc80c74233fe01157ab550fb12b9d07a2f1fa7c5900cefb484e3bf02e856fbc \
|
||||||
--hash=sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312 \
|
--hash=sha256:e0c88ca5fb307f7e817fc427681126e4712d3452258577bcb4ca86594c934852 \
|
||||||
--hash=sha256:dacf3c64ef3f7440e3167aa4b49aa9e0fb99e0aa4f9ff03795640bf94531bcb0 \
|
--hash=sha256:e759ff1b244725fef428c6b54f3dab4954c293b2d242a5f2e79db5cc3873de51 \
|
||||||
--hash=sha256:daf42de090d59db025af61ce6bdb2521f0f102ea0e6ea310f13c17610a97da4c \
|
--hash=sha256:e8ad05bb1fb4aa20ee201ab2f21c3c7571828e4fad525707437bb1c5f5ab6669 \
|
||||||
--hash=sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37 \
|
--hash=sha256:ecdded59dc50c0c28f652a98f69a7ada8bd2377248bf48c4a83c81204eb58b33 \
|
||||||
--hash=sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964 \
|
--hash=sha256:ed31e5852cd938704bc6c7a3822cbf84c7fa00ebfa914a1b4e2392d44f45bdfb \
|
||||||
--hash=sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484 \
|
--hash=sha256:edccf1157677db1da741d042601754b94af3926310c5763179200718ca738e70 \
|
||||||
--hash=sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e \
|
--hash=sha256:f179bae37ad673f57756b59f26833b7922230bef471fdb29492428f152bae8c6 \
|
||||||
--hash=sha256:e237b807d68a61fc3b1e845407e27e5eb8ef69bc93fe8505337c1acb4ee300b6 \
|
--hash=sha256:f27373113fda6621e4201f529908a24c8a190c2af355aed4711dadca44db4673 \
|
||||||
--hash=sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078 \
|
--hash=sha256:f297e9be3bbe59c31cfe5d0f38534510ed95856c480df3e8721b16d46ccaeeac \
|
||||||
--hash=sha256:e748d4cf8fef2526bb2a589a417eba0c8674e29ffcb570ce2ceca44f1e567bf6 \
|
--hash=sha256:f8f004d5c601eb50ac29a110632595a4f4c50db81c715d46a43de64ef88246cb \
|
||||||
--hash=sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388 \
|
--hash=sha256:f96bba9a26a064ce9e11099bad12fb08384b64d3acc0acf94bf386ca5cf4f95f \
|
||||||
--hash=sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924 \
|
--hash=sha256:fab00cef83d4f9d76c5e0722346e84bc174b071d68b4f725aeb0bf3877b9e6a6 \
|
||||||
--hash=sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2 \
|
--hash=sha256:fc6eeeddcee4d985707b3fc29fd6993e256e55798ca600586da68d3f0e04ec5a \
|
||||||
--hash=sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df \
|
--hash=sha256:fdb7786ebefaa0dad0d399dfeaf146b370a14591af2f3aea59e06f931a426678 \
|
||||||
--hash=sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd \
|
--hash=sha256:fddcf558bcb7a40993fb9e3ae3752d5d3a656479c71687799e43063563a2e68a \
|
||||||
--hash=sha256:f2a50c3c1d11cad0ebebbac357a97b26aa79d2bcaf46f256551152aa85d3a4d1 \
|
--hash=sha256:feb5b9ed7d0510663a78b94f2b417a41c41b42a7bb157ef398ef9d78e6f0fd50
|
||||||
--hash=sha256:f2e3b1a6bb38de0bc713edd4d612969dd250ca8b724be8d460001a387507021c \
|
|
||||||
--hash=sha256:f952dacaa552f3bb8834908dddd500ba7d508e6ea6eb8c52eb2d28f48ca06a31 \
|
|
||||||
--hash=sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed \
|
|
||||||
--hash=sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2 \
|
|
||||||
--hash=sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092 \
|
|
||||||
--hash=sha256:fe659f6b5d10fb5a17f00a50eb903eb277a71ee35df4615db573c069bcf967ac
|
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# python3-saml
|
# python3-saml
|
||||||
|
|
@ -1605,9 +1599,9 @@ pip-licenses==5.5.5 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
platformdirs==4.9.4 \
|
platformdirs==4.9.6 \
|
||||||
--hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
|
--hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
|
||||||
--hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
|
--hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# pint
|
# pint
|
||||||
|
|
@ -1717,9 +1711,9 @@ pynacl==1.6.2 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# paramiko
|
# paramiko
|
||||||
pypdf==6.10.0 \
|
pypdf==6.10.2 \
|
||||||
--hash=sha256:4c5a48ba258c37024ec2505f7e8fd858525f5502784a2e1c8d415604af29f6ef \
|
--hash=sha256:7d09ce108eff6bf67465d461b6ef352dcb8d84f7a91befc02f904455c6eea11d \
|
||||||
--hash=sha256:90005e959e1596c6e6c84c8b0ad383285b3e17011751cedd17f2ce8fcdfc86de
|
--hash=sha256:aa53be9826655b51c96741e5d7983ca224d898ac0a77896e64636810517624aa
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
|
|
@ -1749,9 +1743,9 @@ python-dotenv==1.2.2 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
python-fsutil==0.16.0 \
|
python-fsutil==0.16.1 \
|
||||||
--hash=sha256:a60e16bad77e3f00c3dca95433209c823bc45e0ae4158e52969002f3c7957a18 \
|
--hash=sha256:4cc78b9a1e64011cb4fdaeba531e457e649a6a9a560424e841426e47f3a153ad \
|
||||||
--hash=sha256:dc957a3541215baa935f66f6f15ceb9a8b7f803919c3d99fa57c818fc545f288
|
--hash=sha256:bda20802a19f6dc1bd221f6d2a79e0cd2b2c6eaf2b7c353a385c749917047442
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# django-maintenance-mode
|
# django-maintenance-mode
|
||||||
|
|
@ -1860,90 +1854,90 @@ qrcode[pil]==8.2 \
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
# django-allauth
|
# django-allauth
|
||||||
rapidfuzz==3.14.3 \
|
rapidfuzz==3.14.5 \
|
||||||
--hash=sha256:010e12e2411a4854b0434f920e72b717c43f8ec48d57e7affe5c42ecfa05dd0e \
|
--hash=sha256:0084b687b02b4e569b46d8d6d4ad25659528e6081cd6d067ca453a69035f07e4 \
|
||||||
--hash=sha256:02821366d928e68ddcb567fed8723dad7ea3a979fada6283e6914d5858674850 \
|
--hash=sha256:01550fe5f60fd176aa66b7611289d46dc4aa4b1b904874c7b6d1d54e581c5ec1 \
|
||||||
--hash=sha256:07aa0b5d8863e3151e05026a28e0d924accf0a7a3b605da978f0359bb804df43 \
|
--hash=sha256:0298d357e2bc59d572da4db0bc631009b6f8f6c9bc8c11e99a12b833f16b6575 \
|
||||||
--hash=sha256:0e38828d1381a0cceb8a4831212b2f673d46f5129a1897b0451c883eaf4a1747 \
|
--hash=sha256:068b3e965ca9d9ee4debe40001ae7c3938ba646308afd33cf0c66618147db65c \
|
||||||
--hash=sha256:152555187360978119e98ce3e8263d70dd0c40c7541193fc302e9b7125cf8f58 \
|
--hash=sha256:071d96b957a33b9296b9284b6350a0fb6d030b154a04efd7c15e56b98b79a517 \
|
||||||
--hash=sha256:1704fc70d214294e554a2421b473779bcdeef715881c5e927dc0f11e1692a0ff \
|
--hash=sha256:09d6c9ba091854f07817055d795d604179c12a8f308ba4c7d56f3719dfea1646 \
|
||||||
--hash=sha256:1b7ef2f4b8583a744338a18f12c69693c194fb6777c0e9ada98cd4d9e8f09d10 \
|
--hash=sha256:0d3378f471ef440473a396ce2f8e97ee12f89a78b495540e0a5617bbfe895638 \
|
||||||
--hash=sha256:1b86daa7419b5e8b180690efd1fdbac43ff19230803282521c5b5a9c83977655 \
|
--hash=sha256:0ebd1a18e2e47bc0b292a07e6ed9c3642f8aaa672d12253885f599b50807a4f9 \
|
||||||
--hash=sha256:1d83b8b712fa37e06d59f29a4b49e2e9e8635e908fbc21552fe4d1163db9d2a1 \
|
--hash=sha256:0f23e37019ec07712d58976b1ab2b889f8649a7f7c2f626a2f34ea9139e79279 \
|
||||||
--hash=sha256:1e6eefec45625c634926a9fd46c9e4f31118ac8f3156fff9494422cee45207e6 \
|
--hash=sha256:11bfc2ed8fbe4ab86bd516fadefab126f90e6dcadffa761739fcb304707dfd35 \
|
||||||
--hash=sha256:1ec0c8c0c3d4f97ced46b2e191e883f8c82dbbf6d5ebc1842366d7eff13cd5a6 \
|
--hash=sha256:13cb79c23ef5516e4c4e3830877be8b19aa75203636be1163d690d37803f6504 \
|
||||||
--hash=sha256:1f1925619627f8798f8c3a391d81071336942e5fe8467bc3c567f982e7ce2897 \
|
--hash=sha256:17a34330cd2a538c1ce5d400b61ba358c5b72c654b928ff87b362e88f8b864c7 \
|
||||||
--hash=sha256:1faa0f8f76ba75fd7b142c984947c280ef6558b5067af2ae9b8729b0a0f99ede \
|
--hash=sha256:1a31cc6d7d03e7318a0974c038959c59e19c752b81115f2e9138b3331cd64d45 \
|
||||||
--hash=sha256:2491937177868bc4b1e469087601d53f925e8d270ccc21e07404b4b5814b7b5f \
|
--hash=sha256:1e910eebca9fd0eba245c0555e764597e8a0cccb673a92da2dc2397050725f48 \
|
||||||
--hash=sha256:2dc37bc20272f388b8c3a4eba4febc6e77e50a8f450c472def4751e7678f55e4 \
|
--hash=sha256:1e989f86113be66574113b9c7bdf4793f3f863d248e47d911b355e05ca6b6b10 \
|
||||||
--hash=sha256:32eeafa3abce138bb725550c0e228fc7eaeec7059aa8093d9cbbec2b58c2371a \
|
--hash=sha256:2e83cd2e25bb4edd97b689d9979d9c3acccdaaf26ceac08212ceece202febcfa \
|
||||||
--hash=sha256:33a325ed0e8e1aa20c3e75f8ab057a7b248fdea7843c2a19ade0008906c14af0 \
|
--hash=sha256:39ef8658aaf67d51667e7bdaf7096f432333377d8302ac43c70b5df8a4cf89b8 \
|
||||||
--hash=sha256:33da4bbaf44e9755b0ce192597f3bde7372fe2e381ab305f41b707a95ac57aa7 \
|
--hash=sha256:3d50e5861872935fece391351cbb5ba21d1bced277cf5e1143d207a0a35f1925 \
|
||||||
--hash=sha256:37d3c653af15cd88592633e942f5407cb4c64184efab163c40fcebad05f25141 \
|
--hash=sha256:3e91dcd2549b8f8d843f98ba03a17e01f3d8b72ce942adbbb6761bc58ffce813 \
|
||||||
--hash=sha256:3fecce764cf5a991ee2195a844196da840aba72029b2612f95ac68a8b74946bf \
|
--hash=sha256:419e4397a36e2665ec992d8d64c20ba4b2a42500c76ecadeca78a4f19cb9cc32 \
|
||||||
--hash=sha256:43d0305c36f504232f18ea04e55f2059bb89f169d3119c4ea96a0e15b59e2a91 \
|
--hash=sha256:440d30faaf682ca496170a7f0cc5453ec942e3e079f0fd802c9a7f938dfb50a3 \
|
||||||
--hash=sha256:43e38c1305cffae8472572a0584d4ffc2f130865586a81038ca3965301f7c97c \
|
--hash=sha256:46b92a9970dcc34f0096901c792644094cab49554ac3547f35e3aebbdf0a3610 \
|
||||||
--hash=sha256:442125473b247227d3f2de807a11da6c08ccf536572d1be943f8e262bae7e4ea \
|
--hash=sha256:478b59bb018a6780d73f33e38d0b3ec5e968a6c1ed42876b993dd456b7aa20e8 \
|
||||||
--hash=sha256:442cba39957a008dfc5bdef21a9c3f4379e30ffb4e41b8555dbaf4887eca9300 \
|
--hash=sha256:48bee0b91bebfaec41e1081e351000659ab7570cc4598d617aa04d5bf827f9e6 \
|
||||||
--hash=sha256:489ce98a895c98cad284f0a47960c3e264c724cb4cfd47a1430fa091c0c25204 \
|
--hash=sha256:4900143d82071bdda533b00300c40b14b963ff826b3642cc463b6dd0f036585e \
|
||||||
--hash=sha256:4ad73afb688b36864a8d9b7344a9cf6da186c471e5790cbf541a635ee0f457f2 \
|
--hash=sha256:4a60f0057231188e3bd30216f7b4e0f279b11fa4ec818bb6c1d9f014d1562fbc \
|
||||||
--hash=sha256:4b39921df948388a863f0e267edf2c36302983459b021ab928d4b801cbe6a421 \
|
--hash=sha256:56227a61fd3d17b0cd9793132431f3a3d07c8654be96794ba9f89fe0fc8b2d09 \
|
||||||
--hash=sha256:4e49c9e992bc5fc873bd0fff7ef16a4405130ec42f2ce3d2b735ba5d3d4eb70f \
|
--hash=sha256:578e6051f6d5e6200c259b47a103cf06bb875ab5814d17333fc0b5c290b22f4c \
|
||||||
--hash=sha256:52619d25a09546b8db078981ca88939d72caa6b8701edd8b22e16482a38e799f \
|
--hash=sha256:593c00dac4e30231c35bf3b4f1da8ec0998762e9e94425586a5d636fcd57f9d0 \
|
||||||
--hash=sha256:54fa03062124e73086dae66a3451c553c1e20a39c077fd704dc7154092c34c63 \
|
--hash=sha256:59b3dba758661a318995655435c6ab20a04ade79fa51e75bc8dc107cac8df280 \
|
||||||
--hash=sha256:56fefb4382bb12250f164250240b9dd7772e41c5c8ae976fd598a32292449cc5 \
|
--hash=sha256:5ab449c9abd0d4e1f8145dce0798a4c822a1a1933d613c764a641bea88b8bdab \
|
||||||
--hash=sha256:576e4b9012a67e0bf54fccb69a7b6c94d4e86a9540a62f1a5144977359133583 \
|
--hash=sha256:5dfa89d78f22cd773054caff44827b846161a29f2dcf7e78b8f90d086621e502 \
|
||||||
--hash=sha256:57f878330c8d361b2ce76cebb8e3e1dc827293b6abf404e67d53260d27b5d941 \
|
--hash=sha256:649712823f3abcdc48427147a5384fac15623ba435d0013959b52e6462521397 \
|
||||||
--hash=sha256:5cfc3d57abd83c734d1714ec39c88a34dd69c85474918ebc21296f1e61eb5ca8 \
|
--hash=sha256:667f40fe9c81ad129b198d236881b00dd9e8314d9cc72d03c3e16bdfe5879051 \
|
||||||
--hash=sha256:656e52b054d5b5c2524169240e50cfa080b04b1c613c5f90a2465e84888d6f15 \
|
--hash=sha256:6737b35d5af7479c5bf9710f7b17edd9d2c43128d974d25fb4ea653e42c64609 \
|
||||||
--hash=sha256:685c93ea961d135893b5984a5a9851637d23767feabe414ec974f43babbd8226 \
|
--hash=sha256:67f3f9d2b444268ab53e47d31bab89954888d23c04c6789f2c727e51fe4b1d13 \
|
||||||
--hash=sha256:6a014ba09657abfcfeed64b7d09407acb29af436d7fc075b23a298a7e4a6b41c \
|
--hash=sha256:7092a216728f80c960bd6b3807275d1ee318b168986bd5dc523349581d4890b8 \
|
||||||
--hash=sha256:6c5f545f454871e6af05753a0172849c82feaf0f521c5ca62ba09e1b382d6382 \
|
--hash=sha256:738c96944d076deeaff70e92b65696ab4f7ecb8081d7791c5403a3257dfaf8ff \
|
||||||
--hash=sha256:6de00eb84c71476af7d3110cf25d8fe7c792d7f5fa86764ef0b4ca97e78ca3ed \
|
--hash=sha256:77eac0526899b3c3ad1454bb2b03cdb491d67358ec8ef0c9c48bd61b632b431d \
|
||||||
--hash=sha256:73b07566bc7e010e7b5bd490fb04bb312e820970180df6b5655e9e6224c137db \
|
--hash=sha256:7d5ca9c7832e6879a707296d1463685f7c243a27846227044504741640caec66 \
|
||||||
--hash=sha256:769f31c60cd79420188fcdb3c823227fc4a6deb35cafec9d14045c7f6743acae \
|
--hash=sha256:7e580cb04ad849ae9b786fa21383c6b994b6e6c1444ad1cb9f22392759d72741 \
|
||||||
--hash=sha256:7ba009977601d8b0828bfac9a110b195b3e4e79b350dcfa48c11269a9f1918a0 \
|
--hash=sha256:8166efddea49fdbc61185559f47593239e4794fd7c9044dd5a789d1a90af852d \
|
||||||
--hash=sha256:7ccbf68100c170e9a0581accbe9291850936711548c6688ce3bfb897b8c589ad \
|
--hash=sha256:823b1b9d9230809d8edcc18872770764bfe8ef4357995e16744047c8ccf0e489 \
|
||||||
--hash=sha256:7cf174b52cb3ef5d49e45d0a1133b7e7d0ecf770ed01f97ae9962c5c91d97d23 \
|
--hash=sha256:88b7d31ff1cc5e9bc0e4406e6b1fa00b6d37163d50bb58091e9b976ff1129faa \
|
||||||
--hash=sha256:7d9af908c2f371bfb9c985bd134e295038e3031e666e4b2ade1e7cb7f5af2f1a \
|
--hash=sha256:8c90cdf8516d9057e502aa6003cea71cf5ec27cc44699ca52412b502a04761bb \
|
||||||
--hash=sha256:834d1e818005ed0d4ae38f6b87b86fad9b0a74085467ece0727d20e15077c094 \
|
--hash=sha256:8ce1d850b3c0178440efde9e884d98421b5e87ff925f364d6d79e23910d7593f \
|
||||||
--hash=sha256:8383b6d0d92f6cd008f3c9216535be215a064b2cc890398a678b56e6d280cb63 \
|
--hash=sha256:8f4a8f5cc84c7ad6bffa0e9947b33eb343ad66e6b53e94fe54378a5508c5ed53 \
|
||||||
--hash=sha256:89acb8cbb52904f763e5ac238083b9fc193bed8d1f03c80568b20e4cef43a519 \
|
--hash=sha256:93d8da883a35116d6813432177f35e570db5b0a5e30ecb0cbd7cb39c815735df \
|
||||||
--hash=sha256:948b00e8476a91f510dd1ec07272efc7d78c275d83b630455559671d4e33b678 \
|
--hash=sha256:95d937e74c1a7a1287dfb03b62a827be08ede10a155cf1af73bbf47f2b73ee6e \
|
||||||
--hash=sha256:9ec02e62ae765a318d6de38df609c57fc6dacc65c0ed1fd489036834fd8a620c \
|
--hash=sha256:9669753caef7fdc6529f6adcc5883ed98d65976445d9322e7dbdb6b697feee13 \
|
||||||
--hash=sha256:a0a28add871425c2fe94358c6300bbeb0bc2ed828ca003420ac6825408f5a424 \
|
--hash=sha256:97131ab2be39043054ee28d99e09efe316e6d53449b7e962dfcf3c2de8b2b246 \
|
||||||
--hash=sha256:a2135b138bcdcb4c3742d417f215ac2d8c2b87bde15b0feede231ae95f09ec41 \
|
--hash=sha256:97c6d85283629646fa87acc22c66b30ea9d4de7f6fdf887daa2e30fa041829b5 \
|
||||||
--hash=sha256:adb44d996fc610c7da8c5048775b21db60dd63b1548f078e95858c05c86876a3 \
|
--hash=sha256:9981d38a703b86f0e315a3cd229fd1906fe1d91c989ed121fb975b3c849f89f5 \
|
||||||
--hash=sha256:b5100fd6bcee4d27f28f4e0a1c6b5127bc8ba7c2a9959cad9eab0bf4a7ab3329 \
|
--hash=sha256:9ad37a0be705b544af6296da8edddc260d10a8ae5462530fc9991f66498bb1f9 \
|
||||||
--hash=sha256:b9fcd4d751a4fffa17aed1dde41647923c72c74af02459ad1222e3b0022da3a1 \
|
--hash=sha256:a2ae6f53f99c9a0eca7a0afc5b4e45fc73bc1dd4ac74c00509031d76df80ed98 \
|
||||||
--hash=sha256:beda6aa9bc44d1d81242e7b291b446be352d3451f8217fcb068fc2933927d53b \
|
--hash=sha256:aac0ad28c686a5e72b81668b906c030ee28050b244544b8af68e12fb32543895 \
|
||||||
--hash=sha256:c5fb2d978a601820d2cfd111e2c221a9a7bfdf84b41a3ccbb96ceef29f2f1ac7 \
|
--hash=sha256:af3b859726cd3374287e405e14b9634563c078c5531a4f62375508addebddad1 \
|
||||||
--hash=sha256:c71ce6d4231e5ef2e33caa952bfe671cb9fd42e2afb11952df9fad41d5c821f9 \
|
--hash=sha256:af6a90a4ed2a48fa1a2d17e9d824e6c7c950bea5bad0b707c77fd55751e6bfef \
|
||||||
--hash=sha256:c7bd1816db05d6c5ffb3a4df0a2b7b56fb8c81ef584d08e37058afa217da91b1 \
|
--hash=sha256:b002c7994cc9f2bc9d9856f0fbaee6e8072c983873846c92f25cefba5b2a925f \
|
||||||
--hash=sha256:c7e40c0a0af02ad6e57e89f62bef8604f55a04ecae90b0ceeda591bbf5923317 \
|
--hash=sha256:b486b5218808f6f4dc471b114b1054e63553db69705c97da0271f47bd706aedd \
|
||||||
--hash=sha256:cc594bbcd3c62f647dfac66800f307beaee56b22aaba1c005e9c4c40ed733923 \
|
--hash=sha256:b9c6bd754d11f6e78ac54e3d86b4b11dc1ba2f13e5fc958899574532897f5a99 \
|
||||||
--hash=sha256:cc65e72790ddfd310c2c8912b45106e3800fefe160b0c2ef4d6b6fec4e826457 \
|
--hash=sha256:ba10ac57884ce82112f7ed910b67e7fb6072d8ef2c06e30dc63c0f604a112e0e \
|
||||||
--hash=sha256:cec3c0da88562727dd5a5a364bd9efeb535400ff0bfb1443156dd139a1dd7b50 \
|
--hash=sha256:bf5018938208d4597b2e679a4f8cff9fd252f1df53583130ae56281a21801b64 \
|
||||||
--hash=sha256:cfe8df315ab4e6db4e1be72c5170f8e66021acde22cd2f9d04d2058a9fd8162e \
|
--hash=sha256:c0919d1f89ddf91129906705723118ea09754171e4116f5a5dbc667c7bc9b261 \
|
||||||
--hash=sha256:d1fa009f8b1100e4880868137e7bf0501422898f7674f2adcd85d5a67f041296 \
|
--hash=sha256:c5801a89604c65ab4cc9e91b23bc4076d0ca80efd8c976fb63843d7879a85d7f \
|
||||||
--hash=sha256:d7843a1abf0091773a530636fdd2a49a41bcae22f9910b86b4f903e76ddc82dc \
|
--hash=sha256:c84af70bcf34e99aee894e46a0f1ac77f17d0ef828179c387407642e2466d28a \
|
||||||
--hash=sha256:da2a007434323904719158e50f3076a4dadb176ce43df28ed14610c773cc9825 \
|
--hash=sha256:cb2829fedd672dd7107267189dabe2bbe07972801d636014417c6861eb89e358 \
|
||||||
--hash=sha256:dbcb726064b12f356bf10fffdb6db4b6dce5390b23627c08652b3f6e49aa56ae \
|
--hash=sha256:d45e06f60729e07d9b20c205f7e5cff90b6ef2584e852eecf46e045aea69627d \
|
||||||
--hash=sha256:dc8c07801df5206b81ed6bd6c35cb520cf9b6c64b9b0d19d699f8633dc942897 \
|
--hash=sha256:d7ca16637c0ede8243f84074044bd0b2335a0341421f8227c85756de2d18c819 \
|
||||||
--hash=sha256:dea2d113e260a5da0c4003e0a5e9fdf24a9dc2bb9eaa43abd030a1e46ce7837d \
|
--hash=sha256:d8375e3da319593389727c3187ccaf3e0e84199accc530866b8e0f2b79af05e9 \
|
||||||
--hash=sha256:dea97ac3ca18cd3ba8f3d04b5c1fe4aa60e58e8d9b7793d3bd595fdb04128d7a \
|
--hash=sha256:dfa552338f51aec280f17b02d28bace1e162d1a84ccd80e3339a57f98aedb56b \
|
||||||
--hash=sha256:dee362e7e79bae940a5e2b3f6d09c6554db6a4e301cc68343886c08be99844f1 \
|
--hash=sha256:dfef96543ced67d9513a422755db422ae1dc34dade0a1485e0b43e7342ed3ebf \
|
||||||
--hash=sha256:e195a77d06c03c98b3fc06b8a28576ba824392ce40de8c708f96ce04849a052e \
|
--hash=sha256:e012177c8e8a8a0754ae0d6027d63042aa5ff036d9f40f07cb3466a6082e21b8 \
|
||||||
--hash=sha256:e6b5e3036976f0fde888687d91be86d81f9ac5f7b02e218913c38285b756be6c \
|
--hash=sha256:e251126d48615e1f02b4a178f2cd0cd4f0332b8a019c01a2e10480f7552554b4 \
|
||||||
--hash=sha256:e6c31a4aa68cfa75d7eede8b0ed24b9e458447db604c2db53f358be9843d81d3 \
|
--hash=sha256:e52da10236aa6212de71b9e170bace65b64b129c0dea7fc243d6c9ce976f5074 \
|
||||||
--hash=sha256:e805e52322ae29aa945baf7168b6c898120fbc16d2b8f940b658a5e9e3999253 \
|
--hash=sha256:eacb434410b8d9ca99a8d42352ef085cf423e3c76c1f0b86be2fcba3bff2952c \
|
||||||
--hash=sha256:ea188aa00e9bcae8c8411f006a5f2f06c4607a02f24eab0d8dc58566aa911f35 \
|
--hash=sha256:ebd8fd343bf8492a1e60bcb6dc99f90f74f65d98d8241a6b3e1fed225b76ecd6 \
|
||||||
--hash=sha256:ecd7453e02cf072258c3a6b8e930230d789d5d46cc849503729f9ce475d0e785 \
|
--hash=sha256:f0b2af76b7e7060c09e1a0dfa9410eb19369cbe6164509bff2ef94094b54d2b6 \
|
||||||
--hash=sha256:ef6bf930b947bd0735c550683939a032090f1d688dfd8861d6b45307b96fd5c5 \
|
--hash=sha256:f2073495a7f9b75e57e600747ac09510d67683fd64d3228e009740b7ef88f9fe \
|
||||||
--hash=sha256:f3d15d8527e2b293e38ce6e437631af0708df29eafd7c9fc48210854c94472f9 \
|
--hash=sha256:f4c1bca487a17fe4226b4ffb2d30e799d2b274d692cffa76bd0746f56235fca3 \
|
||||||
--hash=sha256:f3eb0ff3b75d6fdccd40b55e7414bb859a1cda77c52762c9c82b85569f5088e7 \
|
--hash=sha256:f9fff308486bbd2c8c24f25e8e152c7594d3fe8db265a2d6a1ce24d58671127f \
|
||||||
--hash=sha256:fa7c8f26f009f8c673fbfb443792f0cf8cf50c4e18121ff1e285b5e08a94fbdb \
|
--hash=sha256:fbf1b8bb2695415b347f3727da1addca2acb82c9b97ac86bebf8b1bead1eb12d \
|
||||||
--hash=sha256:fce3152f94afcfd12f3dd8cf51e48fa606e3cb56719bccebe3b401f43d0714f9
|
--hash=sha256:feedf219672eef83ea6be6f3bb093bba396a8560fc75be85ba225f082903df0a
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
|
|
|
||||||
|
|
@ -247,9 +247,9 @@ charset-normalizer==3.4.7 \
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# pdfminer-six
|
# pdfminer-six
|
||||||
# requests
|
# requests
|
||||||
click==8.3.1 \
|
click==8.3.2 \
|
||||||
--hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \
|
--hash=sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5 \
|
||||||
--hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6
|
--hash=sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d
|
||||||
# via pip-tools
|
# via pip-tools
|
||||||
coverage[toml]==7.13.5 \
|
coverage[toml]==7.13.5 \
|
||||||
--hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \
|
--hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \
|
||||||
|
|
@ -515,9 +515,9 @@ pip-tools==7.5.3 \
|
||||||
--hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \
|
--hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \
|
||||||
--hash=sha256:8fa364779ebc010cbfe17cb9de404457ac733e100840423f28f6955de7742d41
|
--hash=sha256:8fa364779ebc010cbfe17cb9de404457ac733e100840423f28f6955de7742d41
|
||||||
# via -r src/backend/requirements-dev.in
|
# via -r src/backend/requirements-dev.in
|
||||||
platformdirs==4.9.4 \
|
platformdirs==4.9.6 \
|
||||||
--hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
|
--hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
|
||||||
--hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
|
--hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements-3.14.txt
|
# -c src/backend/requirements-3.14.txt
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
|
|
@ -550,9 +550,9 @@ pyproject-hooks==1.2.0 \
|
||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# pip-tools
|
# pip-tools
|
||||||
pytest==9.0.2 \
|
pytest==9.0.3 \
|
||||||
--hash=sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b \
|
--hash=sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9 \
|
||||||
--hash=sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11
|
--hash=sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c
|
||||||
# via
|
# via
|
||||||
# pytest-codspeed
|
# pytest-codspeed
|
||||||
# pytest-django
|
# pytest-django
|
||||||
|
|
@ -578,9 +578,9 @@ pytest-django==4.12.0 \
|
||||||
--hash=sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85 \
|
--hash=sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85 \
|
||||||
--hash=sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758
|
--hash=sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758
|
||||||
# via -r src/backend/requirements-dev.in
|
# via -r src/backend/requirements-dev.in
|
||||||
python-discovery==1.2.1 \
|
python-discovery==1.2.2 \
|
||||||
--hash=sha256:180c4d114bff1c32462537eac5d6a332b768242b76b69c0259c7d14b1b680c9e \
|
--hash=sha256:876e9c57139eb757cb5878cbdd9ae5379e5d96266c99ef731119e04fffe533bb \
|
||||||
--hash=sha256:b6a957b24c1cd79252484d3566d1b49527581d46e789aaf43181005e56201502
|
--hash=sha256:e1ae95d9af875e78f15e19aed0c6137ab1bb49c200f21f5061786490c9585c7a
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
pyyaml==6.0.3 \
|
pyyaml==6.0.3 \
|
||||||
--hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \
|
--hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \
|
||||||
|
|
@ -711,13 +711,13 @@ ty==0.0.1a21 \
|
||||||
--hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \
|
--hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \
|
||||||
--hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a
|
--hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a
|
||||||
# via -r src/backend/requirements-dev.in
|
# via -r src/backend/requirements-dev.in
|
||||||
types-psycopg2==2.9.21.20260223 \
|
types-psycopg2==2.9.21.20260408 \
|
||||||
--hash=sha256:78ed70de2e56bc6b5c26c8c1da8e9af54e49fdc3c94d1504609f3519e2b84f02 \
|
--hash=sha256:49b086bfc9e0ce901c6537403ead1c19c75275571040b037af0248a8e48c322f \
|
||||||
--hash=sha256:c6228ade72d813b0624f4c03feeb89471950ac27cd0506b5debed6f053086bc8
|
--hash=sha256:bb65cd12f53b6633077fd782607a33065e1f3bf585219c9f786b61ad2b72211c
|
||||||
# via django-types
|
# via django-types
|
||||||
types-pyyaml==6.0.12.20250915 \
|
types-pyyaml==6.0.12.20260408 \
|
||||||
--hash=sha256:0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3 \
|
--hash=sha256:92a73f2b8d7f39ef392a38131f76b970f8c66e4c42b3125ae872b7c93b556307 \
|
||||||
--hash=sha256:e7d4d9e064e89a3b3cae120b4990cd370874d2bf12fa5f46c97018dd5d3c9ab6
|
--hash=sha256:fbc42037d12159d9c801ebfcc79ebd28335a7c13b08a4cfbc6916df78fee9384
|
||||||
# via django-stubs
|
# via django-stubs
|
||||||
typing-extensions==4.15.0 \
|
typing-extensions==4.15.0 \
|
||||||
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
|
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
|
||||||
|
|
@ -735,9 +735,9 @@ urllib3==2.6.3 \
|
||||||
# -c src/backend/requirements-3.14.txt
|
# -c src/backend/requirements-3.14.txt
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# requests
|
# requests
|
||||||
virtualenv==21.2.0 \
|
virtualenv==21.2.1 \
|
||||||
--hash=sha256:1720dc3a62ef5b443092e3f499228599045d7fea4c79199770499df8becf9098 \
|
--hash=sha256:b66ffe81301766c0d5e2208fc3576652c59d44e7b731fc5f5ed701c9b537fa78 \
|
||||||
--hash=sha256:1bd755b504931164a5a496d217c014d098426cddc79363ad66ac78125f9d908f
|
--hash=sha256:bd16b49c53562b28cf1a3ad2f36edb805ad71301dee70ddc449e5c88a9f919a2
|
||||||
# via pre-commit
|
# via pre-commit
|
||||||
wheel==0.46.3 \
|
wheel==0.46.3 \
|
||||||
--hash=sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d \
|
--hash=sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d \
|
||||||
|
|
|
||||||
|
|
@ -243,9 +243,9 @@ charset-normalizer==3.4.7 \
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# pdfminer-six
|
# pdfminer-six
|
||||||
# requests
|
# requests
|
||||||
click==8.3.1 \
|
click==8.3.2 \
|
||||||
--hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \
|
--hash=sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5 \
|
||||||
--hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6
|
--hash=sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d
|
||||||
# via pip-tools
|
# via pip-tools
|
||||||
coverage[toml]==7.13.5 \
|
coverage[toml]==7.13.5 \
|
||||||
--hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \
|
--hash=sha256:012d5319e66e9d5a218834642d6c35d265515a62f01157a45bcc036ecf947256 \
|
||||||
|
|
@ -431,13 +431,13 @@ django-silk==5.5.0 \
|
||||||
django-slowtests==1.1.1 \
|
django-slowtests==1.1.1 \
|
||||||
--hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247
|
--hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247
|
||||||
# via -r src/backend/requirements-dev.in
|
# via -r src/backend/requirements-dev.in
|
||||||
django-stubs==6.0.1 \
|
django-stubs==6.0.2 \
|
||||||
--hash=sha256:d885044bd0876610f3eb969d6b5ed22f386002a879fdcb369cd8efa0502dbbce \
|
--hash=sha256:56d43b5e3741563af0063e5b6283f908c625b0439aa06314268673699d1bdccd \
|
||||||
--hash=sha256:e1ca63634221b57a55e16562b9b6d1849aeee2cabfd0fc026084dbe8aa893366
|
--hash=sha256:c3bc84d80421758f3b2ad9e1358e001d719388a8eb106e67c873e606216108d4
|
||||||
# via -r src/backend/requirements-dev.in
|
# via -r src/backend/requirements-dev.in
|
||||||
django-stubs-ext==6.0.1 \
|
django-stubs-ext==6.0.2 \
|
||||||
--hash=sha256:17415759b9a3f4b4da7998ac3b08c7dc5137f9a019490b918aece1a8a4c2ade4 \
|
--hash=sha256:70b7b7ae837e7a6036e2facb64435550bf7cf8143c1a6e802864d4824ce6058c \
|
||||||
--hash=sha256:633b280f89c0cbb7e3ce2f2f842e0acc43d8091378e75f84921d6be675d052dc
|
--hash=sha256:b35bdec1995bf49765cc39fa89aa7c23f120a23d0cb0152ab7fb4e48ff7d667b
|
||||||
# via django-stubs
|
# via django-stubs
|
||||||
django-test-migrations==1.5.0 \
|
django-test-migrations==1.5.0 \
|
||||||
--hash=sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07 \
|
--hash=sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07 \
|
||||||
|
|
@ -507,9 +507,9 @@ pip-tools==7.5.3 \
|
||||||
--hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \
|
--hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \
|
||||||
--hash=sha256:8fa364779ebc010cbfe17cb9de404457ac733e100840423f28f6955de7742d41
|
--hash=sha256:8fa364779ebc010cbfe17cb9de404457ac733e100840423f28f6955de7742d41
|
||||||
# via -r src/backend/requirements-dev.in
|
# via -r src/backend/requirements-dev.in
|
||||||
platformdirs==4.9.4 \
|
platformdirs==4.9.6 \
|
||||||
--hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
|
--hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
|
||||||
--hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
|
--hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# python-discovery
|
# python-discovery
|
||||||
|
|
@ -540,9 +540,9 @@ pyproject-hooks==1.2.0 \
|
||||||
# via
|
# via
|
||||||
# build
|
# build
|
||||||
# pip-tools
|
# pip-tools
|
||||||
pytest==9.0.2 \
|
pytest==9.0.3 \
|
||||||
--hash=sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b \
|
--hash=sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9 \
|
||||||
--hash=sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11
|
--hash=sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c
|
||||||
# via
|
# via
|
||||||
# pytest-codspeed
|
# pytest-codspeed
|
||||||
# pytest-django
|
# pytest-django
|
||||||
|
|
@ -568,9 +568,9 @@ pytest-django==4.12.0 \
|
||||||
--hash=sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85 \
|
--hash=sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85 \
|
||||||
--hash=sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758
|
--hash=sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758
|
||||||
# via -r src/backend/requirements-dev.in
|
# via -r src/backend/requirements-dev.in
|
||||||
python-discovery==1.2.1 \
|
python-discovery==1.2.2 \
|
||||||
--hash=sha256:180c4d114bff1c32462537eac5d6a332b768242b76b69c0259c7d14b1b680c9e \
|
--hash=sha256:876e9c57139eb757cb5878cbdd9ae5379e5d96266c99ef731119e04fffe533bb \
|
||||||
--hash=sha256:b6a957b24c1cd79252484d3566d1b49527581d46e789aaf43181005e56201502
|
--hash=sha256:e1ae95d9af875e78f15e19aed0c6137ab1bb49c200f21f5061786490c9585c7a
|
||||||
# via virtualenv
|
# via virtualenv
|
||||||
pyyaml==6.0.3 \
|
pyyaml==6.0.3 \
|
||||||
--hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \
|
--hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \
|
||||||
|
|
@ -746,13 +746,13 @@ ty==0.0.1a21 \
|
||||||
--hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \
|
--hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \
|
||||||
--hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a
|
--hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a
|
||||||
# via -r src/backend/requirements-dev.in
|
# via -r src/backend/requirements-dev.in
|
||||||
types-psycopg2==2.9.21.20260223 \
|
types-psycopg2==2.9.21.20260408 \
|
||||||
--hash=sha256:78ed70de2e56bc6b5c26c8c1da8e9af54e49fdc3c94d1504609f3519e2b84f02 \
|
--hash=sha256:49b086bfc9e0ce901c6537403ead1c19c75275571040b037af0248a8e48c322f \
|
||||||
--hash=sha256:c6228ade72d813b0624f4c03feeb89471950ac27cd0506b5debed6f053086bc8
|
--hash=sha256:bb65cd12f53b6633077fd782607a33065e1f3bf585219c9f786b61ad2b72211c
|
||||||
# via django-types
|
# via django-types
|
||||||
types-pyyaml==6.0.12.20250915 \
|
types-pyyaml==6.0.12.20260408 \
|
||||||
--hash=sha256:0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3 \
|
--hash=sha256:92a73f2b8d7f39ef392a38131f76b970f8c66e4c42b3125ae872b7c93b556307 \
|
||||||
--hash=sha256:e7d4d9e064e89a3b3cae120b4990cd370874d2bf12fa5f46c97018dd5d3c9ab6
|
--hash=sha256:fbc42037d12159d9c801ebfcc79ebd28335a7c13b08a4cfbc6916df78fee9384
|
||||||
# via django-stubs
|
# via django-stubs
|
||||||
typing-extensions==4.15.0 \
|
typing-extensions==4.15.0 \
|
||||||
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
|
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
|
||||||
|
|
@ -768,9 +768,9 @@ urllib3==2.6.3 \
|
||||||
# via
|
# via
|
||||||
# -c src/backend/requirements.txt
|
# -c src/backend/requirements.txt
|
||||||
# requests
|
# requests
|
||||||
virtualenv==21.2.0 \
|
virtualenv==21.2.1 \
|
||||||
--hash=sha256:1720dc3a62ef5b443092e3f499228599045d7fea4c79199770499df8becf9098 \
|
--hash=sha256:b66ffe81301766c0d5e2208fc3576652c59d44e7b731fc5f5ed701c9b537fa78 \
|
||||||
--hash=sha256:1bd755b504931164a5a496d217c014d098426cddc79363ad66ac78125f9d908f
|
--hash=sha256:bd16b49c53562b28cf1a3ad2f36edb805ad71301dee70ddc449e5c88a9f919a2
|
||||||
# via pre-commit
|
# via pre-commit
|
||||||
wheel==0.46.3 \
|
wheel==0.46.3 \
|
||||||
--hash=sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d \
|
--hash=sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d \
|
||||||
|
|
|
||||||
|
|
@ -95,15 +95,15 @@ blessed==1.38.0 \
|
||||||
--hash=sha256:89ce6ec6567f7aced0716b73577b7a1702eb23c667838bb46d7d9bd48c36d1b3 \
|
--hash=sha256:89ce6ec6567f7aced0716b73577b7a1702eb23c667838bb46d7d9bd48c36d1b3 \
|
||||||
--hash=sha256:905884ae650e41284fa4fd7d0c3eed5e5b4a42be8c2bfb24c90d79fbf26a1490
|
--hash=sha256:905884ae650e41284fa4fd7d0c3eed5e5b4a42be8c2bfb24c90d79fbf26a1490
|
||||||
# via -r src/backend/requirements.in
|
# via -r src/backend/requirements.in
|
||||||
boto3==1.42.82 \
|
boto3==1.42.87 \
|
||||||
--hash=sha256:6df9ca0f5047c6afe6bd42244d8e059cde69e2cdb719ebd68d52c7d7beb529b2 \
|
--hash=sha256:15cc1404b3ccbcfe17bd5834d467b1b28d53d9aca44e3798dc44876ac57362e6 \
|
||||||
--hash=sha256:804341c8197c556e8e7ceb82388ee120f319a4efbb9dc368f6059760a11cfc7d
|
--hash=sha256:b5b86a826f8f12c7d38679f35bd0135807a6867a21eb8be6dea7c27aeb14ec14
|
||||||
# via
|
# via
|
||||||
# django-anymail
|
# django-anymail
|
||||||
# django-storages
|
# django-storages
|
||||||
botocore==1.42.82 \
|
botocore==1.42.87 \
|
||||||
--hash=sha256:824dbb58c99d894f193ed1dd75cf59650e25c1b5adb9d3a66b39fdede46f259b \
|
--hash=sha256:1c6cc9555c1feec50b290a42de70ba6f04826c009562c2c12bb9990d0258482d \
|
||||||
--hash=sha256:a2bfe8537e95462ec06a46cc29c327f84746722bb4ce106491bfd3af8075ceed
|
--hash=sha256:32832df27c039cc1a518289afe0f6006296d3df26603b5f66e911457e67f0146
|
||||||
# via
|
# via
|
||||||
# boto3
|
# boto3
|
||||||
# s3transfer
|
# s3transfer
|
||||||
|
|
@ -550,9 +550,9 @@ django-cors-headers==4.9.0 \
|
||||||
--hash=sha256:15c7f20727f90044dcee2216a9fd7303741a864865f0c3657e28b7056f61b449 \
|
--hash=sha256:15c7f20727f90044dcee2216a9fd7303741a864865f0c3657e28b7056f61b449 \
|
||||||
--hash=sha256:fe5d7cb59fdc2c8c646ce84b727ac2bca8912a247e6e68e1fb507372178e59e8
|
--hash=sha256:fe5d7cb59fdc2c8c646ce84b727ac2bca8912a247e6e68e1fb507372178e59e8
|
||||||
# via -r src/backend/requirements.in
|
# via -r src/backend/requirements.in
|
||||||
django-dbbackup==5.2.0 \
|
django-dbbackup==5.3.0 \
|
||||||
--hash=sha256:540948869e44778b5b33333cbab0cfe44279defd47df635d309ede8666894370 \
|
--hash=sha256:2c880dba7650539e8a724174fedb5213062c4fcda3aa09e1c5f3f573192106cb \
|
||||||
--hash=sha256:72b11dd31758abcf8f2d405fd2efbc49c9624bc17196f8c68542d3dc8d8d53c3
|
--hash=sha256:ff80b5facd524e3f6479235aeb330b094a1c982f8b0b9503c24ba0dc613162ed
|
||||||
# via -r src/backend/requirements.in
|
# via -r src/backend/requirements.in
|
||||||
django-error-report-2==0.4.2 \
|
django-error-report-2==0.4.2 \
|
||||||
--hash=sha256:1dd99c497af09b7ea99f5fbaf910501838150a9d5390796ea00e187bc62f6c1b \
|
--hash=sha256:1dd99c497af09b7ea99f5fbaf910501838150a9d5390796ea00e187bc62f6c1b \
|
||||||
|
|
@ -876,9 +876,9 @@ inflection==0.5.1 \
|
||||||
--hash=sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417 \
|
--hash=sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417 \
|
||||||
--hash=sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2
|
--hash=sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2
|
||||||
# via drf-spectacular
|
# via drf-spectacular
|
||||||
invoke==2.2.1 \
|
invoke==3.0.3 \
|
||||||
--hash=sha256:2413bc441b376e5cd3f55bb5d364f973ad8bdd7bf87e53c79de3c11bf3feecc8 \
|
--hash=sha256:437b6a622223824380bfb4e64f612711a6b648c795f565efc8625af66fb57f0c \
|
||||||
--hash=sha256:515bf49b4a48932b79b024590348da22f39c4942dff991ad1fb8b8baea1be707
|
--hash=sha256:f11327165e5cbb89b2ad1d88d3292b5113332c43b8553b494da435d6ec6f5053
|
||||||
# via paramiko
|
# via paramiko
|
||||||
isodate==0.7.2 \
|
isodate==0.7.2 \
|
||||||
--hash=sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15 \
|
--hash=sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15 \
|
||||||
|
|
@ -906,147 +906,141 @@ jwcrypto==1.5.7 \
|
||||||
--hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \
|
--hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \
|
||||||
--hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0
|
--hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0
|
||||||
# via django-oauth-toolkit
|
# via django-oauth-toolkit
|
||||||
lxml==6.0.2 \
|
lxml==6.0.3 \
|
||||||
--hash=sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba \
|
--hash=sha256:04b7cedf52e125f86d0d426635e7fbe8e353d4cc272a1757888e3c072424381d \
|
||||||
--hash=sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8 \
|
--hash=sha256:06b9f3ac459b4565bbaa97aa5512aa7f9a1188c662f0108364f288f6daf35773 \
|
||||||
--hash=sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0 \
|
--hash=sha256:093786037b934ef4747b0e8a0e1599fe7df7dd8246e7f07d43bba1c4c8bd7b84 \
|
||||||
--hash=sha256:08b9d5e803c2e4725ae9e8559ee880e5328ed61aa0935244e0515d7d9dbec0aa \
|
--hash=sha256:0a9a79144a8051bc5fbb223fac895b87eb67b361f27b00c2ed4a07ee34246b90 \
|
||||||
--hash=sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f \
|
--hash=sha256:0b012cf200736d90f828b3ab4206857772c61b710f0a98d3814c7994decb6652 \
|
||||||
--hash=sha256:0aa7070978f893954008ab73bb9e3c24a7c56c054e00566a21b553dc18105fca \
|
--hash=sha256:0c46a246df7fbab1f7b018c7eb361585b295ac95dec806158d9ed1e63b477f05 \
|
||||||
--hash=sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf \
|
--hash=sha256:10bc4f37c28b4e1b3e901dde66e3a096eb128acf388d5b2962dc2941284293bb \
|
||||||
--hash=sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607 \
|
--hash=sha256:13f1594a183cee73f9a1dbfd35871c4e04b461f47eeb9bcf80f7d7856b1b136d \
|
||||||
--hash=sha256:17f68764f35fd78d7c4cc4ef209a184c38b65440378013d24b8aecd327c3e0c8 \
|
--hash=sha256:143ac903fb6c9be6da613390825c8e8bb8c8d71517d43882031f6b9bc89770ef \
|
||||||
--hash=sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452 \
|
--hash=sha256:16e5cbaa1a6351f2abefa4072e9aac1f09103b47fe7ab4496d54e5995b065162 \
|
||||||
--hash=sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700 \
|
--hash=sha256:16fbcf06ae534b2fa5bcdc19fcf6abd9df2e74fe8563147d1c5a687a130efed4 \
|
||||||
--hash=sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d \
|
--hash=sha256:19b079e81aa3a31b523a224b0dd46da4f56e1b1e248eef9a599e5c885c788813 \
|
||||||
--hash=sha256:1e786a464c191ca43b133906c6903a7e4d56bef376b75d97ccbb8ec5cf1f0a4b \
|
--hash=sha256:1b36a3c73f2a6d9c2bfae78089ca7aedae5c2ee5fd5214a15f00b2f89e558ba7 \
|
||||||
--hash=sha256:1ea99340b3c729beea786f78c38f60f4795622f36e305d9c9be402201efdc3b7 \
|
--hash=sha256:1b60a3a1205f869bd47874787c792087174453b1a869db4837bf5b3ff92be017 \
|
||||||
--hash=sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d \
|
--hash=sha256:20f8caa9beb61a688c4428631cb47fd6e0ba75ef30091cec5fee992138b2be77 \
|
||||||
--hash=sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6 \
|
--hash=sha256:239e9a6be3a79c03ec200d26f7bb17a4414704a208059e20050bf161e2d8848a \
|
||||||
--hash=sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a \
|
--hash=sha256:26cdd7c3f4c3b932b28859d0b70966c2ec8b67c106717d6320121002f8f99025 \
|
||||||
--hash=sha256:24a8e756c982c001ca8d59e87c80c4d9dcd4d9b44a4cbeb8d9be4482c514d41d \
|
--hash=sha256:2773dbe2cedee81f2769bd5d24ceb4037706cf032e1703513dd0e9476cd9375f \
|
||||||
--hash=sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca \
|
--hash=sha256:27e317e554bc6086a082688ddf137437e5f7f20ffdd736a6f5b4e3ed1ecf1247 \
|
||||||
--hash=sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb \
|
--hash=sha256:2a49123cc3209ccad7c4c5a4133bcfcfd4875f30461ea4d0aaa84e6608f712c5 \
|
||||||
--hash=sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed \
|
--hash=sha256:2ce76d113a7c3bf42761ec1de7ca615b0cbf9d8ae478eb1d6c20111d9c9fc098 \
|
||||||
--hash=sha256:2613e67de13d619fd283d58bda40bff0ee07739f624ffee8b13b631abf33083d \
|
--hash=sha256:2d00902610dd91a970a06d5f1a6e4f2426e04a9fa07209d58e09b345e2269267 \
|
||||||
--hash=sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e \
|
--hash=sha256:30c437d8bb9a9a9edff27e85b694342e47a26a6abc249abe00584a4824f9d80d \
|
||||||
--hash=sha256:2c8458c2cdd29589a8367c09c8f030f1d202be673f0ca224ec18590b3b9fb694 \
|
--hash=sha256:322c825054d02d35755b80dc5c39ba8a71c7c09c43453394a13b9bd8c0abc84c \
|
||||||
--hash=sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd \
|
--hash=sha256:336925309af5ecd9616acbe1c28d68ee0088839b1d42ae7dcc40ffecff959537 \
|
||||||
--hash=sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659 \
|
--hash=sha256:33741ec3b4268efffae8ba40f9b64523f4489caf270bde175535e659f03af05a \
|
||||||
--hash=sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c \
|
--hash=sha256:353161f166e76f0d8228f8f5216d110601d143a8b6d0fd869230e12c098a5842 \
|
||||||
--hash=sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314 \
|
--hash=sha256:38652c280cf50cc5cf955e3d0b691fa6a97046d84407bbae340d8e353f9014ef \
|
||||||
--hash=sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5 \
|
--hash=sha256:38acf7171535ffa7fff1fcec8b82ebd4e55cd02e581efe776928108421accaa1 \
|
||||||
--hash=sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849 \
|
--hash=sha256:3a0484bd1e84f82766befcbd71cccd7307dacfe08071e4dbc1d9a9b498d321e8 \
|
||||||
--hash=sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938 \
|
--hash=sha256:448e69211e59c39f398990753d15ba49f7218ec128f64ac8012ef16762e509a3 \
|
||||||
--hash=sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a \
|
--hash=sha256:46c80f7fd5dd7d8c269f6486b165c8f91c489e323f3a767221fb5b4b2b388d5f \
|
||||||
--hash=sha256:3efe1b21c7801ffa29a1112fab3b0f643628c30472d507f39544fd48e9549e34 \
|
--hash=sha256:4723da3e8f4281853c2eaab161b69cc14bc9b0811be4cfa5a1de36df47e0c660 \
|
||||||
--hash=sha256:3fee0851639d06276e6b387f1c190eb9d7f06f7f53514e966b26bae46481ec90 \
|
--hash=sha256:4b0f01fb8bdcaf4aa69cf55b2b2f8ef722e4423e1c020e7250dcb89a1d5db38e \
|
||||||
--hash=sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6 \
|
--hash=sha256:4ff774b43712b0cf40d9888a5494ca39aefe990c946511cc947b9fddcf74a29b \
|
||||||
--hash=sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba \
|
--hash=sha256:50293e024afe5e2c25da2be68c8ceca8618912a0701a73f75b488317c8081aa6 \
|
||||||
--hash=sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285 \
|
--hash=sha256:51014ee2ab2091dcd9cdef92532f0a1addb7c2cc52a2bd70682e441363de5c0d \
|
||||||
--hash=sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553 \
|
--hash=sha256:5892d2ef99449ebd8e30544af5bc61fd9c30e9e989093a10589766422f6c5e1a \
|
||||||
--hash=sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d \
|
--hash=sha256:59ff244cee0270fc4cf5f2ee920d4493ee88d0bcbc6e8465e9ef01439f1785e7 \
|
||||||
--hash=sha256:452b899faa64f1805943ec1c0c9ebeaece01a1af83e130b69cdefeda180bb42c \
|
--hash=sha256:5b6913a68d98c58c673667c864500ba31bc9b0f462effac98914e9a92ebacd2e \
|
||||||
--hash=sha256:45f93e6f75123f88d7f0cfd90f2d05f441b808562bf0bc01070a00f53f5028b5 \
|
--hash=sha256:5c35e5c3ed300990a46a144d3514465713f812b35dacfa83e928c60db7c90af7 \
|
||||||
--hash=sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601 \
|
--hash=sha256:5c45bdcdc2ca6cf26fddff3faa5de7a2ed7c7f6016b3de80125313a37f972378 \
|
||||||
--hash=sha256:4ddb1049fa0579d0cbd00503ad8c58b9ab34d1254c77bc6a5576d96ec7853dba \
|
--hash=sha256:5d559a84b2fd583e5bcf8ec4af1ec895f98811684d5fbd6524ea31a04f92d4ad \
|
||||||
--hash=sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37 \
|
--hash=sha256:609bf136a7339aeca2bd4268c7cd190f33d13118975fe9964eda8e5138f42802 \
|
||||||
--hash=sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f \
|
--hash=sha256:61399a5b01d74ec5f009762c74ab6ebf387e58393fc5d78368e12d4f577fea29 \
|
||||||
--hash=sha256:5921d924aa5468c939d95c9814fa9f9b5935a6ff4e679e26aaf2951f74043512 \
|
--hash=sha256:6289cb9145fbbc5b0e159c9fcd7fc09446dadc6b60b72c4d1012e80c7c727970 \
|
||||||
--hash=sha256:59c45e125140b2c4b33920d21d83681940ca29f0b83f8629ea1a2196dc8cfe6a \
|
--hash=sha256:631567ffc3ddb989ccdcd28f6b9fa5aab1ec7fc0e99fe65572b006a6aad347e2 \
|
||||||
--hash=sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438 \
|
--hash=sha256:6364aa77b13e04459df6a9d2b806465287e7540955527e75ebd5fda48532913d \
|
||||||
--hash=sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153 \
|
--hash=sha256:6556b3197bd8a237a16fcd7278d09f094c5777ae36a1435b5e8e488826386d96 \
|
||||||
--hash=sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9 \
|
--hash=sha256:6c055bafdcb53e7f9f75e22c009cd183dd410475e21c296d599531d7f03d1bf5 \
|
||||||
--hash=sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d \
|
--hash=sha256:724b26a38cef98d6869d00a33cb66083bee967598e44f6a8e53f1dd283c851b0 \
|
||||||
--hash=sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6 \
|
--hash=sha256:72d108ef9e39f45c6865ea8a5ba6736c0b1a33ddd6343653775349869e58c30b \
|
||||||
--hash=sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f \
|
--hash=sha256:7373ede7ccb89e6f6e39c1423b3a4d4ee48035d3b4619a6addced5c8b48d0ecc \
|
||||||
--hash=sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534 \
|
--hash=sha256:738aef404c862d2c3cd951364ee7175c9d50e8290f5726611c4208c0fba8d186 \
|
||||||
--hash=sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46 \
|
--hash=sha256:773c22d3de2dd5454b0f89b36d366fa0052f0e924656506c40462d8107acd00f \
|
||||||
--hash=sha256:66328dabea70b5ba7e53d94aa774b733cf66686535f3bc9250a7aab53a91caaf \
|
--hash=sha256:775266571f7027b1d77f5fce18a247b24f51a4404bdc1b90ec56be9b1e3801b9 \
|
||||||
--hash=sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f \
|
--hash=sha256:794b42f0112adfa3f23670aba5bc0ac9c9adfcee699c0df129b0186c812ac3ff \
|
||||||
--hash=sha256:6cdaefac66e8b8f30e37a9b4768a391e1f8a16a7526d5bc77a7928408ef68e93 \
|
--hash=sha256:7966fbce2d18fde579d5593933d36ad98cc7c8dc7f2b1916d127057ce0415062 \
|
||||||
--hash=sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8 \
|
--hash=sha256:7f753db5785ce019d7b25bb75638ef5a42a0e208aa9f19933262134e668ca6af \
|
||||||
--hash=sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f \
|
--hash=sha256:809726d4c72f1a902556df822c3acc5780053a12a05e16eac999392b30984c06 \
|
||||||
--hash=sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1 \
|
--hash=sha256:821fd53699eb498990c915ba955a392d07246454c9405e6c1d0692362503013d \
|
||||||
--hash=sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322 \
|
--hash=sha256:8243937d4673b46da90b4f5ea2627fd26842225e62e885828fdb8133aa1f7b32 \
|
||||||
--hash=sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f \
|
--hash=sha256:8341c446fca7f6be003c60aededf2f23a53d4881cf7e0bafb9cef69c217ae26a \
|
||||||
--hash=sha256:71695772df6acea9f3c0e59e44ba8ac50c4f125217e84aab21074a1a55e7e5c9 \
|
--hash=sha256:83c1d75e9d124ab82a4ddaf59135112f0dc49526b47355e5928ae6126a68e236 \
|
||||||
--hash=sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f \
|
--hash=sha256:83eca62141314d641ebe8089ffa532bbf572ea07dd6255b58c40130d06bb2509 \
|
||||||
--hash=sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7 \
|
--hash=sha256:841b89fc3d910d61c7c267db6bb7dc3a8b3dac240edb66220fcdf96fe70a0552 \
|
||||||
--hash=sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f \
|
--hash=sha256:87bebd6836e88c0a007f66b89814daf5d7041430eb491c91d1851abc89aa6e93 \
|
||||||
--hash=sha256:817ef43a0c0b4a77bd166dc9a09a555394105ff3374777ad41f453526e37f9cb \
|
--hash=sha256:88c524cf8c3b8d71dfc3de6cfb225138a876862a92d88bfa22eb9ff020729d45 \
|
||||||
--hash=sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916 \
|
--hash=sha256:8922a30704a4421d69a19e0499db5861da686c0bccc3a79cf3946e3155cf25f9 \
|
||||||
--hash=sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec \
|
--hash=sha256:89f8746c206d8cf2c167221831645d6cc2b24464afd9c428a5eb3fd34c584eb1 \
|
||||||
--hash=sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9 \
|
--hash=sha256:8b81ec1ecac3be8c1ff1e00ca1c1baf8122e87db9000cd2549963847bd5e3b41 \
|
||||||
--hash=sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d \
|
--hash=sha256:8c082ad2398664213a4bb5d133e2eb8bf239220b7d6688f8c8ffa9050057501f \
|
||||||
--hash=sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679 \
|
--hash=sha256:8c08926678852a233bf1ef645c4d683d56107f814482f8f41b21ef2c7659790e \
|
||||||
--hash=sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0 \
|
--hash=sha256:8d10a75e4d0a6a9ac2fec2f7ade682f468b51935102c70dab638fa4e94ffcb04 \
|
||||||
--hash=sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192 \
|
--hash=sha256:8eeec925ad7f81886d413b3a1f8715551f75543519229a9b35e957771e1826d5 \
|
||||||
--hash=sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917 \
|
--hash=sha256:911dbd0e87729016402e03533117ffe94147bfbcd7902b76af5854c4b437e096 \
|
||||||
--hash=sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c \
|
--hash=sha256:955550c78afb2be47755bd1b8153724292a5b539cf3f21665b310c145d08e6f8 \
|
||||||
--hash=sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d \
|
--hash=sha256:976b56bd0f4ca72280b4569eb227d012a541860f0d6fcc128ce26d22ef82c845 \
|
||||||
--hash=sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338 \
|
--hash=sha256:99457524afd384c330dc51e527976653d543ccadfa815d9f2d92c5911626e536 \
|
||||||
--hash=sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d \
|
--hash=sha256:9a1adb0e220cb8691202ba9d97646a06292657a122df4b92733861d42f7cf4d2 \
|
||||||
--hash=sha256:995e783eb0374c120f528f807443ad5a83a656a8624c467ea73781fc5f8a8304 \
|
--hash=sha256:9b8e0779780026979f217603385995202f364adc9807bd21210d81b9f562fc4e \
|
||||||
--hash=sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77 \
|
--hash=sha256:9d98063e6ae0da5084ec46952bb0a5ccb5e2cad168e32b4d65d1ec84e4b4ebd4 \
|
||||||
--hash=sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba \
|
--hash=sha256:a10f9967859229cae38b1aa7a96eb655c96b8adc96989b52c5b1f77d963a77a4 \
|
||||||
--hash=sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456 \
|
--hash=sha256:a1664c5139755df44cab3834f4400b331b02205d62d3fdcb1554f63439bf3372 \
|
||||||
--hash=sha256:a656ca105115f6b766bba324f23a67914d9c728dafec57638e2b92a9dcd76c62 \
|
--hash=sha256:a1f258e6aa0e6eda2c1199f5582c062c96c7d4a28d96d0c4daa79e39b3f2a764 \
|
||||||
--hash=sha256:a6b5b39cc7e2998f968f05309e666103b53e2edd01df8dc51b90d734c0825444 \
|
--hash=sha256:a4dc9f81707b9b56888fa7d3a889ac5219724cf0fbecab90ea5b197faf649534 \
|
||||||
--hash=sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a \
|
--hash=sha256:a6380c5035598e4665272ad3fc86c96ddb2a220d4059cce5ba4b660f78346ad9 \
|
||||||
--hash=sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f \
|
--hash=sha256:aa18653b795d2c273b8676f7ad2ca916d846d15864e335f746658e4c28eb5168 \
|
||||||
--hash=sha256:a8ffaeec5dfea5881d4c9d8913a32d10cfe3923495386106e4a24d45300ef79c \
|
--hash=sha256:abc39c4fb67f029400608f9a3a4a3f351ccb3c061b05fd3ad113e4cfbba8a8ee \
|
||||||
--hash=sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d \
|
--hash=sha256:ac2d6cdafa29672d6a604c641bf67ace3fd0735ec6885501a94943379219ddbf \
|
||||||
--hash=sha256:ac02dc29fd397608f8eb15ac1610ae2f2f0154b03f631e6d724d9e2ad4ee2c84 \
|
--hash=sha256:ac63a1ef1899ccadace10ac937c41321672771378374c254e931d001448ae372 \
|
||||||
--hash=sha256:af85529ae8d2a453feee4c780d9406a5e3b17cee0dd75c18bd31adcd584debc3 \
|
--hash=sha256:ac65c08ba1bd90f662cb1d5c79f7ae4c53b1c100f0bb6ec5df1f40ac29028a7e \
|
||||||
--hash=sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe \
|
--hash=sha256:ad6952810349cbfb843fe15e8afc580b2712359ae42b1d2b05d097bd48c4aea4 \
|
||||||
--hash=sha256:b2142a376b40b6736dfc214fd2902409e9e3857eff554fed2d3c60f097e62a62 \
|
--hash=sha256:b044fe3bdb8b68efa33cb5917ae9379f07ec2e416ecd18cf5d333650d6d2fcbb \
|
||||||
--hash=sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8 \
|
--hash=sha256:b29300eeaadf85df7f2df4bb29cadfb13b9600d1bb8053f35d82d96f9e6d088a \
|
||||||
--hash=sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178 \
|
--hash=sha256:b683665d0287308adafc90a5617a51a508d8af8c7040693693bb333b5f4474fe \
|
||||||
--hash=sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0 \
|
--hash=sha256:b68c29aac4788438b07d768057836de47589c7deaa3ad8dc4af488dfc27be388 \
|
||||||
--hash=sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7 \
|
--hash=sha256:bd4f70e091f2df300396bc9ce36963f90b87611324c2ca750072a6e6375beba2 \
|
||||||
--hash=sha256:b42f4d86b451c2f9d06ffb4f8bbc776e04df3ba070b9fe2657804b1b40277c48 \
|
--hash=sha256:bf98f5f87f6484302e7cce4e2ca5af43562902852063d916c3e2f1c115fdce60 \
|
||||||
--hash=sha256:b738f7e648735714bbb82bdfd030203360cfeab7f6e8a34772b3c8c8b820568c \
|
--hash=sha256:c137f8c8419c3de93e2998131d94628805f148e52b34da6d7533454e4d78bc2a \
|
||||||
--hash=sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9 \
|
--hash=sha256:c157bfef4e3b19688eb4da783c5bfabf5a3ac1ac8d317e0906f3feb18d4c89b7 \
|
||||||
--hash=sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7 \
|
--hash=sha256:c3de55b53f69ffa2fcfd897bd8a7e62f0f88a40a8a0c544e171e813f9d4ddbf5 \
|
||||||
--hash=sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048 \
|
--hash=sha256:c4fff7d77f440378cd841e340398edf5dbefee334816efbf521bb6e31651e54e \
|
||||||
--hash=sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c \
|
--hash=sha256:c71a387ea133481e725079cff22de45593bf0b834824de22829365ab1d2386c9 \
|
||||||
--hash=sha256:bc456d04db0515ce3320d714a1eac7a97774ff0849e7718b492d957da4631dd4 \
|
--hash=sha256:c8184fdb2259bda1db2db9d6e25f667769afc2531830b4fa29f83f66a7872dea \
|
||||||
--hash=sha256:bc532422ff26b304cfb62b328826bd995c96154ffd2bac4544f37dbb95ecaa8f \
|
--hash=sha256:c8e3b8a54e65393ce1d5c7d9753fe756f0d96089e7163b20ddec3e5bb56a963e \
|
||||||
--hash=sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b \
|
--hash=sha256:cbc7ce67f85b92db97c92219985432be84dc1ba9a028e68c6933e89551234df2 \
|
||||||
--hash=sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0 \
|
--hash=sha256:cbffd22fc8e4d80454efa968b0c93440a00b8b8a817ce0c29d2c6cb5ad324362 \
|
||||||
--hash=sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564 \
|
--hash=sha256:ce01ab3449015358f766a1950b3d818eedf9d4cdec3fa87e4eecaad10c0784db \
|
||||||
--hash=sha256:c54d83a2188a10ebdba573f16bd97135d06c9ef60c3dc495315c7a28c80a263f \
|
--hash=sha256:d1f14c1006722824c3f2158d147e520a82460b47ffdc2a84e444b3d244b65e4d \
|
||||||
--hash=sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee \
|
--hash=sha256:d20af2784c763928d0d0879cbc5a3739e4d81eefa0d68962d3478bff4c13e644 \
|
||||||
--hash=sha256:cb233f9c95f83707dae461b12b720c1af9c28c2d19208e1be03387222151daf5 \
|
--hash=sha256:d38c25bad123d6ce30bb37931d90a4e8a167cd796eeae9cd16c2bfce52718f8e \
|
||||||
--hash=sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62 \
|
--hash=sha256:d3d65e511e4e656ec67b472110f7a72cbf8547ca15f76fe74cffa4e97412a064 \
|
||||||
--hash=sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272 \
|
--hash=sha256:d573b81c29e20b1513afa386a544797a99cecde5497e6c77b6dfa4484112c819 \
|
||||||
--hash=sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9 \
|
--hash=sha256:d8781d812bb8efd47c35651639da38980383ff0d0c1f3269ade23e3a90799079 \
|
||||||
--hash=sha256:d4aec24d6b72ee457ec665344a29acb2d35937d5192faebe429ea02633151aad \
|
--hash=sha256:d8a8129bd502de138cdde22eac3990bde8a4efbafc72596baab67a495c48c974 \
|
||||||
--hash=sha256:d6690ec5ec1cce0385cb20896b16be35247ac8c2046e493d03232f1c2414d321 \
|
--hash=sha256:d9e779a9c3167d2f158c41b6347fbc9e855f6d5561920a33123beb86463c3f46 \
|
||||||
--hash=sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a \
|
--hash=sha256:dfc80c74233fe01157ab550fb12b9d07a2f1fa7c5900cefb484e3bf02e856fbc \
|
||||||
--hash=sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312 \
|
--hash=sha256:e0c88ca5fb307f7e817fc427681126e4712d3452258577bcb4ca86594c934852 \
|
||||||
--hash=sha256:dacf3c64ef3f7440e3167aa4b49aa9e0fb99e0aa4f9ff03795640bf94531bcb0 \
|
--hash=sha256:e759ff1b244725fef428c6b54f3dab4954c293b2d242a5f2e79db5cc3873de51 \
|
||||||
--hash=sha256:daf42de090d59db025af61ce6bdb2521f0f102ea0e6ea310f13c17610a97da4c \
|
--hash=sha256:e8ad05bb1fb4aa20ee201ab2f21c3c7571828e4fad525707437bb1c5f5ab6669 \
|
||||||
--hash=sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37 \
|
--hash=sha256:ecdded59dc50c0c28f652a98f69a7ada8bd2377248bf48c4a83c81204eb58b33 \
|
||||||
--hash=sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964 \
|
--hash=sha256:ed31e5852cd938704bc6c7a3822cbf84c7fa00ebfa914a1b4e2392d44f45bdfb \
|
||||||
--hash=sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484 \
|
--hash=sha256:edccf1157677db1da741d042601754b94af3926310c5763179200718ca738e70 \
|
||||||
--hash=sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e \
|
--hash=sha256:f179bae37ad673f57756b59f26833b7922230bef471fdb29492428f152bae8c6 \
|
||||||
--hash=sha256:e237b807d68a61fc3b1e845407e27e5eb8ef69bc93fe8505337c1acb4ee300b6 \
|
--hash=sha256:f27373113fda6621e4201f529908a24c8a190c2af355aed4711dadca44db4673 \
|
||||||
--hash=sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078 \
|
--hash=sha256:f297e9be3bbe59c31cfe5d0f38534510ed95856c480df3e8721b16d46ccaeeac \
|
||||||
--hash=sha256:e748d4cf8fef2526bb2a589a417eba0c8674e29ffcb570ce2ceca44f1e567bf6 \
|
--hash=sha256:f8f004d5c601eb50ac29a110632595a4f4c50db81c715d46a43de64ef88246cb \
|
||||||
--hash=sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388 \
|
--hash=sha256:f96bba9a26a064ce9e11099bad12fb08384b64d3acc0acf94bf386ca5cf4f95f \
|
||||||
--hash=sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924 \
|
--hash=sha256:fab00cef83d4f9d76c5e0722346e84bc174b071d68b4f725aeb0bf3877b9e6a6 \
|
||||||
--hash=sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2 \
|
--hash=sha256:fc6eeeddcee4d985707b3fc29fd6993e256e55798ca600586da68d3f0e04ec5a \
|
||||||
--hash=sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df \
|
--hash=sha256:fdb7786ebefaa0dad0d399dfeaf146b370a14591af2f3aea59e06f931a426678 \
|
||||||
--hash=sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd \
|
--hash=sha256:fddcf558bcb7a40993fb9e3ae3752d5d3a656479c71687799e43063563a2e68a \
|
||||||
--hash=sha256:f2a50c3c1d11cad0ebebbac357a97b26aa79d2bcaf46f256551152aa85d3a4d1 \
|
--hash=sha256:feb5b9ed7d0510663a78b94f2b417a41c41b42a7bb157ef398ef9d78e6f0fd50
|
||||||
--hash=sha256:f2e3b1a6bb38de0bc713edd4d612969dd250ca8b724be8d460001a387507021c \
|
|
||||||
--hash=sha256:f952dacaa552f3bb8834908dddd500ba7d508e6ea6eb8c52eb2d28f48ca06a31 \
|
|
||||||
--hash=sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed \
|
|
||||||
--hash=sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2 \
|
|
||||||
--hash=sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092 \
|
|
||||||
--hash=sha256:fe659f6b5d10fb5a17f00a50eb903eb277a71ee35df4615db573c069bcf967ac
|
|
||||||
# via
|
# via
|
||||||
# python3-saml
|
# python3-saml
|
||||||
# xmlsec
|
# xmlsec
|
||||||
|
|
@ -1429,9 +1423,9 @@ pip-licenses==5.5.5 \
|
||||||
--hash=sha256:60750c006adf7a0910347b726e8ee9fee3bc8d2e7c8307a5c4ec0776c8e2a276 \
|
--hash=sha256:60750c006adf7a0910347b726e8ee9fee3bc8d2e7c8307a5c4ec0776c8e2a276 \
|
||||||
--hash=sha256:f4c4c6d9e6a03612cf59f29f19dc8ab54904d82e055b8e191498f2279a224e14
|
--hash=sha256:f4c4c6d9e6a03612cf59f29f19dc8ab54904d82e055b8e191498f2279a224e14
|
||||||
# via -r src/backend/requirements.in
|
# via -r src/backend/requirements.in
|
||||||
platformdirs==4.9.4 \
|
platformdirs==4.9.6 \
|
||||||
--hash=sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934 \
|
--hash=sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a \
|
||||||
--hash=sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868
|
--hash=sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917
|
||||||
# via pint
|
# via pint
|
||||||
ppf-datamatrix==0.2 \
|
ppf-datamatrix==0.2 \
|
||||||
--hash=sha256:819be65eae444b760e178d5761853f78f8e5fca14fec2809b5e3369978fa9244 \
|
--hash=sha256:819be65eae444b760e178d5761853f78f8e5fca14fec2809b5e3369978fa9244 \
|
||||||
|
|
@ -1523,9 +1517,9 @@ pynacl==1.6.2 \
|
||||||
--hash=sha256:d29bfe37e20e015a7d8b23cfc8bd6aa7909c92a1b8f41ee416bbb3e79ef182b2 \
|
--hash=sha256:d29bfe37e20e015a7d8b23cfc8bd6aa7909c92a1b8f41ee416bbb3e79ef182b2 \
|
||||||
--hash=sha256:fe9847ca47d287af41e82be1dd5e23023d3c31a951da134121ab02e42ac218c9
|
--hash=sha256:fe9847ca47d287af41e82be1dd5e23023d3c31a951da134121ab02e42ac218c9
|
||||||
# via paramiko
|
# via paramiko
|
||||||
pypdf==6.10.0 \
|
pypdf==6.10.2 \
|
||||||
--hash=sha256:4c5a48ba258c37024ec2505f7e8fd858525f5502784a2e1c8d415604af29f6ef \
|
--hash=sha256:7d09ce108eff6bf67465d461b6ef352dcb8d84f7a91befc02f904455c6eea11d \
|
||||||
--hash=sha256:90005e959e1596c6e6c84c8b0ad383285b3e17011751cedd17f2ce8fcdfc86de
|
--hash=sha256:aa53be9826655b51c96741e5d7983ca224d898ac0a77896e64636810517624aa
|
||||||
# via -r src/backend/requirements.in
|
# via -r src/backend/requirements.in
|
||||||
pyphen==0.17.2 \
|
pyphen==0.17.2 \
|
||||||
--hash=sha256:3a07fb017cb2341e1d9ff31b8634efb1ae4dc4b130468c7c39dd3d32e7c3affd \
|
--hash=sha256:3a07fb017cb2341e1d9ff31b8634efb1ae4dc4b130468c7c39dd3d32e7c3affd \
|
||||||
|
|
@ -1546,9 +1540,9 @@ python-dotenv==1.2.2 \
|
||||||
--hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \
|
--hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \
|
||||||
--hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3
|
--hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3
|
||||||
# via -r src/backend/requirements.in
|
# via -r src/backend/requirements.in
|
||||||
python-fsutil==0.16.0 \
|
python-fsutil==0.16.1 \
|
||||||
--hash=sha256:a60e16bad77e3f00c3dca95433209c823bc45e0ae4158e52969002f3c7957a18 \
|
--hash=sha256:4cc78b9a1e64011cb4fdaeba531e457e649a6a9a560424e841426e47f3a153ad \
|
||||||
--hash=sha256:dc957a3541215baa935f66f6f15ceb9a8b7f803919c3d99fa57c818fc545f288
|
--hash=sha256:bda20802a19f6dc1bd221f6d2a79e0cd2b2c6eaf2b7c353a385c749917047442
|
||||||
# via django-maintenance-mode
|
# via django-maintenance-mode
|
||||||
python-ipware==3.0.0 \
|
python-ipware==3.0.0 \
|
||||||
--hash=sha256:9117b1c4dddcb5d5ca49e6a9617de2fc66aec2ef35394563ac4eecabdf58c062 \
|
--hash=sha256:9117b1c4dddcb5d5ca49e6a9617de2fc66aec2ef35394563ac4eecabdf58c062 \
|
||||||
|
|
@ -1647,90 +1641,90 @@ qrcode[pil]==8.2 \
|
||||||
# via
|
# via
|
||||||
# -r src/backend/requirements.in
|
# -r src/backend/requirements.in
|
||||||
# django-allauth
|
# django-allauth
|
||||||
rapidfuzz==3.14.3 \
|
rapidfuzz==3.14.5 \
|
||||||
--hash=sha256:010e12e2411a4854b0434f920e72b717c43f8ec48d57e7affe5c42ecfa05dd0e \
|
--hash=sha256:0084b687b02b4e569b46d8d6d4ad25659528e6081cd6d067ca453a69035f07e4 \
|
||||||
--hash=sha256:02821366d928e68ddcb567fed8723dad7ea3a979fada6283e6914d5858674850 \
|
--hash=sha256:01550fe5f60fd176aa66b7611289d46dc4aa4b1b904874c7b6d1d54e581c5ec1 \
|
||||||
--hash=sha256:07aa0b5d8863e3151e05026a28e0d924accf0a7a3b605da978f0359bb804df43 \
|
--hash=sha256:0298d357e2bc59d572da4db0bc631009b6f8f6c9bc8c11e99a12b833f16b6575 \
|
||||||
--hash=sha256:0e38828d1381a0cceb8a4831212b2f673d46f5129a1897b0451c883eaf4a1747 \
|
--hash=sha256:068b3e965ca9d9ee4debe40001ae7c3938ba646308afd33cf0c66618147db65c \
|
||||||
--hash=sha256:152555187360978119e98ce3e8263d70dd0c40c7541193fc302e9b7125cf8f58 \
|
--hash=sha256:071d96b957a33b9296b9284b6350a0fb6d030b154a04efd7c15e56b98b79a517 \
|
||||||
--hash=sha256:1704fc70d214294e554a2421b473779bcdeef715881c5e927dc0f11e1692a0ff \
|
--hash=sha256:09d6c9ba091854f07817055d795d604179c12a8f308ba4c7d56f3719dfea1646 \
|
||||||
--hash=sha256:1b7ef2f4b8583a744338a18f12c69693c194fb6777c0e9ada98cd4d9e8f09d10 \
|
--hash=sha256:0d3378f471ef440473a396ce2f8e97ee12f89a78b495540e0a5617bbfe895638 \
|
||||||
--hash=sha256:1b86daa7419b5e8b180690efd1fdbac43ff19230803282521c5b5a9c83977655 \
|
--hash=sha256:0ebd1a18e2e47bc0b292a07e6ed9c3642f8aaa672d12253885f599b50807a4f9 \
|
||||||
--hash=sha256:1d83b8b712fa37e06d59f29a4b49e2e9e8635e908fbc21552fe4d1163db9d2a1 \
|
--hash=sha256:0f23e37019ec07712d58976b1ab2b889f8649a7f7c2f626a2f34ea9139e79279 \
|
||||||
--hash=sha256:1e6eefec45625c634926a9fd46c9e4f31118ac8f3156fff9494422cee45207e6 \
|
--hash=sha256:11bfc2ed8fbe4ab86bd516fadefab126f90e6dcadffa761739fcb304707dfd35 \
|
||||||
--hash=sha256:1ec0c8c0c3d4f97ced46b2e191e883f8c82dbbf6d5ebc1842366d7eff13cd5a6 \
|
--hash=sha256:13cb79c23ef5516e4c4e3830877be8b19aa75203636be1163d690d37803f6504 \
|
||||||
--hash=sha256:1f1925619627f8798f8c3a391d81071336942e5fe8467bc3c567f982e7ce2897 \
|
--hash=sha256:17a34330cd2a538c1ce5d400b61ba358c5b72c654b928ff87b362e88f8b864c7 \
|
||||||
--hash=sha256:1faa0f8f76ba75fd7b142c984947c280ef6558b5067af2ae9b8729b0a0f99ede \
|
--hash=sha256:1a31cc6d7d03e7318a0974c038959c59e19c752b81115f2e9138b3331cd64d45 \
|
||||||
--hash=sha256:2491937177868bc4b1e469087601d53f925e8d270ccc21e07404b4b5814b7b5f \
|
--hash=sha256:1e910eebca9fd0eba245c0555e764597e8a0cccb673a92da2dc2397050725f48 \
|
||||||
--hash=sha256:2dc37bc20272f388b8c3a4eba4febc6e77e50a8f450c472def4751e7678f55e4 \
|
--hash=sha256:1e989f86113be66574113b9c7bdf4793f3f863d248e47d911b355e05ca6b6b10 \
|
||||||
--hash=sha256:32eeafa3abce138bb725550c0e228fc7eaeec7059aa8093d9cbbec2b58c2371a \
|
--hash=sha256:2e83cd2e25bb4edd97b689d9979d9c3acccdaaf26ceac08212ceece202febcfa \
|
||||||
--hash=sha256:33a325ed0e8e1aa20c3e75f8ab057a7b248fdea7843c2a19ade0008906c14af0 \
|
--hash=sha256:39ef8658aaf67d51667e7bdaf7096f432333377d8302ac43c70b5df8a4cf89b8 \
|
||||||
--hash=sha256:33da4bbaf44e9755b0ce192597f3bde7372fe2e381ab305f41b707a95ac57aa7 \
|
--hash=sha256:3d50e5861872935fece391351cbb5ba21d1bced277cf5e1143d207a0a35f1925 \
|
||||||
--hash=sha256:37d3c653af15cd88592633e942f5407cb4c64184efab163c40fcebad05f25141 \
|
--hash=sha256:3e91dcd2549b8f8d843f98ba03a17e01f3d8b72ce942adbbb6761bc58ffce813 \
|
||||||
--hash=sha256:3fecce764cf5a991ee2195a844196da840aba72029b2612f95ac68a8b74946bf \
|
--hash=sha256:419e4397a36e2665ec992d8d64c20ba4b2a42500c76ecadeca78a4f19cb9cc32 \
|
||||||
--hash=sha256:43d0305c36f504232f18ea04e55f2059bb89f169d3119c4ea96a0e15b59e2a91 \
|
--hash=sha256:440d30faaf682ca496170a7f0cc5453ec942e3e079f0fd802c9a7f938dfb50a3 \
|
||||||
--hash=sha256:43e38c1305cffae8472572a0584d4ffc2f130865586a81038ca3965301f7c97c \
|
--hash=sha256:46b92a9970dcc34f0096901c792644094cab49554ac3547f35e3aebbdf0a3610 \
|
||||||
--hash=sha256:442125473b247227d3f2de807a11da6c08ccf536572d1be943f8e262bae7e4ea \
|
--hash=sha256:478b59bb018a6780d73f33e38d0b3ec5e968a6c1ed42876b993dd456b7aa20e8 \
|
||||||
--hash=sha256:442cba39957a008dfc5bdef21a9c3f4379e30ffb4e41b8555dbaf4887eca9300 \
|
--hash=sha256:48bee0b91bebfaec41e1081e351000659ab7570cc4598d617aa04d5bf827f9e6 \
|
||||||
--hash=sha256:489ce98a895c98cad284f0a47960c3e264c724cb4cfd47a1430fa091c0c25204 \
|
--hash=sha256:4900143d82071bdda533b00300c40b14b963ff826b3642cc463b6dd0f036585e \
|
||||||
--hash=sha256:4ad73afb688b36864a8d9b7344a9cf6da186c471e5790cbf541a635ee0f457f2 \
|
--hash=sha256:4a60f0057231188e3bd30216f7b4e0f279b11fa4ec818bb6c1d9f014d1562fbc \
|
||||||
--hash=sha256:4b39921df948388a863f0e267edf2c36302983459b021ab928d4b801cbe6a421 \
|
--hash=sha256:56227a61fd3d17b0cd9793132431f3a3d07c8654be96794ba9f89fe0fc8b2d09 \
|
||||||
--hash=sha256:4e49c9e992bc5fc873bd0fff7ef16a4405130ec42f2ce3d2b735ba5d3d4eb70f \
|
--hash=sha256:578e6051f6d5e6200c259b47a103cf06bb875ab5814d17333fc0b5c290b22f4c \
|
||||||
--hash=sha256:52619d25a09546b8db078981ca88939d72caa6b8701edd8b22e16482a38e799f \
|
--hash=sha256:593c00dac4e30231c35bf3b4f1da8ec0998762e9e94425586a5d636fcd57f9d0 \
|
||||||
--hash=sha256:54fa03062124e73086dae66a3451c553c1e20a39c077fd704dc7154092c34c63 \
|
--hash=sha256:59b3dba758661a318995655435c6ab20a04ade79fa51e75bc8dc107cac8df280 \
|
||||||
--hash=sha256:56fefb4382bb12250f164250240b9dd7772e41c5c8ae976fd598a32292449cc5 \
|
--hash=sha256:5ab449c9abd0d4e1f8145dce0798a4c822a1a1933d613c764a641bea88b8bdab \
|
||||||
--hash=sha256:576e4b9012a67e0bf54fccb69a7b6c94d4e86a9540a62f1a5144977359133583 \
|
--hash=sha256:5dfa89d78f22cd773054caff44827b846161a29f2dcf7e78b8f90d086621e502 \
|
||||||
--hash=sha256:57f878330c8d361b2ce76cebb8e3e1dc827293b6abf404e67d53260d27b5d941 \
|
--hash=sha256:649712823f3abcdc48427147a5384fac15623ba435d0013959b52e6462521397 \
|
||||||
--hash=sha256:5cfc3d57abd83c734d1714ec39c88a34dd69c85474918ebc21296f1e61eb5ca8 \
|
--hash=sha256:667f40fe9c81ad129b198d236881b00dd9e8314d9cc72d03c3e16bdfe5879051 \
|
||||||
--hash=sha256:656e52b054d5b5c2524169240e50cfa080b04b1c613c5f90a2465e84888d6f15 \
|
--hash=sha256:6737b35d5af7479c5bf9710f7b17edd9d2c43128d974d25fb4ea653e42c64609 \
|
||||||
--hash=sha256:685c93ea961d135893b5984a5a9851637d23767feabe414ec974f43babbd8226 \
|
--hash=sha256:67f3f9d2b444268ab53e47d31bab89954888d23c04c6789f2c727e51fe4b1d13 \
|
||||||
--hash=sha256:6a014ba09657abfcfeed64b7d09407acb29af436d7fc075b23a298a7e4a6b41c \
|
--hash=sha256:7092a216728f80c960bd6b3807275d1ee318b168986bd5dc523349581d4890b8 \
|
||||||
--hash=sha256:6c5f545f454871e6af05753a0172849c82feaf0f521c5ca62ba09e1b382d6382 \
|
--hash=sha256:738c96944d076deeaff70e92b65696ab4f7ecb8081d7791c5403a3257dfaf8ff \
|
||||||
--hash=sha256:6de00eb84c71476af7d3110cf25d8fe7c792d7f5fa86764ef0b4ca97e78ca3ed \
|
--hash=sha256:77eac0526899b3c3ad1454bb2b03cdb491d67358ec8ef0c9c48bd61b632b431d \
|
||||||
--hash=sha256:73b07566bc7e010e7b5bd490fb04bb312e820970180df6b5655e9e6224c137db \
|
--hash=sha256:7d5ca9c7832e6879a707296d1463685f7c243a27846227044504741640caec66 \
|
||||||
--hash=sha256:769f31c60cd79420188fcdb3c823227fc4a6deb35cafec9d14045c7f6743acae \
|
--hash=sha256:7e580cb04ad849ae9b786fa21383c6b994b6e6c1444ad1cb9f22392759d72741 \
|
||||||
--hash=sha256:7ba009977601d8b0828bfac9a110b195b3e4e79b350dcfa48c11269a9f1918a0 \
|
--hash=sha256:8166efddea49fdbc61185559f47593239e4794fd7c9044dd5a789d1a90af852d \
|
||||||
--hash=sha256:7ccbf68100c170e9a0581accbe9291850936711548c6688ce3bfb897b8c589ad \
|
--hash=sha256:823b1b9d9230809d8edcc18872770764bfe8ef4357995e16744047c8ccf0e489 \
|
||||||
--hash=sha256:7cf174b52cb3ef5d49e45d0a1133b7e7d0ecf770ed01f97ae9962c5c91d97d23 \
|
--hash=sha256:88b7d31ff1cc5e9bc0e4406e6b1fa00b6d37163d50bb58091e9b976ff1129faa \
|
||||||
--hash=sha256:7d9af908c2f371bfb9c985bd134e295038e3031e666e4b2ade1e7cb7f5af2f1a \
|
--hash=sha256:8c90cdf8516d9057e502aa6003cea71cf5ec27cc44699ca52412b502a04761bb \
|
||||||
--hash=sha256:834d1e818005ed0d4ae38f6b87b86fad9b0a74085467ece0727d20e15077c094 \
|
--hash=sha256:8ce1d850b3c0178440efde9e884d98421b5e87ff925f364d6d79e23910d7593f \
|
||||||
--hash=sha256:8383b6d0d92f6cd008f3c9216535be215a064b2cc890398a678b56e6d280cb63 \
|
--hash=sha256:8f4a8f5cc84c7ad6bffa0e9947b33eb343ad66e6b53e94fe54378a5508c5ed53 \
|
||||||
--hash=sha256:89acb8cbb52904f763e5ac238083b9fc193bed8d1f03c80568b20e4cef43a519 \
|
--hash=sha256:93d8da883a35116d6813432177f35e570db5b0a5e30ecb0cbd7cb39c815735df \
|
||||||
--hash=sha256:948b00e8476a91f510dd1ec07272efc7d78c275d83b630455559671d4e33b678 \
|
--hash=sha256:95d937e74c1a7a1287dfb03b62a827be08ede10a155cf1af73bbf47f2b73ee6e \
|
||||||
--hash=sha256:9ec02e62ae765a318d6de38df609c57fc6dacc65c0ed1fd489036834fd8a620c \
|
--hash=sha256:9669753caef7fdc6529f6adcc5883ed98d65976445d9322e7dbdb6b697feee13 \
|
||||||
--hash=sha256:a0a28add871425c2fe94358c6300bbeb0bc2ed828ca003420ac6825408f5a424 \
|
--hash=sha256:97131ab2be39043054ee28d99e09efe316e6d53449b7e962dfcf3c2de8b2b246 \
|
||||||
--hash=sha256:a2135b138bcdcb4c3742d417f215ac2d8c2b87bde15b0feede231ae95f09ec41 \
|
--hash=sha256:97c6d85283629646fa87acc22c66b30ea9d4de7f6fdf887daa2e30fa041829b5 \
|
||||||
--hash=sha256:adb44d996fc610c7da8c5048775b21db60dd63b1548f078e95858c05c86876a3 \
|
--hash=sha256:9981d38a703b86f0e315a3cd229fd1906fe1d91c989ed121fb975b3c849f89f5 \
|
||||||
--hash=sha256:b5100fd6bcee4d27f28f4e0a1c6b5127bc8ba7c2a9959cad9eab0bf4a7ab3329 \
|
--hash=sha256:9ad37a0be705b544af6296da8edddc260d10a8ae5462530fc9991f66498bb1f9 \
|
||||||
--hash=sha256:b9fcd4d751a4fffa17aed1dde41647923c72c74af02459ad1222e3b0022da3a1 \
|
--hash=sha256:a2ae6f53f99c9a0eca7a0afc5b4e45fc73bc1dd4ac74c00509031d76df80ed98 \
|
||||||
--hash=sha256:beda6aa9bc44d1d81242e7b291b446be352d3451f8217fcb068fc2933927d53b \
|
--hash=sha256:aac0ad28c686a5e72b81668b906c030ee28050b244544b8af68e12fb32543895 \
|
||||||
--hash=sha256:c5fb2d978a601820d2cfd111e2c221a9a7bfdf84b41a3ccbb96ceef29f2f1ac7 \
|
--hash=sha256:af3b859726cd3374287e405e14b9634563c078c5531a4f62375508addebddad1 \
|
||||||
--hash=sha256:c71ce6d4231e5ef2e33caa952bfe671cb9fd42e2afb11952df9fad41d5c821f9 \
|
--hash=sha256:af6a90a4ed2a48fa1a2d17e9d824e6c7c950bea5bad0b707c77fd55751e6bfef \
|
||||||
--hash=sha256:c7bd1816db05d6c5ffb3a4df0a2b7b56fb8c81ef584d08e37058afa217da91b1 \
|
--hash=sha256:b002c7994cc9f2bc9d9856f0fbaee6e8072c983873846c92f25cefba5b2a925f \
|
||||||
--hash=sha256:c7e40c0a0af02ad6e57e89f62bef8604f55a04ecae90b0ceeda591bbf5923317 \
|
--hash=sha256:b486b5218808f6f4dc471b114b1054e63553db69705c97da0271f47bd706aedd \
|
||||||
--hash=sha256:cc594bbcd3c62f647dfac66800f307beaee56b22aaba1c005e9c4c40ed733923 \
|
--hash=sha256:b9c6bd754d11f6e78ac54e3d86b4b11dc1ba2f13e5fc958899574532897f5a99 \
|
||||||
--hash=sha256:cc65e72790ddfd310c2c8912b45106e3800fefe160b0c2ef4d6b6fec4e826457 \
|
--hash=sha256:ba10ac57884ce82112f7ed910b67e7fb6072d8ef2c06e30dc63c0f604a112e0e \
|
||||||
--hash=sha256:cec3c0da88562727dd5a5a364bd9efeb535400ff0bfb1443156dd139a1dd7b50 \
|
--hash=sha256:bf5018938208d4597b2e679a4f8cff9fd252f1df53583130ae56281a21801b64 \
|
||||||
--hash=sha256:cfe8df315ab4e6db4e1be72c5170f8e66021acde22cd2f9d04d2058a9fd8162e \
|
--hash=sha256:c0919d1f89ddf91129906705723118ea09754171e4116f5a5dbc667c7bc9b261 \
|
||||||
--hash=sha256:d1fa009f8b1100e4880868137e7bf0501422898f7674f2adcd85d5a67f041296 \
|
--hash=sha256:c5801a89604c65ab4cc9e91b23bc4076d0ca80efd8c976fb63843d7879a85d7f \
|
||||||
--hash=sha256:d7843a1abf0091773a530636fdd2a49a41bcae22f9910b86b4f903e76ddc82dc \
|
--hash=sha256:c84af70bcf34e99aee894e46a0f1ac77f17d0ef828179c387407642e2466d28a \
|
||||||
--hash=sha256:da2a007434323904719158e50f3076a4dadb176ce43df28ed14610c773cc9825 \
|
--hash=sha256:cb2829fedd672dd7107267189dabe2bbe07972801d636014417c6861eb89e358 \
|
||||||
--hash=sha256:dbcb726064b12f356bf10fffdb6db4b6dce5390b23627c08652b3f6e49aa56ae \
|
--hash=sha256:d45e06f60729e07d9b20c205f7e5cff90b6ef2584e852eecf46e045aea69627d \
|
||||||
--hash=sha256:dc8c07801df5206b81ed6bd6c35cb520cf9b6c64b9b0d19d699f8633dc942897 \
|
--hash=sha256:d7ca16637c0ede8243f84074044bd0b2335a0341421f8227c85756de2d18c819 \
|
||||||
--hash=sha256:dea2d113e260a5da0c4003e0a5e9fdf24a9dc2bb9eaa43abd030a1e46ce7837d \
|
--hash=sha256:d8375e3da319593389727c3187ccaf3e0e84199accc530866b8e0f2b79af05e9 \
|
||||||
--hash=sha256:dea97ac3ca18cd3ba8f3d04b5c1fe4aa60e58e8d9b7793d3bd595fdb04128d7a \
|
--hash=sha256:dfa552338f51aec280f17b02d28bace1e162d1a84ccd80e3339a57f98aedb56b \
|
||||||
--hash=sha256:dee362e7e79bae940a5e2b3f6d09c6554db6a4e301cc68343886c08be99844f1 \
|
--hash=sha256:dfef96543ced67d9513a422755db422ae1dc34dade0a1485e0b43e7342ed3ebf \
|
||||||
--hash=sha256:e195a77d06c03c98b3fc06b8a28576ba824392ce40de8c708f96ce04849a052e \
|
--hash=sha256:e012177c8e8a8a0754ae0d6027d63042aa5ff036d9f40f07cb3466a6082e21b8 \
|
||||||
--hash=sha256:e6b5e3036976f0fde888687d91be86d81f9ac5f7b02e218913c38285b756be6c \
|
--hash=sha256:e251126d48615e1f02b4a178f2cd0cd4f0332b8a019c01a2e10480f7552554b4 \
|
||||||
--hash=sha256:e6c31a4aa68cfa75d7eede8b0ed24b9e458447db604c2db53f358be9843d81d3 \
|
--hash=sha256:e52da10236aa6212de71b9e170bace65b64b129c0dea7fc243d6c9ce976f5074 \
|
||||||
--hash=sha256:e805e52322ae29aa945baf7168b6c898120fbc16d2b8f940b658a5e9e3999253 \
|
--hash=sha256:eacb434410b8d9ca99a8d42352ef085cf423e3c76c1f0b86be2fcba3bff2952c \
|
||||||
--hash=sha256:ea188aa00e9bcae8c8411f006a5f2f06c4607a02f24eab0d8dc58566aa911f35 \
|
--hash=sha256:ebd8fd343bf8492a1e60bcb6dc99f90f74f65d98d8241a6b3e1fed225b76ecd6 \
|
||||||
--hash=sha256:ecd7453e02cf072258c3a6b8e930230d789d5d46cc849503729f9ce475d0e785 \
|
--hash=sha256:f0b2af76b7e7060c09e1a0dfa9410eb19369cbe6164509bff2ef94094b54d2b6 \
|
||||||
--hash=sha256:ef6bf930b947bd0735c550683939a032090f1d688dfd8861d6b45307b96fd5c5 \
|
--hash=sha256:f2073495a7f9b75e57e600747ac09510d67683fd64d3228e009740b7ef88f9fe \
|
||||||
--hash=sha256:f3d15d8527e2b293e38ce6e437631af0708df29eafd7c9fc48210854c94472f9 \
|
--hash=sha256:f4c1bca487a17fe4226b4ffb2d30e799d2b274d692cffa76bd0746f56235fca3 \
|
||||||
--hash=sha256:f3eb0ff3b75d6fdccd40b55e7414bb859a1cda77c52762c9c82b85569f5088e7 \
|
--hash=sha256:f9fff308486bbd2c8c24f25e8e152c7594d3fe8db265a2d6a1ce24d58671127f \
|
||||||
--hash=sha256:fa7c8f26f009f8c673fbfb443792f0cf8cf50c4e18121ff1e285b5e08a94fbdb \
|
--hash=sha256:fbf1b8bb2695415b347f3727da1addca2acb82c9b97ac86bebf8b1bead1eb12d \
|
||||||
--hash=sha256:fce3152f94afcfd12f3dd8cf51e48fa606e3cb56719bccebe3b401f43d0714f9
|
--hash=sha256:feedf219672eef83ea6be6f3bb093bba396a8560fc75be85ba225f082903df0a
|
||||||
# via -r src/backend/requirements.in
|
# via -r src/backend/requirements.in
|
||||||
redis==7.4.0 \
|
redis==7.4.0 \
|
||||||
--hash=sha256:64a6ea7bf567ad43c964d2c30d82853f8df927c5c9017766c55a1d1ed95d18ad \
|
--hash=sha256:64a6ea7bf567ad43c964d2c30d82853f8df927c5c9017766c55a1d1ed95d18ad \
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,23 @@
|
||||||
|
|
||||||
This file contains historical changelog information for the InvenTree UI components library.
|
This file contains historical changelog information for the InvenTree UI components library.
|
||||||
|
|
||||||
|
### 0.11.2 - April 2026
|
||||||
|
|
||||||
|
Exposes additional type definitions related to tables and filters:
|
||||||
|
|
||||||
|
- TableFilterChoice
|
||||||
|
- TableFilterType
|
||||||
|
- TableFilter
|
||||||
|
- FilterSetState
|
||||||
|
|
||||||
|
### 0.11.1 - April 2026
|
||||||
|
|
||||||
|
Fixes dependency issues for the `InvenTreeTable` component, which were introduced in `0.11.0`. This ensures that the component works correctly and does not cause issues with plugin builds.
|
||||||
|
|
||||||
|
### 0.11.0 - April 2026
|
||||||
|
|
||||||
|
Adds the `InvenTreeTable` component, which provides plugins with a method of implementing an API-driven data table which is consistent with the rest of the InvenTree UI. This component supports features such as pagination, sorting, and filtering, and can be used to display data from the InvenTree API in a tabular format.
|
||||||
|
|
||||||
### 0.10.1 - April 2026
|
### 0.10.1 - April 2026
|
||||||
|
|
||||||
Allows plugins to specify custom model rendering functions within the data import wizard, allowing import of data models not defined in the core InvenTree codebase.
|
Allows plugins to specify custom model rendering functions within the data import wizard, allowing import of data models not defined in the core InvenTree codebase.
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,7 @@ import {
|
||||||
Text,
|
Text,
|
||||||
Tooltip
|
Tooltip
|
||||||
} from '@mantine/core';
|
} from '@mantine/core';
|
||||||
|
import { IconCheck, IconCopy } from '@tabler/icons-react';
|
||||||
import { InvenTreeIcon } from '../../functions/icons';
|
|
||||||
|
|
||||||
import type { JSX } from 'react';
|
import type { JSX } from 'react';
|
||||||
|
|
||||||
|
|
@ -62,11 +61,7 @@ export function CopyButton({
|
||||||
variant={copied ? 'transparent' : (variant ?? 'transparent')}
|
variant={copied ? 'transparent' : (variant ?? 'transparent')}
|
||||||
size={size ?? 'sm'}
|
size={size ?? 'sm'}
|
||||||
>
|
>
|
||||||
{copied ? (
|
{copied ? <IconCheck /> : <IconCopy />}
|
||||||
<InvenTreeIcon icon='check' />
|
|
||||||
) : (
|
|
||||||
<InvenTreeIcon icon='copy' />
|
|
||||||
)}
|
|
||||||
{content}
|
{content}
|
||||||
{label && (
|
{label && (
|
||||||
<Text p={size ?? 'sm'} size={size ?? 'sm'}>
|
<Text p={size ?? 'sm'} size={size ?? 'sm'}>
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { Group } from '@mantine/core';
|
import { Group } from '@mantine/core';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { CopyButton } from '../components/buttons/CopyButton';
|
import { CopyButton } from './CopyButton';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A wrapper component that adds a copy button to cell content on hover
|
* A wrapper component that adds a copy button to cell content on hover
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
import { Alert } from '@mantine/core';
|
||||||
|
import {
|
||||||
|
INVENTREE_PLUGIN_VERSION,
|
||||||
|
type InvenTreePluginContext
|
||||||
|
} from '../types/Plugins';
|
||||||
|
import type {
|
||||||
|
InvenTreeTableProps,
|
||||||
|
TableColumn,
|
||||||
|
TableState
|
||||||
|
} from '../types/Tables';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper function which allows plugins to render an InvenTree component instance directly,
|
||||||
|
* in a similar way to the standard InvenTreeTable component.
|
||||||
|
*
|
||||||
|
* Note: The InventreePluginContext "context" object must be provided when rendering the table
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
export default function InvenTreeTable({
|
||||||
|
url,
|
||||||
|
tableState,
|
||||||
|
tableData,
|
||||||
|
columns,
|
||||||
|
props,
|
||||||
|
context
|
||||||
|
}: {
|
||||||
|
url?: string;
|
||||||
|
tableState: TableState;
|
||||||
|
tableData?: any[];
|
||||||
|
columns: TableColumn<any>[];
|
||||||
|
props: InvenTreeTableProps;
|
||||||
|
context: InvenTreePluginContext;
|
||||||
|
}) {
|
||||||
|
if (!context?.tables?.renderTable) {
|
||||||
|
return (
|
||||||
|
<Alert title='Plugin Version Error' color='red'>
|
||||||
|
{
|
||||||
|
'The <InvenTreeTable> component cannot be rendered because the plugin context is missing the "renderTable" function.'
|
||||||
|
}
|
||||||
|
<br />
|
||||||
|
{
|
||||||
|
'This means that the InvenTree UI library version is incompatible with this plugin version.'
|
||||||
|
}
|
||||||
|
<br />
|
||||||
|
<b>Plugin Version:</b> {INVENTREE_PLUGIN_VERSION}
|
||||||
|
<br />
|
||||||
|
<b>UI Version:</b> {context?.version?.inventree || 'unknown'}
|
||||||
|
<br />
|
||||||
|
</Alert>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return context?.tables.renderTable({
|
||||||
|
url: url,
|
||||||
|
tableState: tableState,
|
||||||
|
tableData: tableData,
|
||||||
|
columns: columns,
|
||||||
|
props: props,
|
||||||
|
api: context.api,
|
||||||
|
navigate: context.navigate
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
import type { ApiEndpoints } from '../enums/ApiEndpoints';
|
||||||
|
import type { PathParams } from '../types/Core';
|
||||||
|
import type { ApiFormFieldSet, ApiFormFieldType } from '../types/Forms';
|
||||||
|
import { apiUrl } from './Api';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct an API url from the provided ApiFormProps object
|
||||||
|
*/
|
||||||
|
export function constructFormUrl(
|
||||||
|
url: ApiEndpoints | string,
|
||||||
|
pk?: string | number,
|
||||||
|
pathParams?: PathParams,
|
||||||
|
queryParams?: URLSearchParams
|
||||||
|
): string {
|
||||||
|
let formUrl = apiUrl(url, pk, pathParams);
|
||||||
|
|
||||||
|
if (queryParams) {
|
||||||
|
formUrl += `?${queryParams.toString()}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return formUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type NestedDict = { [key: string]: string | number | NestedDict };
|
||||||
|
|
||||||
|
export function mapFields(
|
||||||
|
fields: ApiFormFieldSet,
|
||||||
|
fieldFunction: (path: string, value: ApiFormFieldType, key: string) => any,
|
||||||
|
_path?: string
|
||||||
|
): NestedDict {
|
||||||
|
const res: NestedDict = {};
|
||||||
|
|
||||||
|
for (const [k, v] of Object.entries(fields)) {
|
||||||
|
const path = _path ? `${_path}.${k}` : k;
|
||||||
|
let value: any;
|
||||||
|
|
||||||
|
if (v.field_type === 'nested object' && v.children) {
|
||||||
|
value = mapFields(v.children, fieldFunction, path);
|
||||||
|
} else {
|
||||||
|
value = fieldFunction(path, v, k);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value !== undefined) res[k] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
import { t } from '@lingui/core/macro';
|
||||||
|
import { notifications } from '@mantine/notifications';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a notification that the feature is not yet implemented
|
||||||
|
*/
|
||||||
|
export function notYetImplemented() {
|
||||||
|
notifications.hide('not-implemented');
|
||||||
|
|
||||||
|
notifications.show({
|
||||||
|
title: t`Not implemented`,
|
||||||
|
message: t`This feature is not yet implemented`,
|
||||||
|
color: 'red',
|
||||||
|
id: 'not-implemented'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a notification that the user does not have permission to perform the action
|
||||||
|
*/
|
||||||
|
export function permissionDenied() {
|
||||||
|
notifications.show({
|
||||||
|
title: t`Permission Denied`,
|
||||||
|
message: t`You do not have permission to perform this action`,
|
||||||
|
color: 'red'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a notification on an invalid return code
|
||||||
|
*/
|
||||||
|
export function invalidResponse(returnCode: number) {
|
||||||
|
// TODO: Specific return code messages
|
||||||
|
notifications.show({
|
||||||
|
title: t`Invalid Return Code`,
|
||||||
|
message: t`Server returned status ${returnCode}`,
|
||||||
|
color: 'red'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a notification on timeout
|
||||||
|
*/
|
||||||
|
export function showTimeoutNotification() {
|
||||||
|
notifications.show({
|
||||||
|
title: t`Timeout`,
|
||||||
|
message: t`The request timed out`,
|
||||||
|
color: 'red'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import type { FilterSetState, TableFilter } from '@lib/types/Filters';
|
|
||||||
import { useLocalStorage } from '@mantine/hooks';
|
import { useLocalStorage } from '@mantine/hooks';
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo } from 'react';
|
||||||
|
import type { FilterSetState, TableFilter } from '../types/Filters';
|
||||||
|
|
||||||
export function useFilterSet(
|
export default function useFilterSet(
|
||||||
filterKey: string,
|
filterKey: string,
|
||||||
initialFilters?: TableFilter[]
|
initialFilters?: TableFilter[]
|
||||||
): FilterSetState {
|
): FilterSetState {
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
import { randomId } from '@mantine/hooks';
|
import { randomId } from '@mantine/hooks';
|
||||||
import { useCallback, useMemo, useState } from 'react';
|
import { useCallback, useMemo, useState } from 'react';
|
||||||
import { useSearchParams } from 'react-router-dom';
|
|
||||||
|
|
||||||
import type { FilterSetState, TableFilter } from '@lib/types/Filters';
|
import type { FilterSetState, TableFilter } from '../types/Filters';
|
||||||
import type { TableState } from '@lib/types/Tables';
|
import type { TableState } from '../types/Tables';
|
||||||
import { useFilterSet } from './UseFilterSet';
|
import useFilterSet from './UseFilterSet';
|
||||||
|
|
||||||
export type TableStateExtraProps = {
|
export type TableStateExtraProps = {
|
||||||
idAccessor?: string;
|
idAccessor?: string;
|
||||||
|
|
@ -17,7 +16,7 @@ export type TableStateExtraProps = {
|
||||||
* Refer to the TableState type definition for more information.
|
* Refer to the TableState type definition for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export function useTable(
|
export default function useTable(
|
||||||
tableName: string,
|
tableName: string,
|
||||||
tableProps: TableStateExtraProps = {
|
tableProps: TableStateExtraProps = {
|
||||||
idAccessor: 'pk',
|
idAccessor: 'pk',
|
||||||
|
|
@ -29,13 +28,6 @@ export function useTable(
|
||||||
return `${tableName.replaceAll('-', '')}-${randomId()}`;
|
return `${tableName.replaceAll('-', '')}-${randomId()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract URL query parameters (e.g. ?active=true&overdue=false)
|
|
||||||
const [queryFilters, setQueryFilters] = useSearchParams();
|
|
||||||
|
|
||||||
const clearQueryFilters = useCallback(() => {
|
|
||||||
setQueryFilters({});
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const [tableKey, setTableKey] = useState<string>(generateTableName());
|
const [tableKey, setTableKey] = useState<string>(generateTableName());
|
||||||
|
|
||||||
// Callback used to refresh (reload) the table
|
// Callback used to refresh (reload) the table
|
||||||
|
|
@ -133,9 +125,6 @@ export function useTable(
|
||||||
isLoading,
|
isLoading,
|
||||||
setIsLoading,
|
setIsLoading,
|
||||||
filterSet,
|
filterSet,
|
||||||
queryFilters,
|
|
||||||
setQueryFilters,
|
|
||||||
clearQueryFilters,
|
|
||||||
expandedRecords,
|
expandedRecords,
|
||||||
setExpandedRecords,
|
setExpandedRecords,
|
||||||
isRowExpanded,
|
isRowExpanded,
|
||||||
|
|
@ -15,10 +15,27 @@ export { UserRoles, UserPermissions } from './enums/Roles';
|
||||||
export type {
|
export type {
|
||||||
InvenTreePluginContext,
|
InvenTreePluginContext,
|
||||||
InvenTreeFormsContext,
|
InvenTreeFormsContext,
|
||||||
|
InvenTreeTablesContext,
|
||||||
|
ImporterDrawerContext,
|
||||||
PluginVersion,
|
PluginVersion,
|
||||||
StockAdjustmentFormsContext
|
StockAdjustmentFormsContext
|
||||||
} from './types/Plugins';
|
} from './types/Plugins';
|
||||||
export type { RowAction, RowViewProps } from './types/Tables';
|
|
||||||
|
export type {
|
||||||
|
RowAction,
|
||||||
|
RowViewProps,
|
||||||
|
TableColumn,
|
||||||
|
TableColumnProps,
|
||||||
|
InvenTreeTableProps,
|
||||||
|
InvenTreeTableRenderProps
|
||||||
|
} from './types/Tables';
|
||||||
|
|
||||||
|
export type {
|
||||||
|
TableFilterChoice,
|
||||||
|
TableFilterType,
|
||||||
|
TableFilter,
|
||||||
|
FilterSetState
|
||||||
|
} from './types/Filters';
|
||||||
|
|
||||||
export type {
|
export type {
|
||||||
ApiFormFieldChoice,
|
ApiFormFieldChoice,
|
||||||
|
|
@ -42,6 +59,14 @@ export {
|
||||||
getDetailUrl,
|
getDetailUrl,
|
||||||
navigateToLink
|
navigateToLink
|
||||||
} from './functions/Navigation';
|
} from './functions/Navigation';
|
||||||
|
|
||||||
|
export {
|
||||||
|
notYetImplemented,
|
||||||
|
permissionDenied,
|
||||||
|
invalidResponse,
|
||||||
|
showTimeoutNotification
|
||||||
|
} from './functions/Notification';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
checkPluginVersion,
|
checkPluginVersion,
|
||||||
initPlugin
|
initPlugin
|
||||||
|
|
@ -53,16 +78,32 @@ export {
|
||||||
formatFileSize
|
formatFileSize
|
||||||
} from './functions/Formatting';
|
} from './functions/Formatting';
|
||||||
|
|
||||||
|
export {
|
||||||
|
constructFormUrl,
|
||||||
|
mapFields,
|
||||||
|
type NestedDict
|
||||||
|
} from './functions/Forms';
|
||||||
|
|
||||||
|
export {
|
||||||
|
shortenString,
|
||||||
|
hashString
|
||||||
|
} from './functions/String';
|
||||||
|
|
||||||
// Common UI components
|
// Common UI components
|
||||||
export {
|
export {
|
||||||
ActionButton,
|
ActionButton,
|
||||||
type ActionButtonProps
|
type ActionButtonProps
|
||||||
} from './components/ActionButton';
|
} from './components/ActionButton';
|
||||||
export { AddItemButton } from './components/AddItemButton';
|
export { AddItemButton } from './components/AddItemButton';
|
||||||
|
export { Boundary, DefaultFallback } from './components/Boundary';
|
||||||
export { ButtonMenu } from './components/ButtonMenu';
|
export { ButtonMenu } from './components/ButtonMenu';
|
||||||
|
export { CopyButton } from './components/CopyButton';
|
||||||
|
export { CopyableCell } from './components/CopyableCell';
|
||||||
export { ProgressBar } from './components/ProgressBar';
|
export { ProgressBar } from './components/ProgressBar';
|
||||||
export { PassFailButton, YesNoButton } from './components/YesNoButton';
|
export { PassFailButton, YesNoButton } from './components/YesNoButton';
|
||||||
export { SearchInput } from './components/SearchInput';
|
export { SearchInput } from './components/SearchInput';
|
||||||
|
export { TableColumnSelect } from './components/TableColumnSelect';
|
||||||
|
export { default as InvenTreeTable } from './components/InvenTreeTable';
|
||||||
export {
|
export {
|
||||||
RowViewAction,
|
RowViewAction,
|
||||||
RowDuplicateAction,
|
RowDuplicateAction,
|
||||||
|
|
@ -77,7 +118,21 @@ export {
|
||||||
default as useMonitorDataOutput,
|
default as useMonitorDataOutput,
|
||||||
type MonitorDataOutputProps
|
type MonitorDataOutputProps
|
||||||
} from './hooks/MonitorDataOutput';
|
} from './hooks/MonitorDataOutput';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
default as useMonitorBackgroundTask,
|
default as useMonitorBackgroundTask,
|
||||||
type MonitorBackgroundTaskProps
|
type MonitorBackgroundTaskProps
|
||||||
} from './hooks/MonitorBackgroundTask';
|
} from './hooks/MonitorBackgroundTask';
|
||||||
|
|
||||||
|
export { default as useFilterSet } from './hooks/UseFilterSet';
|
||||||
|
|
||||||
|
export {
|
||||||
|
default as useTable,
|
||||||
|
type TableStateExtraProps
|
||||||
|
} from './hooks/UseTable';
|
||||||
|
|
||||||
|
// State management
|
||||||
|
export {
|
||||||
|
type StoredTableStateProps,
|
||||||
|
useStoredTableState
|
||||||
|
} from './states/StoredTableState';
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ const DEFAULT_PAGE_SIZE: number = 25;
|
||||||
* - columnNames: An object mapping table keys to arrays of column names.
|
* - columnNames: An object mapping table keys to arrays of column names.
|
||||||
* - sorting: An object mapping table keys to sorting configurations.
|
* - sorting: An object mapping table keys to sorting configurations.
|
||||||
*/
|
*/
|
||||||
interface StoredTableStateProps {
|
export interface StoredTableStateProps {
|
||||||
pageSize: number;
|
pageSize: number;
|
||||||
setPageSize: (size: number) => void;
|
setPageSize: (size: number) => void;
|
||||||
tableSorting: Record<string, any>;
|
tableSorting: Record<string, any>;
|
||||||
|
|
@ -13,6 +13,7 @@ import type {
|
||||||
import type { UseModalReturn } from './Modals';
|
import type { UseModalReturn } from './Modals';
|
||||||
import type { RenderInstanceProps } from './Rendering';
|
import type { RenderInstanceProps } from './Rendering';
|
||||||
import type { SettingsStateProps } from './Settings';
|
import type { SettingsStateProps } from './Settings';
|
||||||
|
import type { InvenTreeTableRenderProps } from './Tables';
|
||||||
import type { UserStateProps } from './User';
|
import type { UserStateProps } from './User';
|
||||||
|
|
||||||
export interface PluginProps {
|
export interface PluginProps {
|
||||||
|
|
@ -48,6 +49,10 @@ export type InvenTreeFormsContext = {
|
||||||
stockActions: StockAdjustmentFormsContext;
|
stockActions: StockAdjustmentFormsContext;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type InvenTreeTablesContext<T extends Record<string, any>> = {
|
||||||
|
renderTable: (props: InvenTreeTableRenderProps<T>) => React.ReactNode;
|
||||||
|
};
|
||||||
|
|
||||||
export type ImporterDrawerContext = {
|
export type ImporterDrawerContext = {
|
||||||
open: (sessionId: number, options?: { onClose?: () => void }) => void;
|
open: (sessionId: number, options?: { onClose?: () => void }) => void;
|
||||||
close: () => void;
|
close: () => void;
|
||||||
|
|
@ -61,20 +66,22 @@ export type ImporterDrawerContext = {
|
||||||
*
|
*
|
||||||
* @param version - The version of the running InvenTree software stack
|
* @param version - The version of the running InvenTree software stack
|
||||||
* @param api - The Axios API instance (see ../states/ApiState.tsx)
|
* @param api - The Axios API instance (see ../states/ApiState.tsx)
|
||||||
|
* @param queryClient - The Tanstack QueryClient instance (see ../states/QueryState.tsx)
|
||||||
* @param user - The current user instance (see ../states/UserState.tsx)
|
* @param user - The current user instance (see ../states/UserState.tsx)
|
||||||
* @param userSettings - The current user settings (see ../states/SettingsState.tsx)
|
* @param userSettings - The current user settings (see ../states/SettingsState.tsx)
|
||||||
* @param globalSettings - The global settings (see ../states/SettingsState.tsx)
|
* @param globalSettings - The global settings (see ../states/SettingsState.tsx)
|
||||||
* @param navigate - The navigation function (see react-router-dom)
|
* @param modelInformation - A dictionary of available model information
|
||||||
* @param theme - The current Mantine theme
|
* @param renderInstance - A component function for rendering a model instance
|
||||||
* @param forms - A set of functions for opening various API forms (see ../components/Forms.tsx)
|
|
||||||
* @param importer - A set of functions for controlling the global importer drawer (see ../components/importer/GlobalImporterDrawer.tsx)
|
|
||||||
* @param colorScheme - The current Mantine color scheme (e.g. 'light' / 'dark')
|
|
||||||
* @param host - The current host URL
|
* @param host - The current host URL
|
||||||
* @param i18n - The i18n instance for translations (from @lingui/core)
|
* @param i18n - The i18n instance for translations (from @lingui/core)
|
||||||
* @param locale - The current locale string (e.g. 'en' / 'de')
|
* @param locale - The current locale string (e.g. 'en' / 'de')
|
||||||
|
* @param navigate - The navigation function (see react-router-dom)
|
||||||
|
* @param theme - The current Mantine theme
|
||||||
|
* @param colorScheme - The current Mantine color scheme (e.g. 'light' / 'dark')
|
||||||
|
* @param forms - A set of functions for opening various API forms (see ../components/Forms.tsx)
|
||||||
|
* @param tables - A set of functions for rendering API tables
|
||||||
|
* @param importer - A set of functions for controlling the global importer drawer (see ../components/importer/GlobalImporterDrawer.tsx)
|
||||||
* @param model - The model type associated with the rendered component (if applicable)
|
* @param model - The model type associated with the rendered component (if applicable)
|
||||||
* @param modelInformation - A dictionary of available model information
|
|
||||||
* @param renderInstance - A component function for rendering a model instance
|
|
||||||
* @param id - The ID (primary key) of the model instance for the plugin (if applicable)
|
* @param id - The ID (primary key) of the model instance for the plugin (if applicable)
|
||||||
* @param instance - The model instance data (if available)
|
* @param instance - The model instance data (if available)
|
||||||
* @param reloadContent - A function which can be called to reload the plugin content
|
* @param reloadContent - A function which can be called to reload the plugin content
|
||||||
|
|
@ -95,9 +102,10 @@ export type InvenTreePluginContext = {
|
||||||
locale: string;
|
locale: string;
|
||||||
navigate: NavigateFunction;
|
navigate: NavigateFunction;
|
||||||
theme: MantineTheme;
|
theme: MantineTheme;
|
||||||
forms: InvenTreeFormsContext;
|
|
||||||
importer: ImporterDrawerContext;
|
|
||||||
colorScheme: MantineColorScheme;
|
colorScheme: MantineColorScheme;
|
||||||
|
forms: InvenTreeFormsContext;
|
||||||
|
tables: InvenTreeTablesContext<any>;
|
||||||
|
importer: ImporterDrawerContext;
|
||||||
model?: ModelType | string;
|
model?: ModelType | string;
|
||||||
id?: string | number | null;
|
id?: string | number | null;
|
||||||
instance?: any;
|
instance?: any;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
import type { MantineStyleProp } from '@mantine/core';
|
import type { MantineStyleProp } from '@mantine/core';
|
||||||
|
import type { AxiosInstance } from 'axios';
|
||||||
|
import type { ShowContextMenuFunction } from 'mantine-contextmenu';
|
||||||
import type {
|
import type {
|
||||||
DataTableCellClickHandler,
|
DataTableCellClickHandler,
|
||||||
DataTableRowExpansionProps
|
DataTableRowExpansionProps
|
||||||
} from 'mantine-datatable';
|
} from 'mantine-datatable';
|
||||||
import type { ReactNode } from 'react';
|
import type { ReactNode } from 'react';
|
||||||
import type { NavigateFunction, SetURLSearchParams } from 'react-router-dom';
|
import type { NavigateFunction } from 'react-router-dom';
|
||||||
import type { ModelType } from '../enums/ModelType';
|
import type { ModelType } from '../enums/ModelType';
|
||||||
import type { FilterSetState, TableFilter } from './Filters';
|
import type { FilterSetState, TableFilter } from './Filters';
|
||||||
import type { ApiFormFieldType } from './Forms';
|
import type { ApiFormFieldType } from './Forms';
|
||||||
|
|
@ -17,9 +19,6 @@ import type { ApiFormFieldType } from './Forms';
|
||||||
* isLoading: A boolean flag to indicate if the table is currently loading data
|
* isLoading: A boolean flag to indicate if the table is currently loading data
|
||||||
* setIsLoading: A function to set the isLoading flag
|
* setIsLoading: A function to set the isLoading flag
|
||||||
* filterSet: A group of active filters
|
* filterSet: A group of active filters
|
||||||
* queryFilters: A map of query filters (e.g. ?active=true&overdue=false) passed in the URL
|
|
||||||
* setQueryFilters: A function to set the query filters
|
|
||||||
* clearQueryFilters: A function to clear all query filters
|
|
||||||
* expandedRecords: An array of expanded records (rows) in the table
|
* expandedRecords: An array of expanded records (rows) in the table
|
||||||
* setExpandedRecords: A function to set the expanded records
|
* setExpandedRecords: A function to set the expanded records
|
||||||
* isRowExpanded: A function to determine if a record is expanded
|
* isRowExpanded: A function to determine if a record is expanded
|
||||||
|
|
@ -49,9 +48,6 @@ export type TableState = {
|
||||||
isLoading: boolean;
|
isLoading: boolean;
|
||||||
setIsLoading: (value: boolean) => void;
|
setIsLoading: (value: boolean) => void;
|
||||||
filterSet: FilterSetState;
|
filterSet: FilterSetState;
|
||||||
queryFilters: URLSearchParams;
|
|
||||||
setQueryFilters: SetURLSearchParams;
|
|
||||||
clearQueryFilters: () => void;
|
|
||||||
expandedRecords: any[];
|
expandedRecords: any[];
|
||||||
setExpandedRecords: (records: any[]) => void;
|
setExpandedRecords: (records: any[]) => void;
|
||||||
isRowExpanded: (pk: number) => boolean;
|
isRowExpanded: (pk: number) => boolean;
|
||||||
|
|
@ -219,3 +215,18 @@ export type InvenTreeTableProps<T = any> = {
|
||||||
minHeight?: number;
|
minHeight?: number;
|
||||||
noHeader?: boolean;
|
noHeader?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type InvenTreeTableRenderProps<T extends Record<string, any>> = {
|
||||||
|
url?: string;
|
||||||
|
tableState: TableState;
|
||||||
|
tableData?: T[];
|
||||||
|
columns: TableColumn<T>[];
|
||||||
|
props: InvenTreeTableProps<T>;
|
||||||
|
api: AxiosInstance;
|
||||||
|
navigate: NavigateFunction;
|
||||||
|
|
||||||
|
// The following attributes are for internal use only (plugins should not use these directly)
|
||||||
|
showContextMenu?: ShowContextMenuFunction;
|
||||||
|
searchParams?: URLSearchParams;
|
||||||
|
setSearchParams?: (params: URLSearchParams) => void;
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@inventreedb/ui",
|
"name": "@inventreedb/ui",
|
||||||
"description": "UI components for the InvenTree project",
|
"description": "UI components for the InvenTree project",
|
||||||
"version": "0.10.1",
|
"version": "0.11.2",
|
||||||
"private": false,
|
"private": false,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ import {
|
||||||
import { IconCamera, IconScan } from '@tabler/icons-react';
|
import { IconCamera, IconScan } from '@tabler/icons-react';
|
||||||
import { useCallback, useMemo, useState } from 'react';
|
import { useCallback, useMemo, useState } from 'react';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { useLocalStorage } from '@mantine/hooks';
|
import { useLocalStorage } from '@mantine/hooks';
|
||||||
import { useGlobalSettingsState } from '../../states/SettingsStates';
|
import { useGlobalSettingsState } from '../../states/SettingsStates';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import BarcodeCameraInput from './BarcodeCameraInput';
|
import BarcodeCameraInput from './BarcodeCameraInput';
|
||||||
import BarcodeKeyboardInput from './BarcodeKeyboardInput';
|
import BarcodeKeyboardInput from './BarcodeKeyboardInput';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,11 +18,11 @@ import { useQuery } from '@tanstack/react-query';
|
||||||
import QR from 'qrcode';
|
import QR from 'qrcode';
|
||||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
|
|
||||||
|
import { CopyButton } from '@lib/components/CopyButton';
|
||||||
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
||||||
import { apiUrl } from '@lib/functions/Api';
|
import { apiUrl } from '@lib/functions/Api';
|
||||||
import { api } from '../../App';
|
import { api } from '../../App';
|
||||||
import { useGlobalSettingsState } from '../../states/SettingsStates';
|
import { useGlobalSettingsState } from '../../states/SettingsStates';
|
||||||
import { CopyButton } from '../buttons/CopyButton';
|
|
||||||
import type { QrCodeType } from '../items/ActionDropdown';
|
import type { QrCodeType } from '../items/ActionDropdown';
|
||||||
|
|
||||||
import { extractErrorMessage } from '../../functions/api';
|
import { extractErrorMessage } from '../../functions/api';
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import interactionPlugin from '@fullcalendar/interaction';
|
||||||
import FullCalendar from '@fullcalendar/react';
|
import FullCalendar from '@fullcalendar/react';
|
||||||
|
|
||||||
import { ActionButton } from '@lib/components/ActionButton';
|
import { ActionButton } from '@lib/components/ActionButton';
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { SearchInput } from '@lib/components/SearchInput';
|
import { SearchInput } from '@lib/components/SearchInput';
|
||||||
import type { TableFilter } from '@lib/types/Filters';
|
import type { TableFilter } from '@lib/types/Filters';
|
||||||
import { t } from '@lingui/core/macro';
|
import { t } from '@lingui/core/macro';
|
||||||
|
|
@ -36,7 +37,6 @@ import {
|
||||||
import type { CalendarState } from '../../hooks/UseCalendar';
|
import type { CalendarState } from '../../hooks/UseCalendar';
|
||||||
import { useLocalState } from '../../states/LocalState';
|
import { useLocalState } from '../../states/LocalState';
|
||||||
import { FilterSelectDrawer } from '../../tables/FilterSelectDrawer';
|
import { FilterSelectDrawer } from '../../tables/FilterSelectDrawer';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import { StylishText } from '../items/StylishText';
|
import { StylishText } from '../items/StylishText';
|
||||||
|
|
||||||
export interface InvenTreeCalendarProps extends CalendarOptions {
|
export interface InvenTreeCalendarProps extends CalendarOptions {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { t } from '@lingui/core/macro';
|
||||||
import { ActionIcon, Box, Group, Overlay, Paper, Tooltip } from '@mantine/core';
|
import { ActionIcon, Box, Group, Overlay, Paper, Tooltip } from '@mantine/core';
|
||||||
import { IconX } from '@tabler/icons-react';
|
import { IconX } from '@tabler/icons-react';
|
||||||
|
|
||||||
import { Boundary } from '../Boundary';
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
|
|
||||||
import type { ModelType } from '@lib/index';
|
import type { ModelType } from '@lib/index';
|
||||||
import type { JSX } from 'react';
|
import type { JSX } from 'react';
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import { getValueAtPath } from 'mantine-datatable';
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo } from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
import { CopyButton } from '@lib/components/CopyButton';
|
||||||
import { ProgressBar } from '@lib/components/ProgressBar';
|
import { ProgressBar } from '@lib/components/ProgressBar';
|
||||||
import { YesNoButton } from '@lib/components/YesNoButton';
|
import { YesNoButton } from '@lib/components/YesNoButton';
|
||||||
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
||||||
|
|
@ -29,7 +30,6 @@ import { useApi } from '../../contexts/ApiContext';
|
||||||
import { formatDate, formatDecimal } from '../../defaults/formatters';
|
import { formatDate, formatDecimal } from '../../defaults/formatters';
|
||||||
import { InvenTreeIcon } from '../../functions/icons';
|
import { InvenTreeIcon } from '../../functions/icons';
|
||||||
import { useGlobalSettingsState } from '../../states/SettingsStates';
|
import { useGlobalSettingsState } from '../../states/SettingsStates';
|
||||||
import { CopyButton } from '../buttons/CopyButton';
|
|
||||||
import { StylishText } from '../items/StylishText';
|
import { StylishText } from '../items/StylishText';
|
||||||
import { getModelInfo } from '../render/ModelType';
|
import { getModelInfo } from '../render/ModelType';
|
||||||
import { StatusRenderer } from '../render/StatusRenderer';
|
import { StatusRenderer } from '../render/StatusRenderer';
|
||||||
|
|
|
||||||
|
|
@ -25,12 +25,12 @@ import Split from '@uiw/react-split';
|
||||||
import type React from 'react';
|
import type React from 'react';
|
||||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { ModelInformationDict } from '@lib/enums/ModelInformation';
|
import { ModelInformationDict } from '@lib/enums/ModelInformation';
|
||||||
import { ModelType } from '@lib/enums/ModelType';
|
import { ModelType } from '@lib/enums/ModelType';
|
||||||
import { apiUrl } from '@lib/functions/Api';
|
import { apiUrl } from '@lib/functions/Api';
|
||||||
import { api } from '../../../App';
|
import { api } from '../../../App';
|
||||||
import type { TemplateI } from '../../../tables/settings/TemplateTable';
|
import type { TemplateI } from '../../../tables/settings/TemplateTable';
|
||||||
import { Boundary } from '../../Boundary';
|
|
||||||
import { SplitButton } from '../../buttons/SplitButton';
|
import { SplitButton } from '../../buttons/SplitButton';
|
||||||
import { StandaloneField } from '../../forms/StandaloneField';
|
import { StandaloneField } from '../../forms/StandaloneField';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,26 +22,25 @@ import {
|
||||||
} from 'react-hook-form';
|
} from 'react-hook-form';
|
||||||
import { type NavigateFunction, useNavigate } from 'react-router-dom';
|
import { type NavigateFunction, useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { isTrue } from '@lib/functions/Conversion';
|
import { isTrue } from '@lib/functions/Conversion';
|
||||||
|
import {
|
||||||
|
type NestedDict,
|
||||||
|
constructFormUrl,
|
||||||
|
mapFields
|
||||||
|
} from '@lib/functions/Forms';
|
||||||
import { getDetailUrl } from '@lib/functions/Navigation';
|
import { getDetailUrl } from '@lib/functions/Navigation';
|
||||||
|
import {
|
||||||
|
invalidResponse,
|
||||||
|
showTimeoutNotification
|
||||||
|
} from '@lib/functions/Notification';
|
||||||
import type {
|
import type {
|
||||||
ApiFormFieldSet,
|
ApiFormFieldSet,
|
||||||
ApiFormFieldType,
|
ApiFormFieldType,
|
||||||
ApiFormProps
|
ApiFormProps
|
||||||
} from '@lib/types/Forms';
|
} from '@lib/types/Forms';
|
||||||
import { useApi } from '../../contexts/ApiContext';
|
import { useApi } from '../../contexts/ApiContext';
|
||||||
import {
|
import { constructField, extractAvailableFields } from '../../functions/forms';
|
||||||
type NestedDict,
|
|
||||||
constructField,
|
|
||||||
constructFormUrl,
|
|
||||||
extractAvailableFields,
|
|
||||||
mapFields
|
|
||||||
} from '../../functions/forms';
|
|
||||||
import {
|
|
||||||
invalidResponse,
|
|
||||||
showTimeoutNotification
|
|
||||||
} from '../../functions/notifications';
|
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import { KeepFormOpenSwitch } from './KeepFormOpenSwitch';
|
import { KeepFormOpenSwitch } from './KeepFormOpenSwitch';
|
||||||
import { ApiFormField } from './fields/ApiFormField';
|
import { ApiFormField } from './fields/ApiFormField';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import { YesNoButton } from '@lib/components/YesNoButton';
|
||||||
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
||||||
import { apiUrl } from '@lib/functions/Api';
|
import { apiUrl } from '@lib/functions/Api';
|
||||||
import { cancelEvent } from '@lib/functions/Events';
|
import { cancelEvent } from '@lib/functions/Events';
|
||||||
|
import useTable from '@lib/hooks/UseTable';
|
||||||
import type { TableFilter } from '@lib/types/Filters';
|
import type { TableFilter } from '@lib/types/Filters';
|
||||||
import type { ApiFormFieldSet } from '@lib/types/Forms';
|
import type { ApiFormFieldSet } from '@lib/types/Forms';
|
||||||
import type { TableColumn } from '@lib/types/Tables';
|
import type { TableColumn } from '@lib/types/Tables';
|
||||||
|
|
@ -29,7 +30,6 @@ import {
|
||||||
useEditApiFormModal
|
useEditApiFormModal
|
||||||
} from '../../hooks/UseForm';
|
} from '../../hooks/UseForm';
|
||||||
import type { ImportSessionState } from '../../hooks/UseImportSession';
|
import type { ImportSessionState } from '../../hooks/UseImportSession';
|
||||||
import { useTable } from '../../hooks/UseTable';
|
|
||||||
import { InvenTreeTable } from '../../tables/InvenTreeTable';
|
import { InvenTreeTable } from '../../tables/InvenTreeTable';
|
||||||
import { RenderRemoteInstance } from '../render/Instance';
|
import { RenderRemoteInstance } from '../render/Instance';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,13 +13,13 @@ import {
|
||||||
import type { ContextModalProps } from '@mantine/modals';
|
import type { ContextModalProps } from '@mantine/modals';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
|
||||||
|
import { CopyButton } from '@lib/components/CopyButton';
|
||||||
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
||||||
import { apiUrl } from '@lib/functions/Api';
|
import { apiUrl } from '@lib/functions/Api';
|
||||||
import { useShallow } from 'zustand/react/shallow';
|
import { useShallow } from 'zustand/react/shallow';
|
||||||
import { api } from '../../App';
|
import { api } from '../../App';
|
||||||
import { generateUrl } from '../../functions/urls';
|
import { generateUrl } from '../../functions/urls';
|
||||||
import { useServerApiState } from '../../states/ServerApiState';
|
import { useServerApiState } from '../../states/ServerApiState';
|
||||||
import { CopyButton } from '../buttons/CopyButton';
|
|
||||||
import { StylishText } from '../items/StylishText';
|
import { StylishText } from '../items/StylishText';
|
||||||
|
|
||||||
import type { JSX } from 'react';
|
import type { JSX } from 'react';
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import { IconSearch } from '@tabler/icons-react';
|
||||||
import { type JSX, useEffect, useMemo, useState } from 'react';
|
import { type JSX, useEffect, useMemo, useState } from 'react';
|
||||||
import { Navigate, Outlet, useLocation, useNavigate } from 'react-router-dom';
|
import { Navigate, Outlet, useLocation, useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { identifierString } from '@lib/functions/Conversion';
|
import { identifierString } from '@lib/functions/Conversion';
|
||||||
import { ApiEndpoints, apiUrl } from '@lib/index';
|
import { ApiEndpoints, apiUrl } from '@lib/index';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
|
@ -20,7 +21,6 @@ import {
|
||||||
useUserSettingsState
|
useUserSettingsState
|
||||||
} from '../../states/SettingsStates';
|
} from '../../states/SettingsStates';
|
||||||
import { useUserState } from '../../states/UserState';
|
import { useUserState } from '../../states/UserState';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import GlobalImporterDrawer from '../importer/GlobalImporterDrawer';
|
import GlobalImporterDrawer from '../importer/GlobalImporterDrawer';
|
||||||
import { ApiIcon } from '../items/ApiIcon';
|
import { ApiIcon } from '../items/ApiIcon';
|
||||||
import { useInvenTreeContext } from '../plugins/PluginContext';
|
import { useInvenTreeContext } from '../plugins/PluginContext';
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import { useQuery } from '@tanstack/react-query';
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo } from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
||||||
import { ModelInformationDict } from '@lib/enums/ModelInformation';
|
import { ModelInformationDict } from '@lib/enums/ModelInformation';
|
||||||
import type { ModelType } from '@lib/enums/ModelType';
|
import type { ModelType } from '@lib/enums/ModelType';
|
||||||
|
|
@ -32,7 +33,6 @@ import { getBaseUrl } from '@lib/functions/Navigation';
|
||||||
import { navigateToLink } from '@lib/functions/Navigation';
|
import { navigateToLink } from '@lib/functions/Navigation';
|
||||||
import { api } from '../../App';
|
import { api } from '../../App';
|
||||||
import { useUserState } from '../../states/UserState';
|
import { useUserState } from '../../states/UserState';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import { StylishText } from '../items/StylishText';
|
import { StylishText } from '../items/StylishText';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -137,7 +137,7 @@ export function NotificationDrawer({
|
||||||
|
|
||||||
const markAllAsRead = useCallback(() => {
|
const markAllAsRead = useCallback(() => {
|
||||||
api
|
api
|
||||||
.get(apiUrl(ApiEndpoints.notifications_readall), {
|
.post(apiUrl(ApiEndpoints.notifications_readall), {
|
||||||
params: {
|
params: {
|
||||||
read: false
|
read: false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { Group, Paper, Space, Stack, Text } from '@mantine/core';
|
import { Group, Paper, Space, Stack, Text } from '@mantine/core';
|
||||||
import { useHotkeys } from '@mantine/hooks';
|
import { useHotkeys } from '@mantine/hooks';
|
||||||
|
|
||||||
|
import { shortenString } from '@lib/functions/String';
|
||||||
import { Fragment, type ReactNode, useMemo } from 'react';
|
import { Fragment, type ReactNode, useMemo } from 'react';
|
||||||
import { shortenString } from '../../functions/tables';
|
|
||||||
import { useUserSettingsState } from '../../states/SettingsStates';
|
import { useUserSettingsState } from '../../states/SettingsStates';
|
||||||
import { ApiImage } from '../images/ApiImage';
|
import { ApiImage } from '../images/ApiImage';
|
||||||
import { StylishText } from '../items/StylishText';
|
import { StylishText } from '../items/StylishText';
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ import { useQuery } from '@tanstack/react-query';
|
||||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
import { type NavigateFunction, useNavigate } from 'react-router-dom';
|
import { type NavigateFunction, useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
||||||
import { ModelInformationDict } from '@lib/enums/ModelInformation';
|
import { ModelInformationDict } from '@lib/enums/ModelInformation';
|
||||||
import { ModelType } from '@lib/enums/ModelType';
|
import { ModelType } from '@lib/enums/ModelType';
|
||||||
|
|
@ -48,7 +49,6 @@ import { showNotification } from '@mantine/notifications';
|
||||||
import { api } from '../../App';
|
import { api } from '../../App';
|
||||||
import { useUserSettingsState } from '../../states/SettingsStates';
|
import { useUserSettingsState } from '../../states/SettingsStates';
|
||||||
import { useUserState } from '../../states/UserState';
|
import { useUserState } from '../../states/UserState';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import { RenderInstance } from '../render/Instance';
|
import { RenderInstance } from '../render/Instance';
|
||||||
import { getModelInfo } from '../render/ModelType';
|
import { getModelInfo } from '../render/ModelType';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ import {
|
||||||
useParams
|
useParams
|
||||||
} from 'react-router-dom';
|
} from 'react-router-dom';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import type { ModelType } from '@lib/enums/ModelType';
|
import type { ModelType } from '@lib/enums/ModelType';
|
||||||
import { identifierString } from '@lib/functions/Conversion';
|
import { identifierString } from '@lib/functions/Conversion';
|
||||||
import { cancelEvent } from '@lib/functions/Events';
|
import { cancelEvent } from '@lib/functions/Events';
|
||||||
|
|
@ -43,7 +44,6 @@ import { generateUrl } from '../../functions/urls';
|
||||||
import { usePluginPanels } from '../../hooks/UsePluginPanels';
|
import { usePluginPanels } from '../../hooks/UsePluginPanels';
|
||||||
import { useLocalState } from '../../states/LocalState';
|
import { useLocalState } from '../../states/LocalState';
|
||||||
import { vars } from '../../theme';
|
import { vars } from '../../theme';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import { StylishText } from '../items/StylishText';
|
import { StylishText } from '../items/StylishText';
|
||||||
import type { PanelGroupType, PanelType } from '../panels/Panel';
|
import type { PanelGroupType, PanelType } from '../panels/Panel';
|
||||||
import * as classes from './PanelGroup.css';
|
import * as classes from './PanelGroup.css';
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,9 @@ import {
|
||||||
INVENTREE_REACT_VERSION,
|
INVENTREE_REACT_VERSION,
|
||||||
type InvenTreePluginContext
|
type InvenTreePluginContext
|
||||||
} from '@lib/types/Plugins';
|
} from '@lib/types/Plugins';
|
||||||
|
import type { InvenTreeTableRenderProps } from '@lib/types/Tables';
|
||||||
import { i18n } from '@lingui/core';
|
import { i18n } from '@lingui/core';
|
||||||
|
import { useContextMenu } from 'mantine-contextmenu';
|
||||||
import { defaultLocale } from '../../contexts/LanguageContext';
|
import { defaultLocale } from '../../contexts/LanguageContext';
|
||||||
import {
|
import {
|
||||||
useAddStockItem,
|
useAddStockItem,
|
||||||
|
|
@ -43,6 +45,7 @@ import {
|
||||||
openGlobalImporter
|
openGlobalImporter
|
||||||
} from '../../states/ImporterState';
|
} from '../../states/ImporterState';
|
||||||
import { useServerApiState } from '../../states/ServerApiState';
|
import { useServerApiState } from '../../states/ServerApiState';
|
||||||
|
import { InvenTreeTableInternal } from '../../tables/InvenTreeTable';
|
||||||
import { RenderInstance } from '../render/Instance';
|
import { RenderInstance } from '../render/Instance';
|
||||||
|
|
||||||
export const useInvenTreeContext = () => {
|
export const useInvenTreeContext = () => {
|
||||||
|
|
@ -54,6 +57,7 @@ export const useInvenTreeContext = () => {
|
||||||
const theme = useMantineTheme();
|
const theme = useMantineTheme();
|
||||||
const globalSettings = useGlobalSettingsState();
|
const globalSettings = useGlobalSettingsState();
|
||||||
const userSettings = useUserSettingsState();
|
const userSettings = useUserSettingsState();
|
||||||
|
const { showContextMenu } = useContextMenu();
|
||||||
|
|
||||||
const contextData = useMemo<InvenTreePluginContext>(() => {
|
const contextData = useMemo<InvenTreePluginContext>(() => {
|
||||||
return {
|
return {
|
||||||
|
|
@ -83,6 +87,14 @@ export const useInvenTreeContext = () => {
|
||||||
isOpen: () => getGlobalImporterState().isOpen,
|
isOpen: () => getGlobalImporterState().isOpen,
|
||||||
sessionId: () => getGlobalImporterState().sessionId
|
sessionId: () => getGlobalImporterState().sessionId
|
||||||
},
|
},
|
||||||
|
tables: {
|
||||||
|
renderTable: (props: InvenTreeTableRenderProps<any>) => (
|
||||||
|
<InvenTreeTableInternal
|
||||||
|
{...props}
|
||||||
|
showContextMenu={showContextMenu}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
},
|
||||||
forms: {
|
forms: {
|
||||||
bulkEdit: useBulkEditApiFormModal,
|
bulkEdit: useBulkEditApiFormModal,
|
||||||
create: useCreateApiFormModal,
|
create: useCreateApiFormModal,
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import { Alert, MantineProvider, Stack, Text } from '@mantine/core';
|
||||||
import { IconExclamationCircle } from '@tabler/icons-react';
|
import { IconExclamationCircle } from '@tabler/icons-react';
|
||||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { identifierString } from '@lib/functions/Conversion';
|
import { identifierString } from '@lib/functions/Conversion';
|
||||||
import type { InvenTreePluginContext } from '@lib/types/Plugins';
|
import type { InvenTreePluginContext } from '@lib/types/Plugins';
|
||||||
import { type Root, createRoot } from 'react-dom/client';
|
import { type Root, createRoot } from 'react-dom/client';
|
||||||
|
|
@ -10,7 +11,6 @@ import { api, queryClient } from '../../App';
|
||||||
import { ApiProvider } from '../../contexts/ApiContext';
|
import { ApiProvider } from '../../contexts/ApiContext';
|
||||||
import { LanguageContext } from '../../contexts/LanguageContext';
|
import { LanguageContext } from '../../contexts/LanguageContext';
|
||||||
import { useLocalState } from '../../states/LocalState';
|
import { useLocalState } from '../../states/LocalState';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import { findExternalPluginFunction } from './PluginSource';
|
import { findExternalPluginFunction } from './PluginSource';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ import type {
|
||||||
RenderInstanceProps
|
RenderInstanceProps
|
||||||
} from '@lib/types/Rendering';
|
} from '@lib/types/Rendering';
|
||||||
export type { InstanceRenderInterface } from '@lib/types/Rendering';
|
export type { InstanceRenderInterface } from '@lib/types/Rendering';
|
||||||
|
import { shortenString } from '@lib/functions/String';
|
||||||
import { useApi } from '../../contexts/ApiContext';
|
import { useApi } from '../../contexts/ApiContext';
|
||||||
import { shortenString } from '../../functions/tables';
|
|
||||||
import { Thumbnail } from '../images/Thumbnail';
|
import { Thumbnail } from '../images/Thumbnail';
|
||||||
import { RenderBuildItem, RenderBuildLine, RenderBuildOrder } from './Build';
|
import { RenderBuildItem, RenderBuildLine, RenderBuildOrder } from './Build';
|
||||||
import {
|
import {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import type { ReactNode } from 'react';
|
||||||
import { ModelType } from '@lib/enums/ModelType';
|
import { ModelType } from '@lib/enums/ModelType';
|
||||||
import { formatDecimal } from '@lib/functions/Formatting';
|
import { formatDecimal } from '@lib/functions/Formatting';
|
||||||
import { getDetailUrl } from '@lib/functions/Navigation';
|
import { getDetailUrl } from '@lib/functions/Navigation';
|
||||||
import { shortenString } from '../../functions/tables';
|
import { shortenString } from '@lib/functions/String';
|
||||||
import { TableHoverCard } from '../../tables/TableHoverCard';
|
import { TableHoverCard } from '../../tables/TableHoverCard';
|
||||||
import { ApiIcon } from '../items/ApiIcon';
|
import { ApiIcon } from '../items/ApiIcon';
|
||||||
import { type InstanceRenderInterface, RenderInlineModel } from './Instance';
|
import { type InstanceRenderInterface, RenderInlineModel } from './Instance';
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import type { ReactNode } from 'react';
|
||||||
import { ModelType } from '@lib/enums/ModelType';
|
import { ModelType } from '@lib/enums/ModelType';
|
||||||
import { formatDecimal } from '@lib/functions/Formatting';
|
import { formatDecimal } from '@lib/functions/Formatting';
|
||||||
import { getDetailUrl } from '@lib/functions/Navigation';
|
import { getDetailUrl } from '@lib/functions/Navigation';
|
||||||
import { shortenString } from '../../functions/tables';
|
import { shortenString } from '@lib/functions/String';
|
||||||
import { TableHoverCard } from '../../tables/TableHoverCard';
|
import { TableHoverCard } from '../../tables/TableHoverCard';
|
||||||
import { ApiIcon } from '../items/ApiIcon';
|
import { ApiIcon } from '../items/ApiIcon';
|
||||||
import {
|
import {
|
||||||
|
|
|
||||||
|
|
@ -13,13 +13,13 @@ import {
|
||||||
import { IconEdit } from '@tabler/icons-react';
|
import { IconEdit } from '@tabler/icons-react';
|
||||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
|
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { ModelInformationDict } from '@lib/enums/ModelInformation';
|
import { ModelInformationDict } from '@lib/enums/ModelInformation';
|
||||||
import { ModelType } from '@lib/enums/ModelType';
|
import { ModelType } from '@lib/enums/ModelType';
|
||||||
import { apiUrl } from '@lib/functions/Api';
|
import { apiUrl } from '@lib/functions/Api';
|
||||||
import type { Setting } from '@lib/types/Settings';
|
import type { Setting } from '@lib/types/Settings';
|
||||||
import { api } from '../../App';
|
import { api } from '../../App';
|
||||||
import { vars } from '../../theme';
|
import { vars } from '../../theme';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import { RenderInstance } from '../render/Instance';
|
import { RenderInstance } from '../render/Instance';
|
||||||
|
|
||||||
type ConfirmResult = {
|
type ConfirmResult = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { ActionButton } from '@lib/components/ActionButton';
|
import { ActionButton } from '@lib/components/ActionButton';
|
||||||
import { AddItemButton } from '@lib/components/AddItemButton';
|
import { AddItemButton } from '@lib/components/AddItemButton';
|
||||||
|
import { CopyButton } from '@lib/components/CopyButton';
|
||||||
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
||||||
import { ModelType } from '@lib/enums/ModelType';
|
import { ModelType } from '@lib/enums/ModelType';
|
||||||
import { apiUrl } from '@lib/functions/Api';
|
import { apiUrl } from '@lib/functions/Api';
|
||||||
|
|
@ -32,7 +33,6 @@ import { useCreateApiFormModal } from '../../hooks/UseForm';
|
||||||
import { useInstance } from '../../hooks/UseInstance';
|
import { useInstance } from '../../hooks/UseInstance';
|
||||||
import useWizard from '../../hooks/UseWizard';
|
import useWizard from '../../hooks/UseWizard';
|
||||||
import { RenderPartColumn } from '../../tables/ColumnRenderers';
|
import { RenderPartColumn } from '../../tables/ColumnRenderers';
|
||||||
import { CopyButton } from '../buttons/CopyButton';
|
|
||||||
import RemoveRowButton from '../buttons/RemoveRowButton';
|
import RemoveRowButton from '../buttons/RemoveRowButton';
|
||||||
import { StandaloneField } from '../forms/StandaloneField';
|
import { StandaloneField } from '../forms/StandaloneField';
|
||||||
import Expand from '../items/Expand';
|
import Expand from '../items/Expand';
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { Boundary } from '@lib/components/Boundary';
|
||||||
import { t } from '@lingui/core/macro';
|
import { t } from '@lingui/core/macro';
|
||||||
import {
|
import {
|
||||||
ActionIcon,
|
ActionIcon,
|
||||||
|
|
@ -16,7 +17,6 @@ import {
|
||||||
IconCircleCheck
|
IconCircleCheck
|
||||||
} from '@tabler/icons-react';
|
} from '@tabler/icons-react';
|
||||||
import { type ReactNode, useCallback, useMemo } from 'react';
|
import { type ReactNode, useCallback, useMemo } from 'react';
|
||||||
import { Boundary } from '../Boundary';
|
|
||||||
import { StylishText } from '../items/StylishText';
|
import { StylishText } from '../items/StylishText';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,11 @@ import { I18nProvider } from '@lingui/react';
|
||||||
import { LoadingOverlay, Text } from '@mantine/core';
|
import { LoadingOverlay, Text } from '@mantine/core';
|
||||||
import { type JSX, useEffect, useRef, useState } from 'react';
|
import { type JSX, useEffect, useRef, useState } from 'react';
|
||||||
|
|
||||||
|
import { useStoredTableState } from '@lib/states/StoredTableState';
|
||||||
import { useShallow } from 'zustand/react/shallow';
|
import { useShallow } from 'zustand/react/shallow';
|
||||||
import { api } from '../App';
|
import { api } from '../App';
|
||||||
import { useLocalState } from '../states/LocalState';
|
import { useLocalState } from '../states/LocalState';
|
||||||
import { useServerApiState } from '../states/ServerApiState';
|
import { useServerApiState } from '../states/ServerApiState';
|
||||||
import { useStoredTableState } from '../states/StoredTableState';
|
|
||||||
import { fetchGlobalStates } from '../states/states';
|
import { fetchGlobalStates } from '../states/states';
|
||||||
|
|
||||||
export const defaultLocale = 'en';
|
export const defaultLocale = 'en';
|
||||||
|
|
|
||||||
|
|
@ -212,6 +212,10 @@ export const doLogout = async (navigate: NavigateFunction) => {
|
||||||
await authApi(apiUrl(ApiEndpoints.auth_session), undefined, 'delete').catch(
|
await authApi(apiUrl(ApiEndpoints.auth_session), undefined, 'delete').catch(
|
||||||
() => {}
|
() => {}
|
||||||
);
|
);
|
||||||
|
// remove MFA token (mfa_trusted)
|
||||||
|
document.cookie =
|
||||||
|
'mfa_trusted=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||||
|
|
||||||
showLoginNotification({
|
showLoginNotification({
|
||||||
title: t`Logged Out`,
|
title: t`Logged Out`,
|
||||||
message: t`Successfully logged out`
|
message: t`Successfully logged out`
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,6 @@
|
||||||
import type { AxiosResponse } from 'axios';
|
import { invalidResponse, permissionDenied } from '@lib/functions/Notification';
|
||||||
|
|
||||||
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
|
||||||
import { apiUrl } from '@lib/functions/Api';
|
|
||||||
import type { PathParams } from '@lib/types/Core';
|
|
||||||
import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms';
|
import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms';
|
||||||
import { invalidResponse, permissionDenied } from './notifications';
|
import type { AxiosResponse } from 'axios';
|
||||||
|
|
||||||
/**
|
|
||||||
* Construct an API url from the provided ApiFormProps object
|
|
||||||
*/
|
|
||||||
export function constructFormUrl(
|
|
||||||
url: ApiEndpoints | string,
|
|
||||||
pk?: string | number,
|
|
||||||
pathParams?: PathParams,
|
|
||||||
queryParams?: URLSearchParams
|
|
||||||
): string {
|
|
||||||
let formUrl = apiUrl(url, pk, pathParams);
|
|
||||||
|
|
||||||
if (queryParams) {
|
|
||||||
formUrl += `?${queryParams.toString()}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
return formUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extract the available fields (for a given method) from the response object
|
* Extract the available fields (for a given method) from the response object
|
||||||
|
|
@ -104,30 +82,6 @@ export function extractAvailableFields(
|
||||||
return processFields(actions[method]);
|
return processFields(actions[method]);
|
||||||
}
|
}
|
||||||
|
|
||||||
export type NestedDict = { [key: string]: string | number | NestedDict };
|
|
||||||
export function mapFields(
|
|
||||||
fields: ApiFormFieldSet,
|
|
||||||
fieldFunction: (path: string, value: ApiFormFieldType, key: string) => any,
|
|
||||||
_path?: string
|
|
||||||
): NestedDict {
|
|
||||||
const res: NestedDict = {};
|
|
||||||
|
|
||||||
for (const [k, v] of Object.entries(fields)) {
|
|
||||||
const path = _path ? `${_path}.${k}` : k;
|
|
||||||
let value: any;
|
|
||||||
|
|
||||||
if (v.field_type === 'nested object' && v.children) {
|
|
||||||
value = mapFields(v.children, fieldFunction, path);
|
|
||||||
} else {
|
|
||||||
value = fieldFunction(path, v, k);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (value !== undefined) res[k] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Build a complete field definition based on the provided data
|
* Build a complete field definition based on the provided data
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue